c#目录以及子目录下图片批量缩放,像素不变,图像大小改变
采用多线程,整体效果
图像根目录黏贴或者手工选择,点击开始,进行目录底下图片筛查。采用多线程,点击开始按钮,开启线程,这样UI不会卡住
private void button2_Click(object sender, EventArgs e)
{
var foldPath = textBox1.Text.Trim();
if (string.IsNullOrEmpty(foldPath))
{
return;
}
ImageZoomThread(foldPath);
}
线程方法:
private void ImageZoomThread(string foldPath){ThreadStart threadStart = delegate { listBox1.Items.Clear(); ZoomImage(foldPath); };Thread thread = new Thread(threadStart);thread.IsBackground = true;thread.Start();}
缩放图像,核心代码:
private void ZoomImage(string foldPath){DirectoryInfo dir = new DirectoryInfo(foldPath);FileInfo[] files = dir.GetFiles("*.jpg");DirectoryInfo[] dii = dir.GetDirectories(); foreach (var file in files){listBox1.Items.Add(file.FullName);listBox1.SelectedIndex = -1;ChangeImageSize(file.FullName, file.FullName.Replace(".jpg", "_zoom.jpg"));}//获取子文件夹内的文件列表,递归遍历 foreach (DirectoryInfo d in dii){ZoomImage(d.FullName);} }/// <summary>/// 压缩图片/// </summary>/// <param name="filePath">要压缩的图片的路径</param>/// <param name="newfilePath">压缩后的图片的路径</param>public void ChangeImageSize(string filePath, string newfilePath){Bitmap bmp = null;ImageCodecInfo ici = null;System.Drawing.Imaging.Encoder ecd = null;EncoderParameter ept = null;EncoderParameters eptS = null;try{ici = this.getImageCoderInfo("image/jpeg");ecd = System.Drawing.Imaging.Encoder.Quality;eptS = new EncoderParameters(1);ept = new EncoderParameter(ecd, 35L);eptS.Param[0] = ept;if (File.Exists(newfilePath)){File.Delete(newfilePath);}bmp = new Bitmap(filePath);bmp.Save(newfilePath, ici, eptS);if (bmp != null)bmp.Dispose();ept.Dispose();eptS.Dispose();}catch (Exception ex){//throw new Exception(ex.Message);}finally{}}/// <summary>/// 获取图片编码类型信息/// </summary>/// <param name="coderType">编码类型</param>/// <returns>ImageCodecInfo</returns>private ImageCodecInfo getImageCoderInfo(string coderType){ImageCodecInfo[] iciS = ImageCodecInfo.GetImageEncoders();ImageCodecInfo retIci = null;foreach (ImageCodecInfo ici in iciS){if (ici.MimeType.Equals(coderType))retIci = ici;}return retIci;}
转载于:https://www.cnblogs.com/y114113/p/7641706.html
c#目录以及子目录下图片批量缩放,像素不变,图像大小改变相关推荐
- Mac下 图片批量缩放命令-sips
转自:http://my.oschina.net/ioslighter/blog/382436 如有侵犯,请来信oiken@qq.com 原文标题: Images.xcassets真是太好用了 再也不 ...
- shell 批量压缩指定目录及子目录内图片
DevStore小编专栏 shell 批量压缩指定目录及子目录内图片 用户上传的图片,一般都没有经过压缩,造成空间浪费.因此需要编写一个程序,查找目录及子目录的图片文件(jpg,gif,png),将大 ...
- linux c 读取目录及其子目录下所有.jpg文件的文件名(无后缀)
此程序用来生成<yolo v2中VOC数据生成labels所需的图片文件名文档>train.txt linux c 读取目录及其子目录下所有.jpg文件的文件名: http://www ...
- 打印 指定目录下和子目录下的的所有.java文件的路径. (使用FileFilter过滤器)
1 package test; 2 /* 3 * 打印 指定目录下和子目录下的的所有.java文件的路径. 4 * */ 5 import java.io.*; 6 import java.util. ...
- php 遍历目录下的子目录文件,PHP获取目录及子目录下指定后缀的所有文件
想要获取某个目录下指定后缀的所有文件(包含子目录中的文件),这是一个很常见的小需求,使用PHP应该怎么实现呢? 代码 class Dir { /** * 获取文件夹内指定后缀的所有文件 * @para ...
- php 获取所有子目录名,php读取目录及子目录下所有文件名的方法,_PHP教程
php读取目录及子目录下所有文件名的方法, 本文实例讲述了php读取目录及子目录下所有文件名的方法,分享给大家供大家参考.具体实现方法如下: 一般来说php中读取目录下的文件名的方式确实不少,最简单的 ...
- php读取目录及子目录下所有文件名的方法
本文实例讲述了php读取目录及子目录下所有文件名的方法,分享给大家供大家参考.具体实现方法如下: 一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下: $dir= ...
- Python 读取指定目录及其子目录下所有文件名
Python 读取指定目录及其子目录下所有文件名 本文博客地址:https://xinancsd.github.io/Python/python_search_folder.html 目标 磁盘中的文 ...
- Makefile自动搜所目录及子目录下的的所有文件、自动生成编译目录
内容概要 〇.背景 一.需求描述 二.解决方案 三.Makefile编写 3.1 根目录下的Makefile编写 3.2 myMath和myRecord目录下的Makefile编写 3.3 myStr ...
最新文章
- 【双非学历】历时1个月,18家公司,37轮面试,5个offer
- 计算机操作系统作业答案,计算机操作系统作业及答案
- C++11学习笔记-----线程库std::thread
- Android -- 短信
- asterisk配置会议室meetme.conf
- 2019 最全支付宝高级Java现场面试37题
- java 看书浏览器官_JAVA读取文件流,设置浏览器下载或直接预览操作
- web前端到底是什么?有前途吗
- 简单报价单模板_圣诞节祝福邮件必这样写【附件参考模板BY埃马】
- 想开发微信小游戏,先看看腾讯是如何制定规则的
- Android Dialog Activity
- svn利用钩子脚本功能实现代码同步到web目录
- java -cp 什么意思 怎么用
- 计算机关闭节能模式,bios怎么关闭cpu节能模式_bios节能模式怎么设置
- Multisim14安装教程(下载链接在文末)
- 联想服务器修改ip地址,联想 lenove 3750 M4服务器更改启动项和管理口IP
- linux安装7z命令,Linux 下安装 7zip 及使用
- mysql汽车租赁管理系统
- es中的keyword相关功能
- Mac安装双系统后无法切回mac系统
热门文章
- UI设计为什么要使用Figma?
- 如何成为一名Web前端开发人员?入行学习完整指南
- 前端到底是自学好还是培训好?
- 【C语言】牛客网编程初学者入门训练-BC88-BC98
- IntelliJ IDEA中怎么创建xml文件?
- c语言单词的一个字母变换,c语言:输入一行英文字符串,把每个单词第一个字母变为大写,输出修改后的字符串知道...
- python flask api 统计_python之restful api(flask)获取数据
- vsftp客户端_vsftp 如何登陆?
- python image.open函数_PIL.Image.open和cv2.imread的比较与相互转换的方法
- php主页显示商品预览图代码,在ECSHOP留言板页面显示商品缩略图方法