C#实现略缩图
public class GenerateThumbnail
{
private Image imageFrom;
/// <summary>
/// 源图的路径(含文件名及扩展名
/// </summary>
/// <param name="pathImageFrom">源图的路径(含文件名及扩展名</param>
public GenerateThumbnail(string pathImageFrom)
{
imageFrom = Image.FromFile(pathImageFrom);
}
/// <summary>
/// 生成缩略图 静态方法
/// </summary>
/// <param name="pathImageTo">生成的缩略图所保存的路径(含文件名及扩展名)注意:扩展名一定要与生成的缩略图格式相对应</param>
/// <param name="Percent">比例 例如 0.8...</param>
public void GenThumbnail(string pathImageTo, double Percent)
{
GenThumbnail(pathImageTo, Convert.ToInt32(imageFrom.Width * Percent), Convert.ToInt32(imageFrom.Height * Percent));
}
/**/
/// <summary>
/// 生成缩略图 静态方法
/// </summary>
/// <param name="pathImageTo"> 生成的缩略图所保存的路径(含文件名及扩展名)
/// 注意:扩展名一定要与生成的缩略图格式相对应 </param>
/// <param name="width"> 欲生成的缩略图 "画布" 的宽度(像素值) </param>
/// <param name="height"> 欲生成的缩略图 "画布" 的高度(像素值) </param>
public void GenThumbnail(string pathImageTo, int width, int height)
{
Bitmap bmp = new Bitmap(width, height);
Graphics g = Graphics.FromImage(bmp);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.SmoothingMode = SmoothingMode.HighQuality;
g.DrawImage(imageFrom, , , width, height), , , imageFrom.Width, imageFrom.Height), GraphicsUnit.Pixel);
try
{
if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg))
bmp.Save(pathImageTo, ImageFormat.Jpeg);
else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png))
bmp.Save(pathImageTo, ImageFormat.Png);
else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif))
bmp.Save(pathImageTo, ImageFormat.Gif);
else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Icon))
bmp.Save(pathImageTo, ImageFormat.Icon);
else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Tiff))
bmp.Save(pathImageTo, ImageFormat.Tiff);
else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Wmf))
bmp.Save(pathImageTo, ImageFormat.Wmf);
else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Bmp))
bmp.Save(pathImageTo, ImageFormat.Bmp);
else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Emf))
bmp.Save(pathImageTo, ImageFormat.Emf);
else if (imageFrom.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Exif))
bmp.Save(pathImageTo, ImageFormat.Exif);
else
throw new Exception("无此类型图片");
}
finally
{
//显示释放资源
imageFrom.Dispose();
bmp.Dispose();
g.Dispose();
}
}
}
C#实现略缩图的更多相关文章
- java自动生成略缩图
当你要做一个图库的项目时,对图片大小.像素的控制是首先需要解决的难题. 本篇文章,在前辈的经验基础上,分别对单图生成略缩图和批量生成略缩图做个小结. 一.单图生成略缩图 单图经过重新绘制,生成新的图片 ...
- Bootstrap-CL:略缩图
ylbtech-Bootstrap-CL:略缩图 1.返回顶部 1. Bootstrap 缩略图 本章将讲解 Bootstrap 缩略图.大多数站点都需要在网格中布局图像.视频.文本等.Bootstr ...
- php 制作略缩图
一.需求 最近公司的项目中有个需求,就是用户上传自己的微信二维码,然后系统会自动将用户的微信二维码合并到产品中 二.分析 因为该系统是手机端的,所以从用户端的体验出发,用户当然是直接在微信上保存二维码 ...
- java,图片压缩,略缩图
在网上找了两个图片的缩放类,在这里分享一下: package manager.util; import java.util.Calendar; import java.io.File; import ...
- 微信分享接口 略缩图 php
php插件下载地址: https://files.cnblogs.com/files/fan-bk/jssdk_php.rar 提示:如果插件里面的jssdk.php函数 file_get_cont ...
- android 获取 图片或视频略缩图
/** * 根据指定的图像路径和大小来获取缩略图 此方法有两点好处: 1. * 使用较小的内存空间,第一次获取的bitmap实际上为null,只是为了读取宽度和高度, * 第二次读取的bitmap是根 ...
- Bootstrap 学习笔记4 巨幕页头略缩图警告框
- 智能的PHP缩图类
*作者:落梦天蝎(beluckly)*完成时间:2006-12-18*类名:CreatMiniature*功能:生成多种类型的缩略图*基本参数:$srcFile,$echoType*方法用到的参数:$ ...
- 2018.10.23 NOIP模拟 “新”的家园(缩图+dijksta/spfa)
传送门 考试70分骗分写挂了=30分=全场最低. 哎今天230垫底了. 这题出的挺好. 对于非关键点直接缩点. 每次把要查的insertinsertinsert进缩好的图里面跑spfa/dijkstr ...
随机推荐
- 411. Minimum Unique Word Abbreviation
A string such as "word" contains the following abbreviations: ["word", "1or ...
- mac OS X Yosemite (10.10.5) 下 安装vim 7.4笔记
摘要 前言 需求与mac OS X 自带vim版本的冲突 默认Python解释器问题 并非Mac自带python的 homebrew 1. 前言 本文为自己作死折腾的问题记录 2. 需求与mac OS ...
- AJAX请求WebService
1.WebService代码 [WebMethod] [ScriptMethod(UseHttpGet = false)] public string GetObject() { User user ...
- Java随笔四---Java异常
1.throw语句:Java编译器在执行throw语句时,会立即停止常规的程序执行,开始寻找能够捕获或处理异常的异常处理程序: 2.异常处理程序使用try/catch/finally编写. 3.如果当 ...
- 关于AE
1.下方时间轴左边上角时间,按住ctrl点击,可切换时间与帧数 2.新建comp,ctrl+n 3.特效控制面板,F3 4.时间轴左边图层各个属性快捷键:移动,p:旋转,r:缩放,s:轴心,a:不透明 ...
- 对字符串进行简单的字符数字统计 探索java中的List功能
题目: 统计一个字符串中数字和字符串的个数,并分别进行排列,要求 1.数字,字符串可以从键盘获取. 2.储存在list 3.统计数字个数,字符串个数 4.把数字和字符串按从小到大的顺序输出 5.不能使 ...
- #import和@class的使用
#import #import 大部分功能和#include是一样的,但是他处理了重复引用的问题,不用再去自己进行重复引用处理. @class 用于声明一个类,告诉编 ...
- 关于Windows7的安装纠结过程
关于Windows7的安装过程 背景交代 因为自己有两个笔记本,一个是伴我读过四年大学生活的老华硕笔记本,一个是姐夫不用的上网本.自己的构想是将老笔记本装上Ubuntu Server当作平时开发pyt ...
- The 11 advantages of Java -Why you choose this language
Java is never just a language.There are lots of programming languages out there, and few of them mak ...
- Ubuntu W: GPG error: http://archive.ubuntukey....NO_PUBKEY 8D5A09
在用 sudo apt-get update 时出现这样的报错: W: GPG error: http://archive.ubuntukylin.com:10006/ubuntukylin xeni ...