我一直在创建的控件中使用以下子控件,以便更快地修改位图中的像素:
Protected Sub LockForMemory()
idata = ime.LockBits(New Rectangle(0, 0, ime.Width, ime.Height), ImageLockMode.WriteOnly, ime.PixelFormat)
ipoint = idata.Scan0
ibytes = Math.Abs(idata.Stride) * ime.Height
ReDim irgbvalues(ibytes - 1)
System.Runtime.InteropServices.Marshal.Copy(ipoint, irgbvalues, 0, ibytes)
End Sub
所有这些都有效,稍后当我在操作后检索实际图像时,它也可以正常工作。问题在于设置那些实际像素。
这个数组是什么?我知道它充满了Integers
但每个指数代表什么?一开始我以为是这样设置的:
Array-> [R of Pixel 0,0][G of Pixel 0,0][B of Pixel 0,0][R of Pixel 2,0][G of Pixel 2,0][B of Pixel 2,0 ]
然而,这似乎并不正确。