Почему System.Drawing.Graphics очищает каналы RGB, когда Alpha == 0?

Это стало серьезным препятствием для программы, над которой я работаю, для работы с изображениями, имеющими альфа-каналы. Многие из имеющихся у меня изображений содержат информацию о цвете, где альфа-канал полностью прозрачен, и все же, как только я пытаюсь загрузить их в System.Drawing.Graphics, он изменяет что-либо с альфа-каналом 0 на черный с альфа-каналом 0 ,

Вот базовый образец вопроса. Я оглядывался по сторонам, пытаясь найти причину, ответ или обходной путь, но я не нашел ничего, что бы даже указывало на эту проблему.любой помощь будет оценена на этом этапе.

var myTestTransparentColor = Color.FromArgb(0, 255, 128, 64);
var image = new Bitmap(135, 135, PixelFormat.Format32bppArgb);

using (var g = Graphics.FromImage(image))
{
    g.Clear(myTestTransparentColor);
}

var color = image.GetPixel(0, 0);

Debug.Assert(color == myTestTransparentColor, "channels must match original");

РЕДАКТИРОВАТЬ:

После дальнейшего тестирования я не вижу дальнейших действий с использованием System.Drawing.Graphics, поэтому мое единственное решение, которое на самом деле не является ответом, - полностью отказаться от System.Drawing.Graphics. Просматривая мой код, я вижу, что могу этого избежать. Спустя всего лишь несколько лет использования System.Drawing.Graphics для рисования фигур и наложения текста на изображения, я нахожу раздражающим, что System.Drawing.Graphics имеет такой существенный недостаток, как этот.

Я все еще хотел бы знать, могу ли я использовать System.Drawing.Graphics и сохранить свой ARGB нетронутым, но я думаю, что пока могу без него.

Ответы на вопрос(1)

Ваш ответ на вопрос