Как создавать изображения PNG с помощью Visual Studio C ++ 2010? - PullRequest
0 голосов
/ 09 марта 2011

IN : Visual Studio 2010 Ultimate, Windows 7

OUT : некоторые небольшие изображения в формате PNG, которые я буду использовать в качестве пользовательских маркеров в Картах Google.

Язык : C ++ (или, если мне действительно нужно, C #)

Дополнительно: мне нужно иметь возможность построить альфа-канал (прозрачность). Я использовал библиотеку PNGwriter на компьютере с Linux, и эта функция не предоставлялась.

Дополнительно 2: .exe будет запускаться на сервере каждый раз, когда требуется новый пользовательский маркер. (Маркеры имеют разные цвета и формы)

Редактировать: 1. Я хочу создать новое изображение. 2. Мне нужна библиотека, которую я пока не могу найти через Google.

Ответы [ 5 ]

2 голосов
/ 14 июля 2012

Я создал Kluge, чтобы сделать это.Я использовал обычную процедуру получения цвета (GetColor (красный, зеленый, синий, прозрачность)).Я напечатал в два прохода.Первый проход распечатал бы к изображению с серой шкалой 256.GetColor () возвращает прозрачность в виде оттенка серого.Второй проход будет печатать в 24-битное цветное изображение.GetColor возвращает цвет RGB.После двух проходов я объединил два растровых изображения, и шкала серого стала альфа-каналом для файла PNG.

2 голосов
/ 09 марта 2011

Вы имеете в виду, что вы хотите конвертировать из одного формата файла в PNG, используя C ++?Или что вы хотите отрендерить изображение и сохранить полученное изображение в формате PNG?

В любом случае, может быть, вам стоит взглянуть на FreeImage http://freeimage.sourceforge.net/features.html, который является анализом изображения с открытым исходным кодом /Написание библиотеки, которая поддерживает множество форматов, включая PNG.

1 голос
/ 02 марта 2012

Вы всегда можете использовать .NET.

Я бы предложил встроенное пространство имен System.Drawing, которое доступно в обоих вариантах - C ++ и C #. Предполагая, что вы не против использования Visual C ++ Express, вы всегда можете взять его оттуда.

Вот ссылка на «официальную» документацию: System.Drawing Namespace
Внутри которого находится пространство имен System.Drawing.Graphics, которое, возможно, вы бы хотели использовать.

И вот ссылка на симпатичный небольшой учебник, который научит вас, как импортировать изображение и рисовать на нем (или, возможно, даже нарисовать его на растровом изображении): Чудеса System.Drawing.Graphics

1 голос
/ 09 марта 2011

C ++ не имеет встроенных средств для редактирования изображений.Вам нужно найти библиотеку.

0 голосов
/ 09 марта 2011

Boost.GIL может работать с PNG.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...