Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > GDI


Автор: scooper 30.4.2010, 15:23
Как средствами gdi обесцветить изображение jpeg.??

Автор: Earnest 30.4.2010, 18:06
Один из вариантов - выбрать в контекст, а потом PatBlt (,,,BLACKNESS).
 smile 

Автор: scooper 30.4.2010, 18:15
Что то не понял как это сделать.... можно поподробнее?

Автор: Emura 1.5.2010, 00:35
Цитата

можно поподробнее?

1 найти способ конвертации jpg в HBITMAP
2 создать HBITMAP
3 создать HDC
4 выбрать в нем HBITMAP
5 сделать PatBlt
6 очистить занятые ресурсы
7 найти способ конвертации HBITMAP в jpg


или 


1 загрузить jpg
2 получить указатель на биты
3 пробежаться циклом или ZeroMemory, изменив тем самым пиксели
4 сохранить в jpg

Автор: djamshud 1.5.2010, 00:38
Я <-б-и-п->. Предлагаю еще более извращенный вариант: обесцвечивать жипег на процессоре видеокарты.

Автор: Emura 1.5.2010, 00:44
djamshud
Цитата

Я о*уеваю.

да ладно?)
в винапи нет легких путей, все легкие пути  - лишь обертки.

второй способ вообще "как 2 байта переслать" smile 

Автор: djamshud 1.5.2010, 00:58
Зачем картинки конвертировать через winAPI?!

http://uw714doc.sco.com/en/jpeg/libjpeg.txt

All details of color conversion and other preprocessing/postprocessing can be handled by the library.

//А Картман ел жопой... и у него неплохо получалось!

Автор: Emura 1.5.2010, 13:06
djamshud
читаем внимательней. второй вариант без явного винапи.
и не стоит так расстраиваться smile 

Автор: djamshud 2.5.2010, 00:14
Emura, второй вариант вы потом дописали, я первый критиковал, да и то не столько конкретно его, сколько идею решения задачи. А второй вариант наверное хорош, во только я не уверен, что "зануление" пикселей обесцветит картинку, а не сделает ее просто черной.

Автор: xvr 2.5.2010, 10:12
Цитата(Emura @  1.5.2010,  13:06 Найти цитируемый пост)
читаем внимательней. второй вариант без явного винапи
В нем не хватает 2 пунктов:
Код

1.5 распаковать jpeg в массив пикселей
3.5 запаковать jpeg из массива пикселей
Все вместе это и будет libjpeg

Автор: Earnest 4.5.2010, 06:54
Ну вы даете.
Я вообще-то пошутила. Надеялась, что до автора дойдет, что термин "обесцветить" неплохо бы определить поточнее.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)