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



http://hi.baidu.com/donetsky/blog/item/e95ab635eb7af21090ef3984.html
导入以下两个包:
     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# 图片处理之:旋转图片任意角度
      /// 
         
/// 任意角度旋转
         
/// 

         
/// 原始图Bitmap
         
/// 旋转角度
         
/// 背景色
         
/// 输出Bitmap

         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;
          }

你可能感兴趣的:(UI设计,c#技术)