找到一个函数或方法来完成我正在寻找的东西时遇到一个小问题,希望有人可以在这里给出一些见解。
我有一个函数,它应该从一个更大的位图中提取并返回一个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
位图中的blit,而不是(目前和不正确)选择目标位图中blit的位置。
使用DrawImage()
方法代替DrawImageUnscaledAndClipped()
。
DrawImage
有超过10亿次重载(好的,30次),包括一堆可以指定源位置和目标位置的重载。