VB .NET изображение GetPixel & SetPixel: Включить альфа? - PullRequest
1 голос
/ 06 января 2011

Я пытаюсь использовать GetPixel и SetPixel для копирования содержимого одного изображения в другое (я знаю, что есть другие способы сделать это, но есть причины, по которым я хочу попробовать это; D)

В любом случаеизображения являются изображениями .png, поэтому они содержат настройки прозрачности.

Но по какой-то причине кажется, что когда я использую GetPixel & SetPixel, чтобы поместить одно изображение поверх другого, кажется, что второе изображение полностью заменяет другоеодин.Я имею в виду, что настройки прозрачности не соблюдаются, когда я использую GetPixel & SetPixel.

Оба изображения имеют одинаковый размер.Оба имеют прозрачные области.

1 Ответ

2 голосов
/ 06 января 2011

Перед вызовом 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
...