当前位置: 代码迷 >> VB Dotnet >> .net gdi+ Bit地图 怎么复制alpha通道
  详细解决方案

.net gdi+ Bit地图 怎么复制alpha通道

热度:117   发布时间:2016-04-25 02:06:56.0
.net gdi+ Bitmap 如何复制alpha通道

有两个相同大小的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写回去
  相关解决方案
本站暂不开放注册!
内测阶段只得通过邀请码进行注册!
 
  • 最近登录:Tue Nov 21 12:24:50 CST 2017
  • 最近登录:Tue Nov 21 12:24:50 CST 2017
  • 最近登录:Tue Nov 21 12:24:50 CST 2017
  • 最近登录:Tue Nov 21 12:24:50 CST 2017
  • 最近登录:Tue Nov 21 12:24:50 CST 2017