是否有相当于以下C#代码的VB.net
本文关键字:代码 VB net 相当于 是否 | 更新日期: 2023-09-27 18:22:20
请问以下C#代码的VB.net等价物是什么:
internal static unsafe void DistortedDraw(byte* sourceBuffer, Bitmap displacementMap, Bitmap destBitmap) {
int sourceWidth = destBitmap.Width, sourceHeight = destBitmap.Height;
BitmapData previewData = destBitmap.LockBits(new Rectangle(0, 0, sourceWidth, sourceHeight), ImageLockMode.WriteOnly, destBitmap.PixelFormat);
int sourceDataStride = previewData.Stride;
int sourceBPP = destBitmap.PixelFormat.ToString().Contains("16") ? 2 : destBitmap.PixelFormat.ToString().Contains("24") ? 3 : destBitmap.PixelFormat.ToString().Contains("32") ? 4 : 0;
if (displacementMap == null) {
unsafe {
byte* previewScan0 = (byte*)previewData.Scan0;
byte* sourceScan0 = (byte*)sourceBuffer;
for (int y = 0, yofs = 0, invyofs = (sourceHeight - 1 - y) * sourceDataStride; y < sourceHeight; y++, yofs += sourceDataStride, invyofs -= sourceDataStride) {
for (int x = 0; x < sourceDataStride; x += 4) {
*(int*)(previewScan0 + yofs + x) = *(int*)(sourceScan0 + invyofs + x);
}
}
}
}
destBitmap.UnlockBits(previewData);
}
谢谢。
在Visual Basic中没有直接的等价物。根本问题是VB.NET不支持不安全的关键字或指针。
你能做的最好的事情就是检查该方法的作用,并找到一种方法,用其他一些100%托管的构造来替换指针变量。