C#实现图片放大功能的按照像素放大图像方法
本文实例讲述了基于VisualC#实现的图片放大功能代码。可以直接放大像素,类似photoshop的图片放大功能,可用于像素的定位及修改,由于使用了指针需要勾选允许不安全代码选项,读者可将其用于自己的项目中!
关于几个参数说明:
srcbitmap源图片
multiple图像放大倍数
放大处理后的图片
注意:需要在头部引用:usingSystem.Drawing;usingSystem.Drawing.Imaging;
至于命名空间读者可以自己定义。
主要功能代码如下:
usingSystem.Drawing;usingSystem.Drawing.Imaging;
publicBitmapMagnifier(Bitmapsrcbitmap,intmultiple)
{
if(multiple<=0){multiple=0;returnsrcbitmap;}
Bitmapbitmap=newBitmap(srcbitmap.Size.Width*multiple,srcbitmap.Size.Height*multiple);
BitmapDatasrcbitmapdata=srcbitmap.LockBits(newRectangle(newPoint(0,0),srcbitmap.Size),ImageLockMode.ReadOnly,PixelFormat.Format32bppArgb);
BitmapDatabitmapdata=bitmap.LockBits(newRectangle(newPoint(0,0),bitmap.Size),ImageLockMode.ReadWrite,PixelFormat.Format32bppArgb);
unsafe
{
byte*srcbyte=(byte*)(srcbitmapdata.Scan0.ToPointer());
byte*sourcebyte=(byte*)(bitmapdata.Scan0.ToPointer());
for(inty=0;y<bitmapdata.Height;y++)
{
for(intx=0;x<bitmapdata.Width;x++)
{
longindex=(x/multiple)*4+(y/multiple)*srcbitmapdata.Stride;
sourcebyte[0]=srcbyte[index];
sourcebyte[1]=srcbyte[index+1];
sourcebyte[2]=srcbyte[index+2];
sourcebyte[3]=srcbyte[index+3];
sourcebyte+=4;
}
}
}
srcbitmap.UnlockBits(srcbitmapdata);
bitmap.UnlockBits(bitmapdata);
returnbitmap;
}
热门推荐
4 年月日祝福语简短
10 小红书平安祝福语简短
11 收生日红包祝福语 简短
12 生日祝福语简短独特的
13 弟弟生日祝福语简短的话
14 女儿结婚账单祝福语简短
15 给表弟的祝福语简短
16 新年简短的祝福语爱情
17 写给情侣祝福语 浪漫简短
18 提早庆祝生日祝福语简短