• C#压缩图片1


    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Drawing.Drawing2D;
    using System.Drawing.Imaging;
    using System.IO;
    using System.Linq;
    using System.Text;

    namespace CompressedImage
    {
    class Program
    {
    static void Main(string[] args)
    {
    //String path = @"D:webwebcarlife_apiUserPortrait";
    String path = @"D:备份UserPortrait";
    string[] dirs = Directory.GetDirectories(path);
    List<string> Image = new List<string>();
    string[] file = Directory.GetFiles(path);
    for (int i = 0; i < file.Count(); i++)
    {
    Image.Add(file[i]);
    }
    for (int i = 0; i < dirs.Count(); i++)
    {
    string[] files = Directory.GetFiles(dirs[i]);
    for (int j = 0; j < files.Count(); j++)
    {
    Image.Add(files[j]);
    }
    }
    foreach (string item in Image)
    {
    ImageBitmap(item);
    Console.Write(item);
    }
    }
    private static void ImageBitmap(string Url)
    {
    try
    {
    System.Drawing.Image b = new System.Drawing.Bitmap(Url);
    Bitmap bt = new Bitmap(b);//从指定的现有图像并使用指定的大小初始化 Bitmap 类的新实例。

    if (bt.Width != 200 || bt.Height != 200)
    {
    bt.SetResolution(200, 200);
    var bit1 = new Bitmap(bt, 200, 200);
    b.Dispose();
    bt.Dispose();
    System.Drawing.Image newImg = bit1;

    EncoderParameters encoderParams = new EncoderParameters();
    long[] quality = new long[1];
    quality[0] = 90; //压缩比例,决定图片大小的重要因素。
    EncoderParameter encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
    encoderParams.Param[0] = encoderParam;
    bt.Dispose();//用完要释放
    newImg.Save(Url, GetCodecInfo("image/jpeg"), encoderParams);//保存
    newImg.Dispose();//用完要释放
    Console.WriteLine(" 修改成功");
    }
    else
    {
    b.Dispose();
    bt.Dispose();
    Console.WriteLine(" 没有修改");
    }

    }
    catch
    {
    }
    }
    /**/
    /// <summary>
    /// 保存JPG时用
    /// </summary>
    /// <param name="mimeType"></param>
    /// <returns>得到指定mimeType的ImageCodecInfo</returns>
    private static ImageCodecInfo GetCodecInfo(string mimeType)
    {
    ImageCodecInfo[] CodecInfo = ImageCodecInfo.GetImageEncoders();
    foreach (ImageCodecInfo ici in CodecInfo)
    {
    if (ici.MimeType == mimeType) return ici;
    }
    return null;
    }
    }
    }

  • 相关阅读:
    Redis cluster学习 & Redis常识 & sort操作
    【Todo】【转载】JVM学习
    【Todo】【转载】Java中的锁机制2
    【转载】git命令和svn的对比
    【Todo】抽象渗漏法则 & 找到理想员工 & 软件开发成功 12 法则 & Joel on Software
    【转载】Java中的锁机制 synchronized & 偏向锁 & 轻量级锁 & 重量级锁 & 各自优缺点及场景 & AtomicReference
    JS里面匿名函数的调用 & 变量作用域的实验
    【Todo】深入理解Java虚拟机 读书笔记
    poj 2503 Babelfish
    hdu4493 Tutor
  • 原文地址:https://www.cnblogs.com/yangdunqin/p/image.html
Copyright © 2020-2023  润新知