• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#图片切割、图片压缩、缩略图生成代码汇总

C#图片切割、图片压缩、缩略图生成代码汇总

作者:李朝强 字体:[增加 减小] 来源:互联网 时间:2017-05-28

李朝强 通过本文主要向大家介绍了马桶c的个人空间,c语言,欲情 c max,维生素c,奔驰c200等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文为大家整理了C#图片切割、图片压缩、缩略图生成的实现代码,大家可以收藏,方便以后使用,具体内容如下

/// 图片切割函数
 /// </summary>
 /// <param name="sourceFile">原始图片文件</param>
 /// <param name="xNum">在X轴上的切割数量</param>
 /// <param name="yNum">在Y轴上的切割数量</param>
 /// <param name="quality">质量压缩比</param>
 /// <param name="outputFile">输出文件名,不带后缀</param>
 /// <returns>成功返回true,失败则返回false</returns>
 public static bool imageCut(String sourceFile, int xNum, int yNum, long quality, String outputFile)
 {
  try
  {
   long imageQuality      = quality;
   Bitmap sourceImage      = new Bitmap(sourceFile);
   ImageCodecInfo myImageCodecInfo   = GetEncoderInfo("image/jpeg");
   Encoder myEncoder      = Encoder.Quality;
   EncoderParameters myEncoderParameters = new EncoderParameters(1);
   EncoderParameter myEncoderParameter  = new EncoderParameter(myEncoder, imageQuality);
   myEncoderParameters.Param[0]    = myEncoderParameter;
   float xWidth        = sourceImage.Width / xNum;
   float yWidth        = sourceImage.Height / yNum;
   String outputImage      = "";
    
   for (int countY = 0; countY < yNum; countY++)
    for (int countX = 0; countX < xNum; countX++)
    {
 
     RectangleF cloneRect    = new RectangleF(countX * xWidth, countY * yWidth, xWidth, yWidth);
     Bitmap newImage     = sourceImage.Clone(cloneRect, PixelFormat.Format24bppRgb);
     outputImage      = outputFile + countX + countY + ".jpg";
     newImage.Save(outputImage, myImageCodecInfo, myEncoderParameters);
 
    }
   return true;
  }
  catch
  {
   return false;
  }
 
 }
 #endregion imageCut
 
 imageCompress
#region
imageCompress
 /**//// <summary>
 /// 图片压缩函数
 /// </summary>
 /// <param name="sourceFile">原始图片文件</param>
 /// <param name="quality">质量压缩比</param>
 /// <param name="ouputFile">输出文件名,请用 .jpg 后缀 </param>
 /// <returns>成功返回true,失败则返回false</returns>
 public static bool imageCompress(String sourceFile,long quality,String outputFile)
 {
  try
  {
   long imageQuality      = quality;
   Bitmap sourceImage      = new Bitmap(sourceFile);
   ImageCodecInfo myImageCodecInfo  = GetEncoderInfo("image/jpeg");
   Encoder myEncoder      = Encoder.Quality;
   EncoderParameters myEncoderParameters = new EncoderParameters(1);
   EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, imageQuality);
   myEncoderParameters.Param[0]   = myEncoderParameter;
   
   sourceImage.Save(outputFile, myImageCodecInfo, myEncoderParameters);
   return true;
 
  }
  catch
  {
   return false;
  }
 
 }
 #endregion imageCompress
 
 getThumImage#region getThumImage
 /**//// <summary>
 /// 生成缩略图
 /// </summary>
 /// <param name="sourceFile">原始图片文件</param>
 /// <param name="quality">质量压缩比</param>
 /// <param name="multiple">收缩倍数</param>
 /// <param name="outputFile">输出文件名</param>
 /// <returns>成功返回true,失败则返回false</returns>
 public static bool getThumImage(String sourceFile, long quality, int multiple, String outputFile)
 {
  try
  {
   long imageQuality      = quality;
   Bitmap sourceImage      = new Bitmap(sourceFile);
   ImageCodecInfo myImageCodecInfo  = GetEncoderInfo("image/jpeg");
   Encoder myEncoder      = Encoder.Quality;
   EncoderParameters myEncoderParameters = new EncoderParameters(1);
   EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, imageQuality);
   myEncoderParameters.Param[0]   = myEncoderParameter;
   float xWidth       = sourceImage.Width;
   float yWidth       = sourceImage.Height;
   Bitmap newImage      = new Bitmap((int)(xWidth /multiple), (int)(yWidth /multiple));
   Graphics g        = Graphics.FromImage(newImage);
    
   g.DrawImage(sourceImage, 0, 0, xWidth / multiple, yWidth / multiple);
   g.Dispose();
   newImage.Save(outputFile,myImageCodecInfo,myEncoderParameters);
   return true;
  }
  catch
  {
   return false;
  }
 }
 #endregion getThumImage
 
 ImageCodecInfo#region ImageCodecInfo
 /**//// <summary>
 /// 获取图片编码信息
 /// </summary>
 private static ImageCodecInfo GetEncoderInfo(String mimeType)
 {
  int j;
  ImageCodecInfo[] encoders;
  encoders = ImageCodecInfo.GetImageEncoders();
  for (j = 0; j < encoders.Length; ++j)
  {
   if (encoders[j].MimeType == mimeType)
    return encoders[j];
  }
  return null;
 }
</div>

以上就是本文的全部内容,希望对大家的学习有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#利用ReportViewer生成报表
  • C#基于正则去掉注释的方法示例
  • C#中new的用法及与override的区别分析
  • C#实现两个richtextbox控件滚动条同步滚动的简单方法
  • C# for循环的经典案例集锦
  • C#操作word的方法示例
  • C#使用WebClient登录网站并抓取登录后的网页信息实现方法
  • C# WinForm制作异形窗体与控件的方法
  • C#实现Excel表数据导入Sql Server数据库中的方法
  • C#使用NPOI上传excel

相关文章

  • 2017-05-28在Unity中实现简单的伪时间同步
  • 2017-05-28C#验证给定字符串形式日期是否合法的方法
  • 2017-05-28C#通过反射获取当前工程中所有窗体并打开的方法
  • 2017-05-28C#实现按数据库邮件列表发送邮件的方法
  • 2017-05-28Winform实现将网页生成图片的方法
  • 2017-05-28Jquery+Ajax+Json+存储过程实现高效分页
  • 2017-05-28c#实现用SQL池,多线程定时批量执行SQL语句的方法
  • 2017-05-28C#实现获取文件夹大小的方法
  • 2017-05-28C#启动windows服务方法的相关问题分析
  • 2017-05-28C#实现快捷键的几种常用方法汇总

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#不可变类型深入解析
    • C#/Java连接sqlite与使用技巧
    • C#使用oledb操作excel文件的方法
    • C#通过接口与线程通信(捕获线程状态)示例代码
    • c#中(int)、int.Parse()、int.TryParse、Convert.ToInt32的区别详解
    • 结合Visual C#开发环境讲解C#中事件的订阅和取消订阅
    • .net后台获取html控件值的2种方法
    • 浅谈c#中const与readonly区别
    • C#将字母或数字加密成字母的方法
    • 轻松学习C#的运算符

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有