Drawing.Graphics - 改变源位图像素偏移的方法?

问题描述 投票:2回答:1

找到一个函数或方法来完成我正在寻找的东西时遇到一个小问题,希望有人可以在这里给出一些见解。

我有一个函数,它应该从一个更大的位图中提取并返回一个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的位置。

.net vb.net drawimage
1个回答
1
投票

使用DrawImage()方法代替DrawImageUnscaledAndClipped()DrawImage有超过10亿次重载(好的,30次),包括一堆可以指定源位置和目标位置的重载。

© www.soinside.com 2019 - 2024. All rights reserved.