有两个相同大小的Bitmap pic1和pic2
如何将pic1的alpha通道复制到pic2上
引用:
Imports System.Drawing.Drawing2D
关键代码:
Dim pic1 As Bitmap
Dim pic2 As Bitmap
Dim g1 As Graphics
Dim g2 As Graphics
pic1 = New Bitmap(50, 50)
pic2 = New Bitmap(50, 50)
g1 = Graphics.FromImage(pic1)
g2 = Graphics.FromImage(pic2)
g1.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
g2.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
g1.FillRectangle(New LinearGradientBrush(New Rectangle(0, 0, 50, 50), Color.FromArgb(60, Color.Green), Color.Green, LinearGradientMode.Vertical), 0, 0, 50, 50)
g2.FillRectangle(New SolidBrush(Color.FromArgb(80, Color.Black)), 0, 0, 50, 50)
请教各位前辈们
现在如果想要把pic1的带渐变的alpha通道复制到pic2上,并完全舍弃pic2的原始透明通道(替换)应该怎么做
我有个想法不知是否可行
读取pic1每一个点的alpha值并直接覆盖到pic2的对应点上,但是关键代码不会写,需要调用什么方法?
希望经验丰富的前辈们给予指导
------解决思路----------------------
按你的思路,Bitmap对象有GetPixel和SetPixel,Get拿到指定点的color,拿到A通道,Get pic2的pixel,用刚才的A替换掉当前的A,然后SetPixel写回去