2013-05-28 3 views
1

, чтобы читать файлы bmp, мы можем использовать это http://msdn.microsoft.com/en-us/library/dd183376(VS.85).aspx в качестве файла заголовка, а затем получить триплеты rgb. Как получить триглеты rgb jpeg-файла, есть ли такой файл заголовка. Пожалуйста, поделитесь ссылкой, если таковая имеется.Прочитать RGB триплеты файлов JPEG в C

+0

http://stackoverflow.com/a/16785094/193892 - правильный ответ, на мой взгляд. –

+1

Забавно, что сама ссылка, о которой вы указали, говорит о поддержке JPEG и PNG (флаги BI_JPEG и BI_PNG) – mvp

+0

@mvp, true! Мистер, вы должны внимательно прочитать свою собственную ссылку ... –

ответ

4

Формат файла JPEG не хранит триплеты rgb напрямую, но использует какое-то сжатие изображения. Файл фактически содержит блоки из 64 (если я правильно помню) пикселей, которые приписываются косинусным рисунком, определяющим фактические цвета.

Вы действительно должны использовать библиотеку (libjpeg, imagemagick, gd, ... например, в зависимости от вашего варианта использования), чтобы читать и декодировать файлы и генерировать триглеты rgb в памяти.

0

Посмотрите эту библиотеку: libjpeg. Эта библиотека реализует кодирование JPEG, декодирование, и транскодирование.

1

В соответствии с ответом this question on MSDN вы можете использовать компонент GDI +, который может загружать не только BMP, но и JPG и другие форматы изображений. Из него вы получите растровое изображение памяти.

Здесь an example о том, как это сделать.

Смежные вопросы