Волшебник
656 / 259 / 88
Регистрация: 18.12.2010
Сообщений: 545
|
|
05.04.2012, 21:37 [ТС] | 21 |
тут на самом деле никакого кодирования напрямую в jpeg нетупросто jpeg картинка кодируется в bmp и обрабатывается уже как bmp (этот формат изображений наиболее просто спрятать инфу стеганографическим способом)
Думаю, можно по аналогии, перекодировать png в bmp и обрабатывать такжедаже код особо менять не придется Естественно, это приемлемо и для других форматов изображений, смысл прост: переводим в bmp и работаем с ним P.S. Это я пока только изложил кратко свои мысличуть попозже выложу все в виде отдельной статьиЕсли кто это хочет сделать вместо меня - я только за P.P.S. Я тоже не очень
2
|
05.04.2012, 21:37 | |
Ответы с готовыми решениями:
70
Стеганография Стеганография Стеганография.Шифрование текста в картинку Стеганография LSB BMP |
587 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
|
|
06.04.2012, 04:41 | 23 |
1
|
587 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
|
|
08.04.2012, 13:33 | 24 |
ни как ни могу переделать данную программу, под формат PNG((
1
|
56 / 9 / 0
Регистрация: 10.02.2011
Сообщений: 88
|
|
08.04.2012, 13:34 | 25 |
Здравствуйте!!! У меня та же самая проблема, мне нужно сделать программу для формата TGA! Помогите пожалуйста для решения данной задачки..
1
|
Заблокирован
|
|
08.04.2012, 17:49 | 26 |
aidoqa,
Ничего сложного нет. Любая картинка открывается и с ней проделевыются все манипуляции. А потом просто сохранить в PNG и всё. Надо всего лишь подключить модуль PNG Erkosha, Это вообще формат наподобие BMP. В него можно шифровать просто загрузив его в поток. В чём собственно проблема? Или мне написать? Но мне кажется, писать подобные вещи удобнее в KOL . Там великолепные инструменты для работы с картинками.
3
|
587 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
|
|
08.04.2012, 17:54 | 27 |
Lirrk,
как это сдлеать или переделать данную программу https://www.cyberforum.ru/post2871218.html что такое KOL?
2
|
Заблокирован
|
|
08.04.2012, 19:00 | 28 |
aidoqa,
Kol Это библиотека для Делфи ФрееПаскаль и Лазарус для написания маленьких по размеру приложений. Размер пустого окна от 15 до 42K Зависит где её используют. Имеет визуальные компоненты. Впрочем всё здесь. http://kolmck.net/rindex.htm Там есть книга про эту библиотеку. Там всё изложено Добавлено через 1 минуту aidoqa, Да, программу надо написать заново Вообще самый простой способоб загрузить любой формат или в поток, изменить пиксели, а потом сохранить или в бмп или в PNG Можно даже вписывать информацию в индексные картинки. Да хотябы в смайлики.
3
|
587 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
|
|
08.04.2012, 19:02 | 29 |
Lirrk, может там что нибудь испавить подправить) мне ее во вторник сдавать надо я без понятия что нужно сделать.
2
|
587 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
|
|
08.04.2012, 19:15 | 31 |
Lirrk, первоначально у меня была программа она кодировала и прятала текстовый файл в картинку потом ее можно было раскодировать и у нас появлялся текстовый файл https://www.cyberforum.ru/post2871218.html - в этой программе можно было сделать с форматами jpeg and bmp , мне надо ее переделать под PNG, тоесть спрятать и закодировать текст в картинку и раскодировать ее.
1
|
587 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
|
|
09.04.2012, 17:00 | 33 |
как можно это реализовать к примеру картинку PNG скрыть в ней текстовый документ и сохранить как PNG? помогите пожалуйста до делать программу)
1
|
587 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
|
|
10.04.2012, 16:10 | 36 |
Lirrk, Большое СПАСИБО!!!!Выручили!!!!
Теперь осталось во всем этом разобраться и все)(можно уточнить как там происходит кодирование?) можете объяснить насчетконтейнера что та происходит?
1
|
Заблокирован
|
|
10.04.2012, 16:31 | 37 |
aidoqa,
там происходит "финт ушами" Файл любого формата попадает на обычный битмап. Но с битмапом работать не совсем удобно. Поэтому делается его линейная копия в памяти, а сам битмап уничтожается за ненадобностью. А копия это набор пикселов, с котрыми можно сделать всё что угодно. В данном случае всё сводится к тому, что младший бит каждого байта играет роль контейнера. Для чтения и записи байта скрываемой информации использованы вставки на ассемблере. посколько именно на ассемблере проще всего обрабатывать байты. Ну а с программой работать проще простого. Сначала верхней кнопкой выбираете картинку, это Котейнер. Второй кнопкой текст для скрытя, третьей - куда будет сохранён результат. Запуск и всё готово. Включаем режим распаковки. верхенй кнопкой выбираем файл с спрятанным текстом. второй файл. где будет распакованный текст Запуск и всё готово.
2
|
587 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
|
|
10.04.2012, 16:35 | 38 |
Lirrk, СПасибо еще раз большое)) Просто с перва мне нужно рассказать про формат PNG , потом подробно объяснить программу и как происходит кодирование)
1
|
Заблокирован
|
|||||||||||
10.04.2012, 17:35 | 39 | ||||||||||
aidoqa,
В смысле про формат png? Графический формат. Использует сжатие без потерь. Может содержать альфа-канал. Для работы с ним нужна библиотека. Она есть в архиве. Всё сводится к созданию обьекта PNG и работы с ним. Добавлено через 10 минут В разделе uses подключается pngimage А это блок загрузки картинки PNG
png := TPNGObject.Create; // создаем png.LoadFromFile(OD1.FileName); WW:= png.Width; HH:= png.Height; _B_.Width:=WW; _B_.Height:=HH; Создаётся объект TPNGObject Грузим рисунок png.LoadFromFile(OD1.FileName); Получаем его размеры WW:= png.Width; HH:= png.Height; Делаем битмап того же размера _B_.Width:=WW; _B_.Height:=HH; Добавлено через 1 минуту Переносим на битмап _B_.Canvas.Draw(0, 0, png); // выводим Уничтожаем обьект PNG png.Free; // Освобождаем Всё рисунок распакован Добавлено через 1 минуту Далее делаем копию битмапа в виде сплошного потока байтов Добавлено через 1 минуту Ну а потом открываем файл текста и берём с него байт за байтом и добавляем его биты к пикселям Добавлено через 40 секунд То есть к каждому байту копии битапа Добавлено через 1 минуту А происходит это в процедуре
Procedure Write_Byte(_dat:Byte); (_dat:Byte); Это байт текста Добавлено через 1 минуту for ind_:=1 to 8 do begin поскольку в байте 8 битов то записываем байт текста в 8 байтов потока копии битмапа Добавлено через 1 минуту вот мы прочитали байт из потока копии битмапа и внедряем его бит Добавлено через 46 секунд Но тут нужно иметь представление об ассемблере и о регистрах процессора Добавлено через 5 минут но постараюсь обьяснить смысл. вот байт. Это 8 бит хххххххх а слово состоит из двух байт хххххххххххххххх BH и BL Это регистры процессора, способные хранить байт. Вместе они представляют 16 разрядный регистр BX для хранеия слова Добавлено через 3 минуты предположим текст это латинская буква A. код $41 или в двоичной 00101001 Добавлено через 24 секунды Он в регистре BL Добавлено через 5 минут а в картинке пиксель код 00000011 Он занесён в регистр BH В нём будет менятся младший бит. Поэтому поготовим место. Мы сдвигаем этот регистр на один разряд вправо. получаем 10000001 Добавлено через 2 минуты а в регистре BL 00101001 Следовательно в BX теперь 1000000100101001 Добавлено через 38 секунд Сдвигаем теперь все 16 бит влево Добавлено через 1 минуту 0000001001010011 Добавлено через 3 минуты в BH 00000010 B BL 01010011 Добавлено через 4 минуты в BH Нужный готовй байт. В нём младший бит изменён на ноль в BL остался бате буквы но сдвинутый на один разряд влево. То есть в старшем разряде второй бит При следующем обороте цикла этот бит заменит младший бит байта каринки, а на его место встанет 3 бит. И так дале... Другими словами байт буквы побитно наползает на подготовленный байт картинки
3
|
587 / 101 / 2
Регистрация: 08.02.2011
Сообщений: 842
|
|
10.04.2012, 18:18 | 40 |
Lirrk, Cпасибо за подробное объяснение)
1
|
10.04.2012, 18:18 | |
Помогаю со студенческими работами здесь
40
Стеганография Стеганография стеганография Стеганография Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |