GDI + сбрасывает цвет прозрачной части изображения на черный - PullRequest
0 голосов
/ 14 февраля 2019

Как мне нарисовать определенный прозрачный цвет с помощью GDI +?

Я пробовал этот код:

m_image = new Gdiplus::Bitmap( img_w, img_h );
m_graphic = Gdiplus::Graphics::FromImage( m_image );

Gdiplus::Color c( 0, 255, 0, 0 ); // ARGB = 0x00FF0000

m_graphic->Clear( c );

m_image->GetPixel( 0, 0, &c ); //ARGB = 0x00000000 ?!

Цвет прозрачной части изображения всегда черный.Как я могу это изменить?

1 Ответ

0 голосов
/ 01 марта 2019

Метод Graphics :: Clear очищает объект Graphicsobject до указанного цвета.Я попробовал ваш код:

Image m_image(L"C:\\Users\\strives\\Desktop\\apple.jpg");
Graphics *m_graphic = Graphics::FromImage(&m_image);
Gdiplus::Color c(0, 255, 0, 0); // ARGB = 0x00FF0000
m_graphic->Clear(c);
graphics.DrawImage(&m_image, 30, 20);
delete m_graphic;

Окончательное изображение выглядит следующим образом.

введите описание изображения здесь

Я думаю, что проблема ясна,Если вы используете функцию очистки и задаете цвет (0, 255, 0, 0), который по умолчанию черный, тогда область печати должна быть черной, а цвет пикселей, захваченных функцией GetPixel ниже, должен быть черным.,

...