Вопрос

Я пытаюсь использовать 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top