程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#也能PS圖片,還能為網站Ajax上傳圖片同時生成微縮圖(附Demo)

C#也能PS圖片,還能為網站Ajax上傳圖片同時生成微縮圖(附Demo)

編輯:C#入門知識

本文旨在與各位朋友們分享我是如何在項目中用C# “ps圖片” 為網站生成同比例微縮圖的解決方案。如有不足之處歡迎您指出。

 

     一、技術概述


        1.Ajax無刷新上傳圖片,詳情請閱我的這篇文章。(jquery + c# ashx)

        2.C#位圖處理  System.Drawing。

        3.最新demo支持IE7,IE8,FireFox。

 

    二、微縮圖處理方法:


    生成微縮圖的核心方法:

\\CreateThumbnailPicture
        /// <summary>
/// 圖片微縮圖處理
/// </summary>
/// <param name="srcPath">源圖片</param>
/// <param name="destPath">目標圖片</param>
/// <param name="width">寬度</param>
/// <param name="height">高度</param>
public static void CreateThumbnailPicture(string srcPath, string destPath, int width, int height)
{
//根據圖片的磁盤絕對路徑獲取 源圖片 的Image對象
System.Drawing.Image img = System.Drawing.Image.FromFile(srcPath);

//bmp: 最終要建立的 微縮圖 位圖對象。
Bitmap bmp = new Bitmap(width, height);

//g: 繪制 bmp Graphics 對象
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.Transparent);
//為Graphics g 對象 初始化必要參數,很容易理解。
g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;

//源圖片寬和高
int imgWidth = img.Width;
int imgHeight = img.Height;

//繪制微縮圖
g.DrawImage(img, new System.Drawing.Rectangle(0, 0, width, height), new System.Drawing.Rectangle(0, 0, imgWidth, imgHeight)
, GraphicsUnit.Pixel);

ImageFormat format = img.RawFormat;
ImageCodecInfo info = ImageCodecInfo.GetImageEncoders().SingleOrDefault(i => i.FormatID == format.Guid);
EncoderParameter param
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved