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 ...
随机推荐
- Caliburn.Micro学习笔记目录——li-peng
Caliburn.Micro学习笔记(一)----引导类和命名匹配规则 Caliburn.Micro学习笔记(二)----Actions Caliburn.Micro学习笔记(三)----事件聚合IE ...
- Hadoop YARN中内存的设置
在YARN中,资源管理由ResourceManager和NodeManager共同完成,其中,ResourceManager中的调度器负责资源的分配,而NodeManager则负责资源的供给和隔离.R ...
- VS2012新建项目出错:未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService
刚刚重新做的系统,第一次打开vs2012新建项目时出现错误提示 通过查找解决办法发现方法有两种: 1:卸载两个windows更新补丁(KB2833957和KB2840642) 2:安装一个window ...
- linux-命令-ls
一.命令介绍: ls命令是linux常用的命令之一.ls用来打印当前目录的文件清单或指定目录的文件清单,也可以查看到文件的基本权限和隐藏文件. 二.命令格式: ls [OPTION]... [FILE ...
- c++ float能到小数点后多少位
float xiaoshu=0.0000000000000000000000000000000000000000000001; cout<<"xiaoshu"<& ...
- Android应用开发SharedPreferences存储数据的使用方法
Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...
- Linux服务器之间的目录共享
1.在Redhat Linux中查看是否已安装NFS及portmap的命令如下:rpm -qa |grep portmaprpm -qa |grep nfs2.如果没有安装这两个软件包,安装命令如下: ...
- web api 初体验之 GET和POST传参
上一篇我们讲到了web api跨域的问题 它几乎是每一个用web api的人都需要去解决的问题,不然都没法测试.接下来会遇到的问题就是传参了.还是用js前台调用服务的方式. GET 方式 get方式传 ...
- HANA学习笔记1-搭建HANA学习环境
一 硬件环境 两台电脑,一台为服务器装跑HANA虚拟机,一台为客户端运行HANA_STUDIO 服务器:内存至少需要16G windows server 2003 64位 ...
- Model--汇总
NSFileManager.NSURL.NSFileHandle.NSData.NSXMLParser.NSUserDefaults.NSKeyedArchiver.NSKeyedUnarchiver ...