|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.08.2016, 17:08 | #1 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Изображения BMP и JPEG
Всем привет.
Я сделал собственный шифровальщик, который оптимизировал под шифрование изображений формата BMP - на выходе из шифрования я получаю такой же файл BMP, только содержимое превращено в ересь. Собственно, вся эта каша работает и в обратную сторону - ересь в файле BMP тем же ключом шифрования можно превратить в нормальное содержимое. До определённого момента - вот отсюда начинаются проблемы. Если зашифрованное изображение формата BMP сохранить в формате JPEG/PNG, и уже из полученного JPEG/PNG опять сделать BMP - то содержимое конечного BMP мягко говоря не дешифруется. Моя функция загрузки пикселей из BMP: Код:
Функция компиляции изображения из зашифрованных данных: Код:
Вопрос: как работать с форматом JPEG при том, что шифровать нужно именно байты, которые берутся именно из матрицы пикселей ?
Подпись ? Не, не слышал ...
|
04.08.2016, 18:22 | #2 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Можно сделать так:
Код:
Но, как из полученного Bitmap image сделать Image final ? И будет ли он правильно сохранён в формате JPEG ? И это я ещё не дошёл до главного вопроса: приведёт ли обратная процедура к изначальным данным ?
Подпись ? Не, не слышал ...
|
04.08.2016, 19:00 | #3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
JPEG формат с потерями, он не гарантирует что при снятии сжатия будет тоже самой байт в байт.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
04.08.2016, 19:13 | #4 | |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Цитата:
У PNG сжатие без потерь, и при моих махинациях вместо JPEG использовать PNG - то из "восстановленного" шифрованного BMP будет получена исходная картинка ... Что же, беда с джипегом, а я так на него надеялся ...
Подпись ? Не, не слышал ...
|
|
04.08.2016, 19:29 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
это смысл JPEG, а не беда
картинки, как и аудио позволяют сжатие с потерями.(MP3 сжатие с потерями, FLAC без) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
04.08.2016, 19:40 | #6 | |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Цитата:
Что же касается сжатия с потерями/без,то BMP позиционируется как формат без сжатия, как такового. Если говорить о глубине цвета - то это уже другая история. А по поводу музыки - формата без сжатия я не знаю. Что же касается моей задачи - то вся эта чушь с шифрованием именно картинки предназначена для визуализации шифрования. Дальше картинки в этом смысле я пойти не смогу; во всяком случае создать информационный шум для музыкального проигрывателя я не смогу - знаний не хватит.
Подпись ? Не, не слышал ...
|
|
04.08.2016, 19:53 | #7 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Но моя задача не решена: там, куда мне нужно пихнуть изображение - принимается только JPEG. И хоть ты сдохни. Где можно сделать JPEG "сжатие без потерь" ?
upd: что тут говорить - я потерялся ... Даже Adobe Photoshop CS6 не воспринимает BMP как изображение (файл не распознан) ... PNG читает, но при сохранении в JPEG так же жуёт этот файл до безобразия. Что же, придётся ковырять JPEG побайтно, и шифровать только содержание, а не весь файл ...
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 04.08.2016 в 20:04. |
05.08.2016, 00:03 | #8 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Проблему решил весьма по ламерски: взял картинку с расширением *.bmp, и просто поменял расширение на *.jpeg.
Куда надо загрузилось, и работает как надо.
Подпись ? Не, не слышал ...
|
05.08.2016, 00:33 | #9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
итого у вас BMP с неверным расширением, просто забудьте о JPEG, ваш алгоритм не рассчитан на потери.
JPEG даже при 100% качестве может в результате дать цвет на единицу в сторону Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
29.05.2017, 13:52 | #10 |
Регистрация: 17.05.2017
Сообщений: 4
|
здравствуйте, можете поделиться пожалуйста программной реализацией?
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Классы. Чтение и создание .bmp изображения. Пропадает 1 пиксел при создании изображения. | s-mumrik | Visual C++ | 3 | 12.04.2013 21:21 |
Компрессия BMP в JPG (JPEG) | MartyM | Общие вопросы C/C++ | 2 | 25.11.2012 00:57 |
Работа с BMP -> JPEG | MartyM | Общие вопросы C/C++ | 6 | 18.11.2012 14:07 |
Вопрос по OpenGL и *.bmp/*.jpeg файлам. | Vova777 | Мультимедиа в Delphi | 2 | 26.06.2011 09:31 |
Проблема с TImage, BMP, JPEG | Florento | Общие вопросы Delphi | 5 | 16.06.2011 16:18 |