批量压缩图片

简介: 批量压缩图片
// See https://aka.ms/new-console-template for more information
using ReduceImage;

Console.WriteLine("Hello, World!");

string folderPath = "C:\\Users\\shiningrise\\Desktop\\fsdownload\\UploadFiles"; // 将此处替换为要遍历的文件夹路径

Bianli(folderPath);

void Bianli(string path)
{
    List<string> temp = new List<string>();
    temp.Add(path);
    for (int i = 0; i < temp.Count; i++)
    {
        if (File.Exists(temp[i]))
        {
            continue;
        }
        else
        {
            List<string> dirs = new List<string>(Directory.EnumerateDirectories(temp[i]));

            foreach (var dir in dirs)
            {
                temp.Add(dir);
            }
            List<string> files = new List<string>(Directory.EnumerateFiles(temp[i]));

            foreach (string file in files)
            {
                temp.Add(file);
            }
        }
    }

    foreach (string pathTemp in temp)
    {
        if (File.Exists(pathTemp))
            Img.ReduceImage(pathTemp, 768, 254);
        Console.WriteLine(pathTemp);
    }
}
using System;
using System.Net;
using System.IO;
using System.Text;
using System.Drawing;

namespace ReduceImage
{
    /// <summary>
    /// 下载远程图片保存到本地地址
    /// </summary>
    public class Img
    {
        public static void ReduceImage(string imageFile, int toWidth, int toHeight)
        {
            try
            {
                Image originalImage = Image.FromFile(imageFile);
                if (toWidth <= 0 && toHeight <= 0)
                {
                    return;
                }
                else if (toWidth > 0 && toHeight > 0)
                {
                    if (originalImage.Width < toWidth && originalImage.Height < toHeight)
                        return;
                }
                else if (toWidth <= 0 && toHeight > 0)
                {
                    if (originalImage.Height < toHeight)
                        return;
                    toWidth = originalImage.Width * toHeight / originalImage.Height;
                }
                else if (toHeight <= 0 && toWidth > 0)
                {
                    if (originalImage.Width < toWidth)
                        return;
                    toHeight = originalImage.Height * toWidth / originalImage.Width;
                }
                Image toBitmap = new Bitmap(toWidth, toHeight);
                try
                {
                    using (Graphics g = Graphics.FromImage(toBitmap))
                    {
                        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
                        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                        g.Clear(Color.Transparent);
                        g.DrawImage(originalImage,
                                    new Rectangle(0, 0, toWidth, toHeight),
                                    new Rectangle(0, 0, originalImage.Width, originalImage.Height),
                                    GraphicsUnit.Pixel);
                        originalImage.Dispose();
                        toBitmap.Save(imageFile, System.Drawing.Imaging.ImageFormat.Png);
                        toBitmap.Dispose();
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                finally
                {
                    if (originalImage != null) originalImage.Dispose();
                    if (toBitmap != null) toBitmap.Dispose();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }
}
目录
相关文章
|
7月前
批量获取图片(中)
批量获取图片(中)
77 0
|
7月前
批量获取图片(下)
批量获取图片(下)
71 0
|
1月前
|
Windows
写一个批处理,压缩一个文件夹下的所有图片大小
【10月更文挑战第14天】在Windows环境下,使用批处理脚本可以方便地批量压缩图片。以下是一个示例脚本,用于压缩指定目录下的所有.jpg和.png文件,并将压缩后的图片保存到另一个目录中。
|
6月前
|
存储 Python
python实现图片与视频转换:将视频保存为图片,将批量图片保存为视频
python实现图片与视频转换:将视频保存为图片,将批量图片保存为视频
|
7月前
|
iOS开发 MacOS Python
批量获取图片(上)
批量获取图片(上)
55 0
|
Python
【图片操作】批量生成缩略图
在我们日常生活中,缩略图很大程度减少了我们内存的使用。如果我们看一张图片就必须加载完成后才能看,那么我们就会发现很多应用都变慢了很多,而且流量也消耗的很快。今天我们就来看看Python生成缩略图的操作。
393 0
|
文件存储 Android开发 数据安全/隐私保护
Android图片添加水印图片并把图片保存到文件存储
Android图片添加水印图片并把图片保存到文件存储 package zhangphil.test; import android.
1505 0
批量调整word中图片的大小
学习批量调整word中图片的大小
143 0
|
JavaScript
原生js实现图片单张上传及批量上传
原生js实现图片单张上传及批量上传
|
JSON 数据格式 容器
一次性上传多张图片的实现方法
目前正在进行的项目中,后台需要实现一次性上传多张图片的功能,现记录实现的过程如下。   1.设置功能方法的点击事件     var imga = ''+imgTitle; //携带该记录的主键id过去   2.
1810 0