您阅读的博客是正确的,因为没有办法在 VB.NET 中使用不安全的代码。您似乎想要操作(可能读取像素数据?)位图文件。在 C# 中,您可以使用不安全的代码来获得比该GetPixel
方法更大的性能提升。在 VB.NET 中,您可以尝试查看LockBits。
这个页面上有一个如何使用它的例子。
Public g_RowSizeBytes As Integer
Public g_PixBytes() As Byte
Private m_BitmapData As BitmapData
' Lock the bitmap's data.
Public Sub LockBitmap(ByVal bm As Bitmap)
' Lock the bitmap data.
Dim bounds As Rectangle = New Rectangle( _
0, 0, bm.Width, bm.Height)
m_BitmapData = bm.LockBits(bounds, _
Imaging.ImageLockMode.ReadWrite, _
Imaging.PixelFormat.Format24bppRgb)
g_RowSizeBytes = m_BitmapData.Stride
' Allocate room for the data.
Dim total_size As Integer = m_BitmapData.Stride * _
m_BitmapData.Height
ReDim g_PixBytes(total_size)
' Copy the data into the g_PixBytes array.
Marshal.Copy(m_BitmapData.Scan0, g_PixBytes, _
0, total_size)
End Sub
该页面还显示了如何解锁位图。