我要组合2张图像,这里是一个例子。
我有卡车的图像和pensil的图像,我希望将它们结合在一起,如底部显示的那样,使用gimp使用alpha的选择创建,扩展和清除。
实际上,代码是最少的:
Dim base = Image.FromFile("small_truck.png")
Dim add As Bitmap = Bitmap.FromFile("pencil.png")
Dim frame As New Bitmap(base.Width, base.Height, Imaging.PixelFormat.Format32bppArgb)
Dim g = Graphics.FromImage(frame)
g.DrawImage(base, 0, 0)
g.DrawImage(add, base.Width - add.Width, base.Height - add.Height, add.Width, add.Height)
frame.Save("output.png")
有人知道如何复制gimp工作流程吗?
答案 0 :(得分:0)
我做到了!
Dim base = Image.FromFile("small_truck.png")
Dim add As Bitmap = Bitmap.FromFile("pencil.png")
Dim frame As New Bitmap(base.Width, base.Height, Imaging.PixelFormat.Format32bppArgb)
Dim g = Graphics.FromImage(frame)
g.DrawImage(base, 0, 0)
g.CompositingMode = CompositingMode.SourceCopy
Dim startx = base.Width - add.Width, starty = base.Height - add.Height
For y = 0 To add.Height - 1
For x = 0 To add.Width - 1
Dim c = add.GetPixel(x, y)
If c.A >= 128 Then
g.FillRectangle(Brushes.Transparent, startx + x - 1, starty + y - 1, 3, 3)
End If
Next
Next
g.CompositingMode = CompositingMode.SourceOver
g.DrawImage(add, startx, starty, add.Width, add.Height)
frame.Save("output_32.png")
我在这里问答,也许对某人有用。