正确地从粉红色背网格图像中剪切图像以进行绘制

时间:2011-09-11 12:38:03

标签: .net grid drawimage system.graphics

enter image description here

看看上面的图片。我正在创建一个基于图块的游戏(娱乐)。在我的其他精灵中,我只是将地形方块放入网格中,它们是坚固的,所以没有问题。这里的问题是,如果我现在使用这个角色,它会尝试在他身后显示粉红色(他是16x16)。

我正在使用System.Graphics来显示项目(并在使用graphics.DrawImage()时将其删除)。有什么方法可以让它忽略特定的颜色并使它们透明吗?

我正在使用VB.net,因此所有的.net答案都可以接受。

对于评论中的一个点(或者您的答案中的额外点),您使用粉红色网格来包含所有精灵的方法是什么?

1 个答案:

答案 0 :(得分:1)

您应该将图片转换为PNG并使背景透明。如果没有,您只需转换位图:

Public Class Form1
  Private bmp As Bitmap

  Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    bmp = New Bitmap(bitmapFileName)
    bmp.MakeTransparent(Color.FromArgb(255, 0, 220))
  End Sub

  Private Sub Form1_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
    e.Graphics.DrawImage(bmp, New Point(32, 32))
  End Sub
End Class