0

寻找一些非常感谢的帮助。我正在尝试将较小的位图绘制成较大的位图。我正在尝试使用 Lockbits 来加快进程。但是我的 .DrawImage 函数不会执行。该错误是一般 GDI+ 错误(未处理异常)。这是我的代码片段。我究竟做错了什么?Misc.Lockbitmap 已验证可以正常工作,因此我认为不存在错误,但如果有帮助,我也可以将代码放在这里。

我应该补充一点,这是更大代码的一部分。澄清一下:如果我禁用锁定位,我可以使用 .DrawImage 执行该行。

Dim largerFile As New Bitmap(BitMapSizeX, BitMapSizeY)
Call MiscClass.LockBitmap(largerFile, PixBytes, RowSizeBytes)
Dim GraphicsModifier As Graphics = Graphics.FromImage(largerFile)
Dim currentPic As New Bitmap(smallerFilePath.Tostring) ' & ".jpg")
GraphicsModifier.DrawImage(currentPic, picAndLoc.XLoc, picAndLoc.YLoc, ComponentSize, ComponentSize)
Public Shared m_BitmapData As BitmapData   

' Lock the bitmap's data.
Public Shared Sub LockBitmap(ByRef bm As Bitmap, ByRef PixBytes() As Byte, ByRef RowSizeBytes As Integer)
  Dim bounds As Rectangle = New Rectangle(0, 0, bm.Width, bm.Height)
  m_BitmapData = bm.LockBits(bounds, Imaging.ImageLockMode.ReadWrite, Imaging.PixelFormat.Format24bppRgb)
  RowSizeBytes = m_BitmapData.Stride

  ' Allocate room for the data.

  Dim total_size As Integer = m_BitmapData.Stride * m_BitmapData.Height
  ReDim PixBytes(total_size)
  Marshal.Copy(m_BitmapData.Scan0, PixBytes, 0, total_size)
End Sub
4

0 回答 0