博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebForm使用FileUpload控件上传压缩二进制图片
阅读量:4605 次
发布时间:2019-06-09

本文共 3036 字,大约阅读时间需要 10 分钟。

fuImage 是FileUpload页面控件
ImageHelper.CompressionImage(fuImage.FileBytes, quality);         ///         /// Convert Byte[] to Image        ///         ///         /// 
public static Image BytesToImage(byte[] buffer) { MemoryStream ms = new MemoryStream(buffer); Image image = System.Drawing.Image.FromStream(ms); return image; } /// /// Convert Byte[] to a picture and Store it in file /// /// /// ///
public static string CreateImageFromBytes(string fileName, byte[] buffer) { string file = fileName; Image image = BytesToImage(buffer); ImageFormat format = image.RawFormat; if (format.Equals(ImageFormat.Jpeg)) { file += ".jpeg"; } else if (format.Equals(ImageFormat.Png)) { file += ".png"; } else if (format.Equals(ImageFormat.Bmp)) { file += ".bmp"; } else if (format.Equals(ImageFormat.Gif)) { file += ".gif"; } else if (format.Equals(ImageFormat.Icon)) { file += ".icon"; } System.IO.FileInfo info = new System.IO.FileInfo(file); System.IO.Directory.CreateDirectory(info.Directory.FullName); File.WriteAllBytes(file, buffer); return file; } /// /// 壓縮圖片 /// /// 圖片流 /// 壓縮質量0-100之間 數值越大質量越高 ///
private byte[] CompressionImage(Stream fileStream, long quality) { using (System.Drawing.Image img = System.Drawing.Image.FromStream(fileStream)) { using (Bitmap bitmap = new Bitmap(img)) { ImageCodecInfo CodecInfo = GetEncoder(img.RawFormat); System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality; EncoderParameters myEncoderParameters = new EncoderParameters(1); EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, quality); myEncoderParameters.Param[0] = myEncoderParameter; using (MemoryStream ms = new MemoryStream()) { bitmap.Save(ms, CodecInfo, myEncoderParameters); myEncoderParameters.Dispose(); myEncoderParameter.Dispose(); return ms.ToArray(); } } } } private static ImageCodecInfo GetEncoder(ImageFormat format) { ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders(); foreach (ImageCodecInfo codec in codecs) { if (codec.FormatID == format.Guid) { return codec; } } return null; }

转载于:https://www.cnblogs.com/Gxiaopan/p/6656864.html

你可能感兴趣的文章
1.初识代码审计-基础
查看>>
APC注入
查看>>
clone对象或数组
查看>>
Scrum Meeting 5-20151207
查看>>
Spring3 MVC请求参数获取的几种方法
查看>>
对于利用ica进行fmri激活区识别的理解
查看>>
事务(sql事务的管理)
查看>>
delphi 查看编译版本
查看>>
数据恢复揭秘:三星硬盘开盘数据恢复全过程
查看>>
Android Studio使用技巧系列教程(二)
查看>>
的基本原理的面向对象的--------单个程序员必须查看
查看>>
【洛谷 1357】 花园
查看>>
Java界面布局管理器
查看>>
java中基础类型的初始值,以及一些平时不注意的小知识
查看>>
c# 方法重载的一些事情
查看>>
No enclosing instance of type Hello is accessible
查看>>
(网页)readonly和disabled的区别(转)
查看>>
在线报表设计实战系列 – 制作多Y轴组合图表(8)
查看>>
洛谷P1875 佳佳的魔法药水
查看>>
mathematica简单入门
查看>>