2011-01-06 14 views
1

GetPixelとSetPixelを使用して1つの画像の内容を別の画像にコピーしようとしています(他の方法もありますが、これを試してみる理由があります)DVB .NET画像GetPixel&SetPixel:アルファを含む?

とにかく、イメージは.pngなので、透過設定が含まれています。

しかし何らかの理由でGetPixel & SetPixelを使用してイメージを別のイメージに重ねると、2番目のイメージが完全に別のイメージに置き換わるようです。つまり、GetPixel & SetPixelを使用すると透明設定が尊重されないようです。

両方の画像のサイズが同じです。どちらも透明な領域を持っています。

+0

だから、あなたは一つの画像をコピーし、他の(良い)方法があることを認識しています別のビルドされた権利を.Netに、正しい? – Flipster

+0

はい。しかし、私はそれらの他の方法で私自身の問題を抱えています。私は私の他の問題を解決しながら私は主に好奇心の目的のためにこれを求めています:) – Voldemort

答えて

2

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 
関連する問題