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;
 }

C#图片切割、图片压缩、缩略图生成的更多相关文章

  1. 使用 Python 切割图片

    刚好我有张 PNG 图片需要均匀切割,刚好我不会 PhotoShop,刚好我想用 Python 来练练手. 于是撸袖子码脚本. import os from PIL import Image def ...

  2. python3 验证码图片切割

    切割前图片 切割后四个图片 代码 #coding:utf8 import os from PIL import Image,ImageDraw,ImageFile import numpy impor ...

  3. Python实现图片切割

    import os from PIL import Image def splitimage(src, rownum, colnum, dstpath): img = Image.open(src) ...

  4. C#中图片切割,图片压缩,缩略图生成的代码

    **//// <summary> /// 图片切割函数 /// </summary> /// <param name="sourceFile"> ...

  5. thinkphp图片上传+validate表单验证+图片木马检测+缩略图生成

    目录 1.案例 1.1图片上传  1.2进行图片木马检测   1.3缩略图生成   1.4控制器中调用缩略图生成方法 1.案例 前言:在thinkphp框架的Thinkphp/Library/Thin ...

  6. golang图片裁剪和缩略图生成

    直接贴代码了 package main import ( "errors" "fmt" "image" "image/gif&qu ...

  7. CPP 替代 PIL 图片处理(缩略图生成)

    python中使用PIL(Pyhton Image Library)进行图片处理,好处就是编写简单方便,但是不能很好利用机器多核的特点,于是在项目中决定使用cpp来实现图片处理. 项目中的图片处理主要 ...

  8. C#对图片文件的压缩、裁剪操作初探

    在做项目时,对图片的处理,以前都采用在上传时,限制其大小的方式,这样带来诸多不便.毕竟网站运维人员不一定会对图片做处理,经常超出大小限制,即使会使用图片处理软件的,也由于个人水平方面原因,处理效果差强 ...

  9. C#对图片文件的压缩、裁剪操作

    在做项目时,对图片的处理,以前都采用在上传时,限制其大小的方式,这样带来诸多不便.毕竟网站运维人员不一定会对图片做处理,经常超出大小限制,即使会使用图片处理软件的,也由于个人水平方面原因,处理效果差强 ...

随机推荐

  1. js+CSS实现模拟华丽的select控件下拉菜单效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. C#做音乐播放器时在自动下一曲中报异常的解决办法

    ---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 在利用Media Player做音乐播放器的时 ...

  3. 【BZOJ】【3282】Tree

    LCT 喜闻乐见的Link-Cut-Tree…… srO zyf http://www.cnblogs.com/zyfzyf/p/4149109.html 目测我是第222个?………………不要在意这些 ...

  4. OpenSSL心脏出血漏洞全回顾

    近日网络安全界谈论的影响安全最大的问题就是Heartbleed漏洞,该漏洞是4月7号国外黑客曝光的.据Vox网站介绍,来自Codenomicon和谷歌安全部门的研究人员,发现OpenSSL的源代码中存 ...

  5. CSS3实现的渐变按钮,在IE7、IE6下的滤镜使用。

      .ui-button { BORDER-LEFT-WIDTH:; ; COLOR: #fff; PADDING-BOTTOM: 0px; TEXT-ALIGN: center; PADDING-T ...

  6. Git常用命令大全

    查看.添加.提交.删除.找回,重置修改文件 git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id gi ...

  7. javascript (js)中的基本概念

    1. 基本数据类型 1.1 number (数字)在js中没有整形和浮点型的区分,所有的数字都是浮点型标识, 采用64位的浮点格式来表示数字.如果数字类型用在字符串连接表达式中,则会自动转换成字符串, ...

  8. HDU4718 The LCIS on the Tree(LCT)

    又是一枚LCT,写一发加深一下对LCT的理解.本题的坑爹之处就在于,它实在是太坑爹了.询问的是树路径上的最长连续上升的子串,考验的是怎么样去维护.一开始的想法是维护三个变量 ls,rs,mxl,分别表 ...

  9. github and SourceTree初步使用

    1.建立连接(一次就行了) 输入你的github名字 2.创建仓库 3.下载仓库 这个时候打开SouceTree就可以看到之前创的仓库了 点击克隆,创建一个文件夹,讲路径设置好 这时候查看本地列表就会 ...

  10. 只 一行显示可左右滚动的文本(UITextField中文限制)

    // // ViewController.m // 一行显示可滚动的文本 // // Created by apple on 15-5-8. // Copyright (c) 2015年 apple. ...