C#中Bitmap类实现对图像操作的一些方法(转)


导入以下两个包:
     System.Drawing;
     System.Drawing.Imaging;
建产对象:
     Bitmap bm = new Bitmap("c:/1.bmp");
缩放:
     Bitmap bm1 = new Bitmap(bm,width,height);
格式转换:
     bm.save("c:/1.jpg",ImageFromat.Jpeg);
     bm1.Save("c:/1.gif", ImageFormat.Gif);
剪切一个区域:
     //剪切大小
     int cutwidth;  
     int cutheight;
     Graphics g;
     //以大小为剪切大小,像素格式为32位RGB创建一个位图对像
     Bitmap bm1 = new Bitmap(width,height,PixelFormat.Format32bppRgb)  ;
     //定义一个区域
     Rectangle rg = new Rectangle(0,0,cutwidth,cutheight);
     //要绘制到的位图
     g = Graphics.FromImage(bm1);
     //将bm内rg所指定的区域绘制到bm1
     g.DrawImage(bm,rg)
============================================
C#Bitmap代替另一个Bitmap的某部分
Bitmap bm = new Bitmap(宽度, 高度);// 新建一个 Bitmap 位图
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bm); // 根据新建的 Bitmap 位图,创建画布
g.Clear(System.Drawing.Color.Black);// 使用黑色重置画布
g.DrawImage(源位图, ......); // 绘制“源位图”,后面有若干参数控制大小、坐标等等功能。
==================================================
C# 图片处理之:旋转图片任意角度
      /// <summary>
         
/// 任意角度旋转
         
/// </summary>

         
/// <param name="bmp">原始图Bitmap</param>
         
/// <param name="angle">旋转角度</param>
         
/// <param name="bkColor">背景色</param>
         
/// <returns>输出Bitmap</returns>

         public static Bitmap KiRotate(Bitmap bmp, float  angle, Color bkColor)
         
{
             
int w = bmp.Width + 2
;
             
int h = bmp.Height + 2
;
 
              PixelFormat pf;
 
             
if (bkColor ==
 Color.Transparent)
             
{
                  pf
 =
 PixelFormat.Format32bppArgb;
              }

             
else
             
{
                  pf
 =
 bmp.PixelFormat;
              }

 
              Bitmap tmp
 = new Bitmap(w, h, pf);
              Graphics g
 =
 Graphics.FromImage(tmp);
              g.Clear(bkColor);
              g.DrawImageUnscaled(bmp,
 1, 1
);
              g.Dispose();
 
              GraphicsPath path
 = new
 GraphicsPath();
              path.AddRectangle(
new
 RectangleF(0f, 0f, w, h));
              Matrix mtrx
 = new
 Matrix();
              mtrx.Rotate(angle);
              RectangleF rct
 =
 path.GetBounds(mtrx);
 
              Bitmap dst
 = new Bitmap((int)rct.Width, (int
)rct.Height, pf);
              g
 =
 Graphics.FromImage(dst);
              g.Clear(bkColor);
              g.TranslateTransform(
-rct.X, -
rct.Y);
              g.RotateTransform(angle);
              g.InterpolationMode
 =
 InterpolationMode.HighQualityBilinear;
              g.DrawImageUnscaled(tmp,
 0, 0
);
              g.Dispose();
 
              tmp.Dispose();
 
             
return
 dst;
          }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值