小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

C#中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法

 Cloud書屋 2012-11-20

導(dǎo)入以下兩個包:

    System.Drawing;

      System.Drawing.Imaging;

建產(chǎn)對象:

     Bitmap bm = new Bitmap("c:/1.bmp");

縮放:

     Bitmap bm1 = new Bitmap(bm,width,height);

格式轉(zhuǎn)換:

     bm.save("c:/1.jpg",ImageFromat.Jpeg);

     bm1.Save("c:/1.gif", ImageFormat.Gif);

剪切一個區(qū)域:

     //剪切大小

    int cutwidth;

      int cutheight;

     Graphics g;

     //以大小為剪切大小,像素格式為32位RGB創(chuàng)建一個位圖對像

     Bitmap bm1 = new Bitmap(width,height,PixelFormat.Format32bppRgb) ;

    //定義一個區(qū)域

     Rectangle rg = new Rectangle(0,0,cutwidth,cutheight);

     //要繪制到的位圖

     g = Graphics.FromImage(bm1);

     //將bm內(nèi)rg所指定的區(qū)域繪制到bm1

     g.DrawImage(bm,rg)

============================================
C#Bitmap代替另一個Bitmap的某部分
Bitmap bm = new Bitmap(寬度, 高度);// 新建一個 Bitmap 位圖 
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bm); // 根據(jù)新建的 Bitmap 位圖,創(chuàng)建畫布 
g.Clear(System.Drawing.Color.Black);// 使用黑色重置畫布 
g.DrawImage(源位圖, ......); // 繪制“源位圖”,后面有若干參數(shù)控制大小、坐標(biāo)等等功能。
==================================================
C# 圖片處理之:旋轉(zhuǎn)圖片任意角度
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客     ///<summary>
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客        
/// 任意角度旋轉(zhuǎn)
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客        
///</summary>
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客        
///<param name="bmp">原始圖Bitmap</param>
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客        
///<param name="angle">旋轉(zhuǎn)角度</param>
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客        
///<param name="bkColor">背景色</param>
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客        
///<returns>輸出Bitmap</returns>

C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客        publicstatic Bitmap KiRotate(Bitmap bmp, float angle, Color bkColor)
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客       
{
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客            
int w = bmp.Width +2;
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客            
int h = bmp.Height +2;
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             PixelFormat pf;
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客            
if (bkColor == Color.Transparent)
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客           
{
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客                 pf 
= PixelFormat.Format32bppArgb;
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             }

C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客            
else
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客           
{
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客                 pf 
= bmp.PixelFormat;
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             }

C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             Bitmap tmp 
=new Bitmap(w, h, pf);
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             Graphics g 
= Graphics.FromImage(tmp);
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             g.Clear(bkColor);
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             g.DrawImageUnscaled(bmp, 
11);
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             g.Dispose();
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             GraphicsPath path 
=new GraphicsPath();
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             path.AddRectangle(
new RectangleF(0f, 0f, w, h));
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             Matrix mtrx 
=new Matrix();
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             mtrx.Rotate(angle);
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             RectangleF rct 
= path.GetBounds(mtrx);
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             Bitmap dst 
=new Bitmap((int)rct.Width, (int)rct.Height, pf);
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             g 
= Graphics.FromImage(dst);
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             g.Clear(bkColor);
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             g.TranslateTransform(
-rct.X, -rct.Y);
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             g.RotateTransform(angle);
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             g.InterpolationMode 
= InterpolationMode.HighQualityBilinear;
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             g.DrawImageUnscaled(tmp, 
00);
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             g.Dispose();
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客             tmp.Dispose();
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客            
return dst;
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客         }

-------------------------
這張圖由以下代碼產(chǎn)生。左面的是用DrawString函數(shù)直接繪制在Form上的,右面的是在Bitmap對象中繪制好后,DrawImage到窗體上的??梢钥吹轿谋撅@示效果非常不同。因?yàn)槲蚁胧褂秒p緩沖,把大量文本先繪制在BitMap上,再讓它顯示出來,但是兩種顯示效果不一樣是無法容忍的。請問,這是為什么?怎樣讓兩種方法繪制的文本顯示效果一模一樣即使換了字體,兩種方法的顯示效果仍然不一致。
C中Bitmap類實(shí)現(xiàn)對圖像操作的一些方法 - yishimengying - yishimengying的博客
private void Form1_Paint(object sender, PaintEventArgs e)
{
    
    bmp = new Bitmap(ClientRectangle.Width, ClientRectangle.Height);
    Graphics gBmp = Graphics.FromImage(bmp);//內(nèi)存位圖
    Graphics gForm = e.Graphics;//Form
    for (int i = 1; i < 20; i++)
    {
        System.Drawing.Font f = new Font("宋體", i, FontStyle.Regular);
        gForm.DrawString("this is a test", f, Brushes.Black, new PointF(10f, i*Font.Height));
        gBmp.DrawString("this is a test", f, Brushes.Black, new PointF(0f, i * Font.Height));
    }
    gForm.DrawImage(bmp, new Point(200, 0));
}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多