最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#如何實現(xiàn)圖片的剪裁并保存

 更新時間:2016年11月12日 10:13:47   作者::b小青青  
基于c#實現(xiàn)圖片的裁剪并保存功能,實現(xiàn)方法非常簡單的,前端采用的cropper插件,但是在本文中沒有給大家多介紹,需要的朋友可以到腳本之家去查找這個插件。好了,如果大家對c#實現(xiàn)圖片裁剪并保存功能感興趣的朋友一起看看吧

最近需要將一張圖片上傳并按指定位置剪裁,后來在網(wǎng)上找了一個剪裁圖片的插件,但是只有前臺沒有后端,然后我各種百度,并最終完成,特此寫一篇博客略表紀(jì)念。

前臺我就不說了,用的cropper插件,有興趣的自己去百度找找吧。腳本之家 有這個插件。

下面是代碼:

HttpPostedFile file = context.Request.Files["avatar_file"];
string datasize = context.Request.Params["avatar_data"];
//{"x":30.003846153846148,"y":16.715384615384625,"height":300.8,"width":300.8,"rotate":0} 剪裁之后參數(shù)
JavaScriptSerializer jss = new JavaScriptSerializer();
ImgSize imagesize = jss.Deserialize<ImgSize>(datasize);
byte[] FileByte = SetFileToByteArray(file);//圖片數(shù)組
string strtExtension = System.IO.Path.GetExtension(file.FileName);//圖片格式
MemoryStream ms1 = new MemoryStream(FileByte);
Bitmap sBitmap = (Bitmap)Image.FromStream(ms1);
Rectangle section = new Rectangle(new Point(imagesize.ToInt(imagesize.x), imagesize.ToInt(imagesize.y)), new Size(imagesize.ToInt(imagesize.width), imagesize.ToInt(imagesize.height)));
Bitmap CroppedImage = MakeThumbnailImage(sBitmap, section.Width, section.Height, section.Width, section.Height, section.X, section.Y);

上面代碼中用到我自己創(chuàng)建了一個ImgSize類,代碼如下:

class ImgSize
{
//{"x":30.003846153846148,"y":16.715384615384625,"height":300.8,"width":300.8,"rotate":0}
public double x { get; set; }
public double y { get; set; }
public double width { get; set; }
public double height { get; set; }
public int rotate { get; set; }
public int ToInt(double doubleValue)
{
return Convert.ToInt32(doubleValue);
}
}

上面代碼中使用到的幾個方法:

文件轉(zhuǎn)化:

/// <summary>
/// 將From表單file文件轉(zhuǎn)化為byte數(shù)組
/// </summary>
/// <param name="File">from提交文件流</param>
/// <returns></returns>
private byte[] SetFileToByteArray(HttpPostedFile File)
{
Stream stream = File.InputStream;
byte[] AyyayByte = new byte[File.ContentLength];
stream.Read(AyyayByte, 0, File.ContentLength);
stream.Close();
return AyyayByte;
}

核心剪裁方法:

/// <summary>
/// 裁剪圖片并保存
/// </summary>
/// <param name="Image">圖片信息</param>
/// <param name="maxWidth">縮略圖寬度</param>
/// <param name="maxHeight">縮略圖高度</param>
/// <param name="cropWidth">裁剪寬度</param>
/// <param name="cropHeight">裁剪高度</param>
/// <param name="X">X軸</param>
/// <param name="Y">Y軸</param>
public static Bitmap MakeThumbnailImage(Image originalImage, int maxWidth, int maxHeight, int cropWidth, int cropHeight, int X, int Y)
{
Bitmap b = new Bitmap(cropWidth, cropHeight);
try
{
using (Graphics g = Graphics.FromImage(b))
{
//清空畫布并以透明背景色填充
g.Clear(Color.Transparent);
//在指定位置并且按指定大小繪制原圖片的指定部分
g.DrawImage(originalImage, new Rectangle(0, 0, cropWidth, cropHeight), X, Y, cropWidth, cropHeight, GraphicsUnit.Pixel);
Image displayImage = new Bitmap(b, maxWidth, maxHeight);
displayImage.Save("E:\\cutimg.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
Bitmap bit = new Bitmap(b, maxWidth, maxHeight);
return bit;
}
}
catch (System.Exception e)
{
throw e;
}
finally
{
originalImage.Dispose();
b.Dispose();
}
}

最后的結(jié)果是把存到了E盤根目錄下面

以上所述是小編給大家介紹的C#如何實現(xiàn)圖片的剪裁并保存,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的,在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • C#中使用NLog庫進行日志記錄的流程詳解

    C#中使用NLog庫進行日志記錄的流程詳解

    NLog 是 .NET 的日志記錄框架,具有豐富的日志路由和管理能力,極大地幫助您生成和管理日志,NLog 是一個庫,可以輕松地同時記錄和管理多個不同區(qū)域中的數(shù)據(jù),本文將給大家介紹在C#中使用 NLog 庫進行日志記錄的教程,需要的朋友可以參考下
    2024-06-06
  • c#數(shù)據(jù)庫與TXT導(dǎo)入導(dǎo)出的實例

    c#數(shù)據(jù)庫與TXT導(dǎo)入導(dǎo)出的實例

    最近剛學(xué)完ADO.NET,做了個數(shù)據(jù)導(dǎo)入導(dǎo)出的題目,是將txt中的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,然后將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出到txt中,這里說的數(shù)據(jù)的格式是“tom|23”,tom指名字,23指年齡。廢話也不多說了,大家直接看代碼。
    2013-04-04
  • VS2010下生成dll的方法

    VS2010下生成dll的方法

    這篇文章主要介紹了VS2010下生成dll的方法,需要的朋友可以參考下
    2018-01-01
  • 詳解c# 接口IDisposable的用法

    詳解c# 接口IDisposable的用法

    這篇文章主要介紹了詳解c# 接口IDisposable的用法,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2020-10-10
  • c# wpf如何附加依賴項屬性

    c# wpf如何附加依賴項屬性

    這篇文章主要介紹了c# wpf如何附加依賴項屬性,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#.NET學(xué)習(xí)筆記5 C#中的條件編譯

    C#.NET學(xué)習(xí)筆記5 C#中的條件編譯

    條件編譯是C#比Java多出的東西,但我跟前輩請教后,他們都說條件編譯在實際的項目開發(fā)中不怎么使用.鑒于是新內(nèi)容,我還是做做筆記,理解一下好了
    2012-11-11
  • C#單例模式Singleton的實現(xiàn)詳解

    C#單例模式Singleton的實現(xiàn)詳解

    單例模式(Singleton?Pattern)是日常開發(fā)中最簡單的設(shè)計模式之一,它提供了一種創(chuàng)建對象的最佳方式,本文主要為大家介紹的是C#單例模式的實現(xiàn)方法,需要的可以參考一下
    2023-05-05
  • C#訪問及調(diào)用類中私有成員與方法示例代碼

    C#訪問及調(diào)用類中私有成員與方法示例代碼

    訪問一個類的私有成員不是什么好做法,大家也都知道私有成員在外部是不能被訪問的,這篇文章主要給大家介紹了關(guān)于C#訪問及調(diào)用類中私有成員與方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-06-06
  • C#在Excel表格中插入、編輯和刪除批注

    C#在Excel表格中插入、編輯和刪除批注

    這篇文章主要為大家詳細介紹了C#如何在Excel表格中插入、編輯和刪除批注,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • C#中{get;set;}的具體使用

    C#中{get;set;}的具體使用

    本文主要介紹了C#中{get;set;}的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評論

遵义市| 马公市| 九龙城区| 紫金县| 崇信县| 隆尧县| 乌鲁木齐县| 木兰县| 武乡县| 西宁市| 广饶县| 土默特右旗| 会理县| 石林| 泗水县| 旅游| 汝阳县| 珠海市| 桃园市| 舟山市| 丽水市| 随州市| 罗定市| 曲麻莱县| 安多县| 克拉玛依市| 怀集县| 临武县| 紫云| 呼和浩特市| 霍邱县| 铅山县| 清苑县| 理塘县| 临武县| 津南区| 平塘县| 保康县| 句容市| 沽源县| 浮梁县|