首页 > 其他 > 详细

bitmap的图像像素遍历方法

时间:2015-12-25 17:09:04      阅读:186      评论:0      收藏:0      [点我收藏+]
public class FastBitmap
{
    BitmapData bitmapData;
    public FastBitmap(Bitmap bitmap)
    {
        this.bitmapData=bitmap.LockBits(new Rectangle(0,0,bitmap.Width,bitmap.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, bitmap.PixelFormat);
    }
    public unsafe Color GetPixel(int x,int y)
    {
        if (bitmapData.PixelFormat == PixelFormat.Format32bppRgb || bitmapData.PixelFormat == PixelFormat.Format32bppArgb)
        {
            byte* numPtr = (byte*)((int)bitmapData.Scan0 + y * bitmapData.Stride + x * 4);
            return Color.FromArgb(numPtr[3],numPtr[2], numPtr[1],numPtr[0]);
        }
        if (bitmapData.PixelFormat == PixelFormat.Format24bppRgb)
        {
            byte* numPtr2 = (byte*)((int)bitmapData.Scan0 + y * bitmapData.Stride + x * 3);
            return Color.FromArgb(numPtr2[2], numPtr2[1], numPtr2[0]);
        }
        return Color.Empty;
    }
}

 

bitmap的图像像素遍历方法

原文:http://www.cnblogs.com/zhayunjia/p/5076048.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!