закодированный JPEG и JPEG отличаются

У меня есть файл JPEG в формате char* buffer из кодировщика JPEG. Предположим, если я правильно напишу это в файл, это будет pic.jpg. Скажем, тогда я читаю с помощью ifstream из pic.jpg и сохраняю его в char* buffer2.

В чем разница между этими двумя буферами, если они есть?

(Причина, по которой я спрашиваю, заключается в том, что у меня есть файл jpeg в char * buffer из декодера jpeg, и мне нужно записать его на диск. Но использование системного метода file descripter и write() в fcntl.h не записывает его должным образом... Я могу открыть изображение, но совершенно очевидно, что цвета не совпадают. Пожалуйста, считайте, что изображение имеет допустимые цвета, когда оно было выведено из декодера, потому что я могу писать напрямую из декодера на диск, и все в порядке. Просто мне нужно поместите его в char* buffer для других целей, и мне нужно убедиться, что buffer имеет действительные данные перед дальнейшей обработкой.)


person user2453839    schedule 11.06.2013    source источник


Ответы (1)


Описание, которое вы даете, подразумевает, что вы правильно читаете компонент Y (отвечает за яркость) и неправильно читаете компоненты UV (отвечает за цвет). Похоже, вы либо не записываете все декодированные данные на диск, либо вы не читаете все декодированные данные с диска при рендеринге (отображении). Лучше всего начать с проверки размера декодированных данных (размер = высота * ширина исходного изображения jpg).

http://software.intel.com/sites/products/documentation/hpc/ipp/ippi/ippi_ch6/Images/ch6_image_downsampling.jpg

person Nandakumar Karanam    schedule 13.06.2013