VB .NET Picture GetPixel & SetPixel: включить альфа?
Вопрос
Я пытаюсь использовать GetPixel и SetPixel, чтобы скопировать содержимое одного изображения на другой (я знаю, что есть другие методы, чтобы сделать это, но есть причины, которые я хочу попробовать это; D)
В любом случае, картинки .png изображения, поэтому они включают в себя настройки прозрачности.
Но по какой-то причине, похоже, когда я использую GetPixel & SetPixel, чтобы положить одно изображение над другим, кажется, что второе изображение полностью заменяет другой. Я имею в виду, кажется, что настройки прозрачности не уважаются, когда я использую GetPixel & SetPixel.
Оба изображения имеют одинаковый размер. Оба имеют прозрачные области.
Решение
Перед вызовом setpixel () вам нужно позвонить Maketransparnet (). Отказ Вот какой-то код, который копирует содержимое первого пикселя в альфа-изображении на другом изображении и сохранить альфа-канал первого изображения:
Using img1 = New Bitmap("c:\Users\Owner\Desktop\1.png")
PX = img1.GetPixel(0, 0)
End Using
Using img2 = New Bitmap("c:\Users\Owner\Desktop\2.png")
img2.MakeTransparent() '//Sets the transparent value and converts the image to Format32bppArgb
img2.SetPixel(0, 0, PX)
img2.Save("c:\Users\Owner\Desktop\3.png")
End Using