当前位置:  编程技术>.net/c#/asp.net

c# 图片压缩工具的实现代码(图文)

    来源: 互联网  发布时间:2014-08-30

    本文导语:  c#实现的图片压缩工具的截图如下: 可以添加单个文件,支持多选,也可以添加文件夹,自动遍历文件夹中的图片。 完整代码,用到了皮肤加载,在构造函数中。 有兴趣的朋友,慢慢研究吧,注释没有,可能看起来要费点劲...

c#实现的图片压缩工具的截图如下:

可以添加单个文件,支持多选,也可以添加文件夹,自动遍历文件夹中的图片。

完整代码,用到了皮肤加载,在构造函数中。
有兴趣的朋友,慢慢研究吧,注释没有,可能看起来要费点劲了。
 

代码示例:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using SKINPPDOTNETLib;

namespace EcanPicTools
{
    public partial class frmMain : Form
    {
        Image img;
        Bitmap bmp;
        Graphics grap;
        int width, height;

        SKINPPDOTNETLib.SkinPPDotNetClass myskin = new SkinPPDotNetClass();
        public frmMain()
        {
            InitializeComponent();
            this.txtbili.KeyPress += new KeyPressEventHandler(txt_KeyPress);
            this.txtWidth.KeyPress += new KeyPressEventHandler(txt_KeyPress);
            this.txtHeight.KeyPress += new KeyPressEventHandler(txt_KeyPress);
            Control.CheckForIllegalCrossThreadCalls = false;
            myskin.LoadSkin(Application.StartupPath + @"spring.ssk", true);
        }

        private void frmMain_Load(object sender, EventArgs e)
        {
            init();
        }

        private void init()
        {
            this.Text = "图片压缩工具(作者:刘典武)---普通模式";
            labTransparent.Text = "透明值:100%";
            txtWidth.Enabled = false;
            txtHeight.Enabled = false;
            rbtnbili.Checked = true;
            txtbili.Focus();
        }

        private void txt_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar < 48 || e.KeyChar > 57) && (e.KeyChar != 8))
            {
                e.Handled = true;
            }
            base.OnKeyPress(e);
        }

        private void yasuo(string frompath, string topath)
        {
            try
            {
                img = Image.FromFile(frompath);

                if (rbtnbili.Checked)
                {
                    width = Convert.ToInt32(img.Width * (Convert.ToDouble(txtbili.Text) / 100));
                    height = Convert.ToInt32(img.Height * (Convert.ToDouble(txtbili.Text) / 100));
                }
                else
                {
                    width = Convert.ToInt32(txtWidth.Text.Trim());
                    height = Convert.ToInt32(txtHeight.Text.Trim());
                }

                bmp = new Bitmap(width, height);
                grap = Graphics.FromImage(bmp);
                grap.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                grap.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                grap.DrawImage(img, new Rectangle(0, 0, width, height));

                bmp.Save(topath, System.Drawing.Imaging.ImageFormat.Jpeg);
                bmp.Dispose();
                img.Dispose();
                grap.Dispose();
            }
            catch (Exception ex) { MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); }
            finally { }
        }

        private void btnStart_Click(object sender, EventArgs e)
        {
            if (lboxPicPath.Items.Count 0)
            {
                for (int i = lboxPicPath.SelectedItems.Count - 1; i >= 0; i--)
                {
                    lboxPicPath.Items.Remove(lboxPicPath.SelectedItems[i]);
                }
            }
            else
            {
                MessageBox.Show("请选择要移除的文件", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void rbtnbili_CheckedChanged(object sender, EventArgs e)
        {
            txtbili.Enabled = rbtnbili.Checked;
            if (rbtnbili.Checked)
            {
                txtbili.Focus();
            }
        }

        private void rbtnkg_CheckedChanged(object sender, EventArgs e)
        {
            txtWidth.Enabled = rbtnkg.Checked;
            txtHeight.Enabled = rbtnkg.Checked;
            if (rbtnkg.Checked)
            {
                txtWidth.Focus();
            }
        }

    }
}

附:c# 图片压缩工具的源代码下载地址。


    
 
 

您可能感兴趣的文章:

  • c#正则过滤图片标签 asp.net正则过滤的例子
  • C# 图片与二进制转换的简单实例
  • C#实现动态显示及动态移除图片方法
  • C#给picturebox控件加图片选中状态的2个方法
  • 基于C# winform实现图片上传功能的方法
  • C#实现图片放大功能的按照像素放大图像方法
  • C#实现把彩色图片灰度化代码分享
  • c#读取图像保存到数据库(数据库保存图片)实例
  • C#判断上传文件是否是图片以防止木马上传的方法
  • C#实现将网页保存成图片的网页拍照功能
  • c#实现图片与字节流相互转换的代码
  • C# 将字节流转换为图片的实例方法
  • c#图片处理之图片裁剪成不规则图形
  • c# Base64编码和图片的互相转换代码
  • C#保存图片到数据库并读取显示图片的方法
  • c#读取图像保存到数据库中(数据库保存图片)
  • C# 将透明图片的非透明区域转换成Region的实例代码
  • C#操作图片读取和存储SQLserver实现代码
  • C# 判断两张图片是否一致的快速方法
  • C#中按指定质量保存图片的实例代码
  • 无损图片压缩编解码器 ImageZero
  • PNG图片压缩工具 pngcrush
  • 如何用程序实现图片压缩
  • 图片批量压缩大小脚本分享
  • php实现批量压缩图片文件大小的脚本
  • 解决java压缩图片透明背景变黑色的问题
  • android图片压缩的3种方法实例
  • C#图片压缩的实现方法
  • C#进行图片压缩的代码
  • Java 图片压缩实现思路及代码
  • C#实现对图片文件的压缩、裁剪操作实例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • JS点击图片改变图片图径并用正则表达式取图片名的代码
  • jquery实现图片路径不存在时进行替换的代码
  • 用css来控制图片大小显示的实现方法与代码
  • PHP上传图片、删除图片的简单示例代码
  • asp.net上传图片加防伪图片水印并写入数据库的代码一例
  • Android裁剪图片为圆形图片的实现原理与代码
  • Jquery 动态实现图片缩略的代码
  • CSS实现简单的图片防盗链代码
  • 用CSS来控制图片显示大小的代码
  • ImageView简单加载网络图片实例代码
  • 使用CSS解决文字环绕图片问题的代码
  • asp.net 获取目录中图片的代码
  • 下载网站图片代码并且解析乱码
  • jQuery打印图片pdf、txt示例代码
  • CSS expression控制图片自动缩放效果代码[兼容 IE,Firefox]
  • jquery 滚动加载图片效果的实现代码
  • android通过bitmap生成新图片关键性代码
  • php按比例计算图片大小的代码
  • CSS opacity - 实现图片半透明效果的代码
  • android 简单图片动画播放的实例代码
  • iphone cocos2d 精灵的动画效果(图片,纹理,帧)CCAnimation实现
  • Android 图片浏览器 雪梦图片浏览器
  • Python3通过request.urlopen实现Web网页图片下载
  • android中知道图片name时获取图片的简单方法
  • css为图片设置背景图片
  • android图像绘制(六)获取本地图片或拍照图片等图片资源
  • 有没有可以从已知图片里过滤出,不规则图片的滤镜??
  • 怎么让客户端从服务器下载图片后,看不到图片的最后修改时间
  • 如何将一个彩色bmp图片转换成黑白图片,急用
  • 查询图片,图片文件存放在数据库中好,还是存放路径好,是否有更好的解决办法
  • 图片和jlabel的大小不相同,怎样让图片充满整个jlabel?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3