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


Автор: EvgenyLE 29.3.2013, 16:24
Нужен пример создания png или tiff с прозрачным фоном. Может, есть у кого-нибудь?
Или набросайте простой проект, в котором будет создаваться изображение 50*50, на котором линиями нарисован квадрат 20*20, линии квадрата непрозрачны, всё остальное прозрачно. Файл должен сохраниться в png или tiff с сохранением прозрачности.

Автор: feodorv 29.3.2013, 16:37
http://www.libpng.org/, http://libtiff.maptools.org/, http://www.libgd.org/?

Автор: EvgenyLE 29.3.2013, 16:43
feodorv, если можно, без этих библиотек. Под windows.

Автор: GremlinProg 29.3.2013, 17:21
Цитата(EvgenyLE @  29.3.2013,  18:24 Найти цитируемый пост)
Или набросайте простой проект, в котором будет создаваться изображение 50*50, на котором линиями нарисован квадрат 20*20, линии квадрата непрозрачны, всё остальное прозрачно

http://google.com/search?q=site:forum.vingrad.ru+WM_PRINT+LAYERED есть пример вывода полупрозрачной сферы, 
http://google.com/search?q=site:forum.vingrad.ru+WM_PRINT+WS_EX_TRANSPARENT тоже есть похожие примеры

Если нужно воспроизводить [полу]прозрачные растры только для своих нужд, то png и tiff не нужны. Хранить потребуется только альфаканал для полутонового растра, т.е. если нужна прозрачность по ключу прозрачности, ничего дополнительно хранить не надо (сам ключ, разве что). А в случае, если все же нужно где-то хранить альфаканал, его можно держать в обычном 32-битном *.bmp (в четвертой компоненте RGBQUAD, как это делает Paint.Net, например)

Автор: EvgenyLE 29.3.2013, 17:25
GremlinProg, как сохранить рисунок в файл, так, чтобы у него был прозрачный фон?

Автор: EvgenyLE 29.3.2013, 20:32
Ответ дали http://forum.sources.ru/index.php?showtopic=374649&st=15&#.

Автор: GremlinProg 30.3.2013, 08:31
Цитата(EvgenyLE @  29.3.2013,  22:32 Найти цитируемый пост)
Ответ дали здесь.

но это не совсем
Цитата(EvgenyLE @  29.3.2013,  18:43 Найти цитируемый пост)
без этих библиотек

GDI+ - обертка над API GDI, поставляется отдельной библиотекой, начиная с Windows XP, а до нее приходилось таскать эту библиотеку с собой.

Без дополнительных библиотек следует смотреть спецификацию, к примеру TIFF, вот список документов: http://www.awaresystems.be/imaging/tiff/faq.html#q4
вот, к примеру, 6-я ревизия: http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf

и сохранить данные в этом формате, но так уже мало кто делает, большинство используют готовые решения :)

Добавлено через 5 минут и 8 секунд
В вашем случае, опять же повторюсь, если файл с прозрачным фоном нужен только для внутренних нужд, его можно сохранять обычным *.bmp, а отрисовывать по ключу прозрачности какого-то нулевого пиксела с помощью функции http://msdn.microsoft.com/ru-RU/library/windows/desktop/dd145141(v=vs.85).aspx

Добавлено через 6 минут и 16 секунд
дополнительные издержки на TIFF в таком случае были бы ни к чему

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