国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

使用C#繪制圖片的幾個方法

2023-05-14 16:26:28
字體:
來源:轉載
供稿:網友

本文介紹了使用C#繪制圖片的幾個方法,主要解決了以下幾個問題:

1)如何獲取.gif圖片中的各個幀?

2)如何獲取圖片的縮略圖?

3)如何“截取”圖片的指定區域?

using System.Drawing;  
using System.Drawing.Drawing2D;  
using System.Drawing.Imaging;  
 
public class ImageHelper  
{  
    /// <summary><SUMMARY></SUMMARY>  
    /// 獲取圖片中的各幀  
    /// </summary>  
    /// <param name="pPath"><PARAM name="pPath" />圖片路徑</param>  
    /// <param name="pSavePath"><PARAM name="pSavePath" />保存路徑</param>  
    public void GetFrames(string pPath, string pSavedPath)  
    {  
        Image gif = Image.FromFile(pPath);  
        FrameDimension fd = new FrameDimension(gif.FrameDimensionsList[0]);  
 
        //獲取幀數(gif圖片可能包含多幀,其它格式圖片一般僅一幀)  
        int count = gif.GetFrameCount(fd);  
 
        //以Jpeg格式保存各幀   
        for (int i = 0; i < count; i++)  
        {  
            gif.SelectActiveFrame(fd, i);  
            gif.Save(pSavedPath + "//frame_" + i + ".jpg", ImageFormat.Jpeg);  
        }  
    }  
 
    /// <summary><SUMMARY></SUMMARY>  
    /// 獲取圖片縮略圖  
    /// </summary>  
    /// <param name="pPath"><PARAM name="pPath" />圖片路徑</param>  
    /// <param name="pSavePath"><PARAM name="pSavePath" />保存路徑</param>  
    /// <param name="pWidth"><PARAM name="pWidth" />縮略圖寬度</param>  
    /// <param name="pHeight"><PARAM name="pHeight" />縮略圖高度</param>  
    /// <param name="pFormat"><PARAM name="pFormat" />保存格式,通常可以是jpeg</param>  
    public void GetSmaller(string pPath, string pSavedPath, int pWidth, int pHeight)  
    {  
        try 
        {  
            Image smallerImg;  
            Image originalImg = Image.FromFile(pPath);  
            Image.GetThumbnailImageAbort callback = new Image.GetThumbnailImageAbort(ThumbnailCallback);  
            smallerImg = originalImg.GetThumbnailImage(pWidth, pHeight, callback, IntPtr.Zero);  
            smallerImg.Save(pSavedPath + "//smaller.jpg", ImageFormat.Jpeg);  
        }  
        catch (Exception x)  
        {  
            //  
        }  
    }  
 
    /// <summary><SUMMARY></SUMMARY>  
    /// 獲取圖片指定部分  
    /// </summary>  
    /// <param name="pPath"><PARAM name="pPath" />圖片路徑</param>  
    /// <param name="pSavePath"><PARAM name="pSavePath" />保存路徑</param>  
    /// <param name="pPartStartPointX"><PARAM name="pPartStartPointX" />目標圖片開始繪制處的坐標X值(通常為)</param>  
    /// <param name="pPartStartPointY"><PARAM name="pPartStartPointY" />目標圖片開始繪制處的坐標Y值(通常為)</param>  
    /// <param name="pPartWidth"><PARAM name="pPartWidth" />目標圖片的寬度</param>  
    /// <param name="pPartHeight"><PARAM name="pPartHeight" />目標圖片的高度</param>  
    /// <param name="pOrigStartPointX"><PARAM name="pOrigStartPointX" />原始圖片開始截取處的坐標X值</param>  
    /// <param name="pOrigStartPointY"><PARAM name="pOrigStartPointY" />原始圖片開始截取處的坐標Y值</param>  
    /// <param name="pFormat"><PARAM name="pFormat" />保存格式,通常可以是jpeg</param>  
    public void GetPart(string pPath, string pSavedPath, int pPartStartPointX, int pPartStartPointY, int pPartWidth, int pPartHeight, int pOrigStartPointX, int pOrigStartPointY)  
    {  
        Image originalImg = Image.FromFile(pPath);  
 
        Bitmap partImg = new Bitmap(pPartWidth, pPartHeight);  
        Graphics graphics = Graphics.FromImage(partImg);  
        Rectangle destRect = new Rectangle(new Point(pPartStartPointX, pPartStartPointY), new Size(pPartWidth, pPartHeight));//目標位置  
        Rectangle origRect = new Rectangle(new Point(pOrigStartPointX, pOrigStartPointY), new Size(pPartWidth, pPartHeight));//原圖位置(默認從原圖中截取的圖片大小等于目標圖片的大小)  
 
        graphics.DrawImage(originalImg, destRect, origRect, GraphicsUnit.Pixel);  
        partImg.Save(pSavedPath + "//part.jpg", ImageFormat.Jpeg);  
    }  
 
    public bool ThumbnailCallback()  
    {  
        return false;  
    }  
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇江市| 江华| 嵊泗县| 盐边县| 清河县| 辽阳县| 金寨县| 宁化县| 玉门市| 平武县| 东辽县| 永登县| 法库县| 广丰县| 潞城市| 扶余县| 深水埗区| 句容市| 通州区| 玉山县| 海兴县| 若尔盖县| 沿河| 昭平县| 大丰市| 安顺市| 行唐县| 汨罗市| 安西县| 荥阳市| 华亭县| 安远县| 定边县| 轮台县| 河西区| 娄底市| 弥渡县| 美姑县| 西乌珠穆沁旗| 霍山县| 湘潭县|