2

私が探していることを行うための関数またはメソッドを見つけるのに小さな問題があり、誰かがここで少しの洞察を与えることができることを願っています.

内部に 32x32 タイルのセットがある大きなビットマップから 32x32px ビットマップを抽出して返す関数があります。

これが私が今持っているコードですが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ソースと宛先の両方の場所を指定できる束を含む、10 億のオーバーロード (OK、30) があります。

于 2009-08-18T01:23:31.830 に答える