Как бы я закодировал бинарный файл в формат JPG? - PullRequest
2 голосов
/ 21 июля 2010

Я хотел бы иметь возможность взять поток из 1 и 0 и преобразовать его в формат, который может прочитать jpg, т.е. Предположим, что я написал программу, скомпилировал и получил exe, затем взял и запустил 1 и 0 из exe через указанную программу, она выдаст .jpg. Любые советы о том, что мне нужно сделать? Я надеюсь, что это не так сложно, как я подозреваю.

Обновление: предположим, что вы взяли любое старое изображение и перевели его в формат (я полагаю) Raw, только единицы и нули, теперь предположим, что вы взяли эти 1 и 0 и каким-то образом декодировали их, какую программу вы получите ( очевидно, не работающий), но теперь я думал, что мы пошли другим путем и взяли .exe и выстроили все 1 и 0 в каком-то формате, который выглядит как «изображение», возможно ли увидеть изображение, это что я хотел бы открыть. (Надеюсь, это объясняет то, что меня интересует), так что формат на самом деле не имеет значения, это может быть bmp для меня, просто я хочу посмотреть, есть ли какое-либо изображение в программе, которая различимы в программе.

Ответы [ 3 ]

2 голосов
/ 21 июля 2010

Что ж, «правильный» подход - это использовать библиотеку кодирования JPEG с вашим любимым языком программирования.

Если вы хотите начать генерировать JPEG прямо сейчас, у вас есть один вариант - иметь свою программузакодируйте изображение в PPM (простой текстовый формат растрового изображения), затем используйте утилиту cjpeg , чтобы преобразовать его в JPEG.Пример:

foo.exe > out.ppm

Теперь out.ppm (украденный из Википедии) содержит:

P3
# The P3 means colors are in ASCII, then 3 columns and 2 rows, then 255 for max color, then RGB triplets
3 2
255
255   0   0     0 255   0     0   0 255
255 255   0   255 255 255     0   0   0

С этим вы можете запустить:

cjpeg -outfile out.jpg out.ppm

Этоэто никоим образом не быстрый и надежный способ создания файлов JPEG, но он может помочь вам быстро начать работу.

2 голосов
/ 21 июля 2010

Вы говорите о стеганографии ?Это будет принимать какое-то скрытое сообщение (может быть исполняемый файл) и скрывать его в файле изображения.Очевидно, что файл изображения немного увеличится, но я думаю, что это то, о чем вы говорите.На странице Википедии есть несколько инструментов, таких как StegFS и или MP3Stego .

Обновление

Перечитав свой вопрос, сделайтеВы просто хотите что-то, что будет двухцветным изображением с одним цветом, представляющим 1 с, а другим с 0?Таким образом, двоичная последовательность 0110 1101 1010 1101 создаст изображение вроде:

wbbw
bbwb
bwbw
bbwb
0 голосов
/ 07 сентября 2012

Это звучит глупо, но, изменив расширение на .raw, файл автоматически открывается в фотошопе (или Gimp в моем случае), и вы можете увидеть, как выглядят «битовые узоры».Это то, к чему я стремился.

...