![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Zigrund |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.1.2011 Репутация: нет Всего: нет |
Здравтсвуйте.
Стоит предо мною задача написать алгоритм конвертации bmp в jpg. Конечно без использования готовых средств билдера. Теории нашёл много, но чем больше изучаю, тем больше вопросов: http://algolist.manual.ru/compress/image/jpeg.php http://program.rin.ru/razdel/html/943.html http://keygene.narod.ru/1.htm#sch2 Не могли бы вы поделиться примером кода. Буду рад любой помощи. Спасибо. |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
| Zigrund |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.1.2011 Репутация: нет Всего: нет |
Эту ссулочку я уже видел. А вы не могли бы мне помочь разобраться, с чего там начинать. Я скачал архив jpegsr8c.zip. Там так много файлов, что чёрт ногу сломит. |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
с example.c
|
|||
|
||||
| Zigrund |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.1.2011 Репутация: нет Всего: нет |
А в этом коде никаких специфичных библиотек билдера не используется!? Тоесть я , как только разберусь смогу её свободно перенести на другой си копилятор, например для контроллера. |
|||
|
||||
| Zigrund |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.1.2011 Репутация: нет Всего: нет |
А как Вы считаете?
Самому можно написать используя ту теорию, которую я привёл и чтобы потом любой стандартной программкой мой джепг открылся? Или там не вся теория? Допустим я не понял, как тут RES получается. TMP у меня такойже получается, но дальше по ихней формуле такой RES никогда не получится. Что я упустил? например, нам нужно сжать следующий фрагмент изображения: | 95 88 88 87 95 88 95 95| |143 144 151 151 153 170 183 181| |153 151 162 166 162 151 126 117| IMG = |143 144 133 130 143 153 159 175| |123 112 116 130 143 147 162 189| |133 151 162 166 170 188 166 128| |160 168 166 159 135 101 93 98| |154 155 153 144 126 106 118 133| |-33 -40 -40 -41 -33 -40 -33 -33| | 15 16 23 23 25 42 55 53| | 25 23 34 38 34 23 -2 -11| IMG = | 15 16 5 2 15 25 31 47| | -5 -16 -12 2 15 19 34 61| | 5 23 34 38 42 60 38 0| | 32 40 38 31 7 -27 -35 -30| | 26 27 25 16 -2 -22 -10 5| Вот формула, по которой производится ДКП: RES*IMG*DCTT Для начала нужно посчитать промежуточную матрицу: TMP = IMG*DCTT |-103 -3 1 2 4 0 -1 5| | 89 -40 12 -2 -7 5 1 0| | 57 31 -30 6 2 0 5 0| TMP = | 55 -28 24 1 0 -8 0 0| | 32 -60 18 -1 14 0 -8 1| | 84 -11 -37 17 -24 4 0 -4| | 19 81 -16 -20 8 -3 4 0| | 22 40 11 -22 8 0 -3 2| Затем умножаем ее на ДКП матрицу: RES = TMP*DCT | 91 3 -5 -6 2 0 1| |-38 -57 9 17 -2 2 2| |-80 58 0 -18 4 3 4| RES = |-52 -36 -11 13 -9 3 0| |-86 -40 44 -7 17 -6 4| |-62 64 -13 -1 3 -8 0| |-16 14 -35 17 -11 2 -1| |-53 32 -9 -8 22 0 2| Это сообщение отредактировал(а) Zigrund - 21.3.2011, 12:16 |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
| Zigrund |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.1.2011 Репутация: нет Всего: нет |
Как, я понял, Вы уже работали с этим кодом!? Я добавил в проект файл example и три H файла, один из которых jconfig.h скопировал из блокнота. И никакх ошибок не возникло. Это нормально? |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
да. из столь сумбурного описания проделанного, сложно что-то сказать определенно. обычно, эту библиотеку нужно собирать. инструкция в install.txt |
|||
|
||||
| Zigrund |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.1.2011 Репутация: нет Всего: нет |
Там есть клёвая функция
GLOBAL(void) write_JPEG_file (char * filename, int quality) Всё замечательно, но только прежде чем записать файл, надо какой-то файл открыть. Я надеялся на то, что билдер сругнётся, что нет каких-то функций, а он предательски молчит. И у меня возник вопрос, а в како файле искать функцию типа openBMP? Добавлено через 2 минуты и 23 секунды
Спасибо. Сейчас почитаем файлик. |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
| Zigrund |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.1.2011 Репутация: нет Всего: нет |
А вы на билдере подключали этот код? А я что-то не понял, при чём тут командная строка? Работа с ней описывается в файле cjpeg.c. |
||||
|
|||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
нет. при том, что это пример. смотри исходник. |
|||
|
||||
| Zigrund |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.1.2011 Репутация: нет Всего: нет |
А Вы бы не могли кратенько меня проинструктировать, что тут мне надо и в какой последовательности, чтобы просто взять bmp файл и его сжать в jpg. Конечно, чтобы этот джепег потом открылся, тоесть правильно сжался))) Буду очень вам презнателен. А Вы сами алгоритм сжатия в jpeg не писали? |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
зачем? пример был написан именно для таких случаев ;) нет) да и не за чем. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |