Сабж конечно не нов, но я все же затрудняюсь с его реализацией. Дело в том что пишу я на C++ (WinAPI) и исходный растр (BMP) у меня "получается" после вызова функций HBITMAP b = CreateDIBSection(dc,&inf,0,&bp,NULL,0); SelectObject(qdc,b); То есть у меня есть буфер (указатель bp) содержащий BMP файл и известен размер этого файла, так вот, нужно конвертировать этот BMP растр в JPEG формат, который также, например, содержался бы в буфере. Нашел тут линк: http://rsdn.ru/article/qna/gdi/drawimg.xml, заинтересовался GDI+ , посмотрел прототипы функций. GdipSaveImageToStream вроде бы, по идеи, должна подходить для реализации конвертации, но вот загвоздка: я же пишу на WinAPI, мне не понятно как я буду вообще работать с этим Stream'ом. То есть мне нужна конвертация форматов, так сказать, "на уровне массивов". Так что у меня просьба дать совет как реализовать подобное, в каком направлении рыть, или быть может библиотеки есть какие-нибудь.
На TASM подойдёт? Весь кодировщик расписан "вручную", без использования функций GDI+ или других не-системных библиотек.
DEEP о кстати покаж ручную реализацию, твоя личная или паблик какаято? PS. Gdi+ вполне себе почти-системная =)
To DEEP: Сейчас проверил твой кодировщик. Растры с маленьким разрешением вроде кодирет нормально, но если ставлю растр 1024x768 (3 байта на пиксель) он кодирует только верхнюю половину изображения. И как я понял он работает только с 32 или 24 битными растрами, а как быть если у меня 16 битный ?) У тебя есть еще что-нибудь подобное ?) To Booster Мне конечно ближе (к пониманию и реализации) вариант с перекодировкой "вручную", но твой класс, думаю, тоже может помочь, только я не очень разбираюсь с этими ole'шными функциями. Уточни пожалуйста как использовать методы в твоем классе приминительно к решению моей задачи. Метод GetData возвращает указатель на данные изображения (из комментария), то есть любого изображения ? и BMP и JPG ?
пример на FASM. в папку кинуть 1.bmp и скомпилить. вобщем то на СИ думаю без особого труда можно переделать. в результате работы создасцо файл c:/1.jpg
To Y_Mur Ну я, знаешь ли, не нашел, поэтому и сабж создал. Приведи пример реализации пожалуйста. To Freeman Спасибо конечно за исходник, но там нужно разбираться с GDI+. Может у тебя есть линк на документацию по GDI+, а то в нете есть примеры на .NET а на Си я чтот не нашел. Может я искать не умею просто. P.S. Сейчас наткнулся на интеловскую либу по работе с JPEG (http://www.sources.ru/cpp/cpp_class_for_jpeg.shtml), пробую разобраться. Если кто раньше имел дело с этой библиотекой, просьба поделиться знаниями.
Уфф. Разобрался, вроде работает. Использовал интеловскую библиотеку. Спасибо всем кто уделил внимание.