2

在寻找功能或方法来做我正在寻找的事情时遇到一个小问题,希望有人可以在这里提供一些见解。

我有一个函数应该从一个较大的位图中提取并返回一个 32x32px 的位图,该位图中有一组 32x32 的图块。

这是我现在拥有的代码,但这是错误的,因为Tile.GFX_Pos属性告诉它要在目标图像中的哪个位置绘制,而不是在源图像中的哪个位置绘制。

  Overloads Shared Function TileGFX(ByVal SrcGFX As Bitmap, ByVal Tile As TileDef) As System.Drawing.Bitmap
      Try
          Dim GFX As Bitmap = TileBitmap()
          Dim GGFX As Graphics = Graphics.FromImage(GFX)
          GGFX.DrawImageUnscaledAndClipped(SrcGFX, New Rectangle(Tile.GFXXPos, Tile.GFXYPos, TileSize, TileSize))

          Return GFX
      Catch ex As Exception
          Return TileBitmap()
      End Try
  End Function

因此,由于这不起作用,我想知道是否有人知道一个好方法来选择SrcGFX位图中的位置,而不是(当前和错误地)选择目标位图中的位置。

4

1 回答 1

1

使用DrawImage()方法而不是DrawImageUnscaledAndClipped().
DrawImage有无数的重载(好的,30),包括一堆让你指定源和目标位置的东西。

于 2009-08-18T01:23:31.830 回答