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;
}
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下