Проверить возможность декодирования можно с помощью "img_is_img".
"img_decode" возвращает указатель на структуру Image, из которой можно узнать размеры изображения.
"img_to_rgb" преобразует исходное изображение в массив RGB.
То есть, сначала нужно прочитать файл в буфер.
Проверить поддерживается ли такой формат файла.
После этого декодировать и преобразовать в RGB.
Теперь преобразованное изображение можно вывести на экран.
"img_encode" пока ничего не кодирует. То есть, сохранять изображение придётся самому.
"img_draw" только выводит изображение. А планируется ли добавить функцию(-ии) масштабирования?
Теперь о фильтрах в моей программе - сейчас все они вызываются однообразно:
Code: Select all
push src ;-- адрес исходного изображения
push dst ;-- адрес буфера, в котором будет "фильтрованное" изображение
push width ;-- ширина исходного изображения
push height ;-- высота исходного изображения
call filterProc ;-- вызов фильтра
; -- в регистре eax возвращается dst.Но как сделать это лучше - я пока не знаю. Возможно, стоит сделать библиотеку фильтров.
Ещё по поводу разрешения экрана.
Хотелось бы протестировать и на тех разрешениях, которые у меня не поддерживаются.
Вот как это сделать? Может, хотя бы в эмуляторе(у меня Bochs и VirtualBox) как-нибудь можно?
Все три моих программки используют размеры экрана, хочу проверить их работу при различных разрешениях.