-1
A
回答
3
是的,你可以使用指针。 See unsafe
keyword。
一个使用之实践的一个例子:图像转换为灰度
public static Bitmap MakeGrayscale2(Bitmap original)
{
unsafe
{
//create an empty bitmap the same size as original
Bitmap newBitmap = new Bitmap(original.Width, original.Height);
//lock the original bitmap in memory
BitmapData originalData = original.LockBits(
new Rectangle(0, 0, original.Width, original.Height),
ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
//lock the new bitmap in memory
BitmapData newData = newBitmap.LockBits(
new Rectangle(0, 0, original.Width, original.Height),
ImageLockMode.WriteOnly, PixelFormat.Format24bppRgb);
//set the number of bytes per pixel
int pixelSize = 3;
for (int y = 0; y < original.Height; y++)
{
//get the data from the original image
byte* oRow = (byte*)originalData.Scan0 + (y * originalData.Stride);
//get the data from the new image
byte* nRow = (byte*)newData.Scan0 + (y * newData.Stride);
for (int x = 0; x < original.Width; x++)
{
//create the grayscale version
byte grayScale =
(byte)((oRow[x * pixelSize] * .11) + //B
(oRow[x * pixelSize + 1] * .59) + //G
(oRow[x * pixelSize + 2] * .3)); //R
//set the new image's pixel to the grayscale version
nRow[x * pixelSize] = grayScale; //B
nRow[x * pixelSize + 1] = grayScale; //G
nRow[x * pixelSize + 2] = grayScale; //R
}
}
//unlock the bitmaps
newBitmap.UnlockBits(newData);
original.UnlockBits(originalData);
return newBitmap;
}
}
+0
谢谢,非常好的dicription –
相关问题
- 1. 我们如何访问C#中C指针指向的值?
- 2. 我们可以从函数名称访问堆栈帧指针
- 3. 我们可以使用out指针对象访问托管代码吗?
- 4. 我可以在C中访问指针作为二维数组吗?
- 5. 我可以使用' - >'操作符通过指针访问对象指针吗?
- 6. 我们可以在C++/VC++中访问ODB ++文件(PCB)吗?
- 7. 我可以保证使用负移位访问指针吗?
- 8. 我可以使用指针访问多维数组吗?
- 9. Flex Hero:我可以访问Android指南针吗?
- 10. 指针,我正确使用它们吗? Objective-C的/可可
- 11. 我们可以说指针值指定了一个对象吗?
- 12. 我们可以在联合中使用指针吗?
- 13. C++:访问指针
- 14. 我们需要指针吗?
- 15. C#指向变量的指针 - 我可以避免它吗?
- 16. 我可以投这样的指针吗?
- 17. 我可以在C++中捕获错误的指针错误吗?
- 18. 我们可以通过D-bus访问数据成员和指向对象的指针吗?
- 19. 回形针回形针:我可以访问模型吗?
- 20. 我们可以使用“this”指针获取对象名称吗
- 21. 我们可以访问windows phone 7中的twitter更新吗?
- 22. HTML5中的iOS/Android开发,我们可以访问硬件吗?
- 23. 我们可以访问可重用的DaysOfWeek控件吗?
- 24. 从C风格指针访问自我
- 25. 我可以在C中创建一个Char指针数组吗?
- 26. 我可以在JavaScript中模拟C类指针数组吗?
- 27. 我们可以在我们的iPhone应用程序中访问播客吗?
- 28. 删除智能指针,但仍可以访问指针?
- 29. C#ReadProcessMemory - 访问/读指针
- 30. 指针访问冲突? - C++
您可以访问'unsafe'上下文中的指针。否则,你不会:语言遮掩它。 –
你很少(如果有的话)在C#中使用指针。 请参阅http://stackoverflow.com/questions/5171781/when-to-use-pointers-in-c-net – mason
你为什么要访问指针?你想要达到什么目标,你不能没有指针? –