![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 17.11.2012
Сообщений: 7
|
![]()
Здраствуйте, мне нужно написать конвертер изображений BMP -> JPEG на чистом Си, с использованием только стандартных функций (пишу на Pelles C). Вот в чём проблема:
1) Когда считываю BMP-файл, я вывожу все данные о файле на экран, но они немного криво показываются (например высота и ширина изображения), хотя я пользовался данными с википедии... 2) Я так понимаю чтобы мне перевести BMP в JPEG, нужно получить двумерный массив RGB значений (так мне сказали), для последующего перевода этих значений в JPEG. Значения RGB-палитры у меня есть, но я не знаю как правильно загнать их в двумерный массив. Мне подсказывали, что надо записывать как-то так: "когда получишь двухмерный массив из [R,G,B] значений, его надо будет просто закодировать в жпег. В шапке у тебя есть размеры рисунка Width х Height (Ширина х Высота, например 1024 х 768), есть одномерный массив array1d, ну а индексы по схеме. array2d[i/Width][i%Width] = array1d[i]", но всё сводится к тому, что программа криво выдаёт Ширину и Высоту изображения. Вообщем кто сможет чем-либо помочь - буду очень благодарен! Код:
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 05.04.2012
Сообщений: 134
|
![]()
Если проблемы возникают при загрузки битмапа, то что скажешь при написание кодера и декодера JPEG(sequential или progressive), можешь использовать библиотеку libjpeg.
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,371
|
![]()
Во первых, из за выравния (alingment), елементы структур могут не следовать одним за другим в памяти а во вторых сами переменные записаны в low endian а платформа на которох все это будет работать (вы не потрудились указать) может быть либо low endian либо big endian.
|
![]() |
![]() |
![]() |
#4 | ||
Регистрация: 17.11.2012
Сообщений: 7
|
![]() Цитата:
Можете посмотреть что не так? И если не сложно, помогите считать правильно RGB значения в двумерный массив. Цитата:
Насчёт переменных, я читал на википедии но ничего про low endian и big endian не нашёл, можете тоже объяснить? Последний раз редактировалось Stilet; 18.11.2012 в 12:37. |
||
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 17.11.2012
Сообщений: 7
|
![]()
А как сделать выравнивание?
Последний раз редактировалось MartyM; 18.11.2012 в 12:55. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,371
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос по OpenGL и *.bmp/*.jpeg файлам. | Vova777 | Мультимедиа в Delphi | 2 | 26.06.2011 09:31 |
Проблема с TImage, BMP, JPEG | Florento | Общие вопросы Delphi | 5 | 16.06.2011 16:18 |
Ищу компонент конвертер(Bmp, Png, Tif, Gif...) в Jpeg | ArtGrek | Компоненты Delphi | 16 | 25.05.2011 10:05 |
Как оптимизировать код перевода BMP в JPEG | artemavd | Общие вопросы Delphi | 7 | 12.11.2010 12:18 |
Узнать цвет пикселя в Timage, если там не bmp а jpeg? | TwiX | Общие вопросы Delphi | 4 | 27.09.2009 19:11 |