日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#制作图片压缩工具

發布時間:2025/5/22 C# 124 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#制作图片压缩工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近做的項目當中,需要將視頻采集卡采集過來的圖片進行壓縮處理,原有一張JPG默認320*240大小為300KB,經過壓縮之后為6KB,壓縮50倍!

?先放上截圖吧:

?

可以添加單個文件,支持多選,也可以添加文件夾,自動遍歷文件夾中的圖片,當然,還有很多不完善的地方,只是個例子而已!呵呵!

?貼出所有完整代碼吧,一看就懂!呵呵,用到了皮膚加載,就在構造函數當中!不好意思有點懶,代碼都沒有注釋!

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)
????????????{
????????????????MessageBox.Show(
"你還沒有選擇要壓縮的圖片!",?"提示",?MessageBoxButtons.OK,?MessageBoxIcon.Information);
????????????????
return;
????????????}
????????????
if?(txtSavePath.Text?==?"")
????????????{
????????????????MessageBox.Show(
"你還沒有選擇要保存的文件夾路徑!",?"提示",?MessageBoxButtons.OK,?MessageBoxIcon.Information);
????????????????
return;
????????????}

????????????pbar.Maximum?
=?lboxPicPath.Items.Count;
????????????pbar.Value?
=?0;

????????????
if?(rbtnbili.Checked?&&?txtbili.Text?==?"")
????????????{
????????????????MessageBox.Show(
"請填好比例值!",?"提示",?MessageBoxButtons.OK,?MessageBoxIcon.Information);
????????????????txtbili.Focus();
????????????????
return;
????????????}
????????????
else?if?(rbtnkg.Checked?&&?(txtHeight.Text?==?""?||?txtWidth.Text?==?""))
????????????{
????????????????MessageBox.Show(
"請填好寬高值!",?"提示",?MessageBoxButtons.OK,?MessageBoxIcon.Information);
????????????????txtWidth.Focus();
????????????????
return;
????????????}

????????????
for?(int?i?=?0;?i?<?lboxPicPath.Items.Count;?i++)
????????????{
????????????????pbar.Value?
=?i?+?1;
????????????????
this.yasuo(lboxPicPath.Items[i].ToString(),?txtSavePath.Text?+?"\\"?+?Path.GetFileName(lboxPicPath.Items[i].ToString()));
????????????????labInfo.Text?
=?"已經壓縮圖片張數:"?+?Convert.ToString(i?+?1);
????????????}
????????????MessageBox.Show(
"恭喜,壓縮圖片成功!",?"提示",?MessageBoxButtons.OK,?MessageBoxIcon.Information);
????????}

????????
private?void?btnShow_Click(object?sender,?EventArgs?e)
????????{
????????????FolderBrowserDialog?fbd?
=?new?FolderBrowserDialog();
????????????
if?(fbd.ShowDialog()?==?DialogResult.OK)
????????????{
????????????????
this.getFile(fbd.SelectedPath);
????????????}
????????}

????????
private?void?getFile(string?path)
????????{
????????????DirectoryInfo?pic?
=?new?DirectoryInfo(path);
????????????
foreach?(FileInfo?file?in?pic.GetFiles("*.*"))
????????????{
????????????????lboxPicPath.Items.Add(file.FullName);
????????????}
????????}

????????
private?void?btnShowSavePath_Click(object?sender,?EventArgs?e)
????????{
????????????FolderBrowserDialog?fbd?
=?new?FolderBrowserDialog();
????????????fbd.Description?
=?"請選擇保存輸出圖像路徑";
????????????fbd.ShowNewFolderButton?
=?true;

????????????
if?(fbd.ShowDialog()?==?DialogResult.OK)
????????????{
????????????????
if?(fbd.SelectedPath.ToString()?!=?"")
????????????????{
????????????????????txtSavePath.Text?
=?fbd.SelectedPath;
????????????????}
????????????}
????????}

????????
private?void?btnSelect_Click(object?sender,?EventArgs?e)
????????{
????????????OpenFileDialog?open?
=?new?OpenFileDialog();
????????????open.Title?
=?"請選擇要壓縮的圖片";
????????????open.Filter?
=?"圖片文件(*.jpg,*.bmp,*.png,*.gif)|*.jpg;*.bmp;*.png;*.gif";
????????????open.Multiselect?
=?true;
????????????
if?(open.ShowDialog()?==?DialogResult.OK)
????????????{
????????????????
foreach?(string?file?in?open.FileNames)
????????????????{
????????????????????lboxPicPath.Items.Add(file);
????????????????}
????????????}
????????}

????????
private?void?picTop_Click(object?sender,?EventArgs?e)
????????{
????????????
if?(this.TopMost)
????????????{
????????????????
this.TopMost?=?false;
????????????????
this.Text?=?"圖片壓縮工具(作者:劉典武)---普通模式";
????????????}
????????????
else
????????????{
????????????????
this.TopMost?=?true;
????????????????
this.Text?=?"圖片壓縮工具(作者:劉典武)---置頂模式";
????????????}
????????}

????????
private?void?tbarTransparent_Scroll(object?sender,?EventArgs?e)
????????{
????????????labTransparent.Text?
=?"透明值:"?+?Convert.ToString(100?-?tbarTransparent.Value)?+?"%";

????????????
this.Opacity?=?1?-?(float)(tbarTransparent.Value)?/?100;
????????}

????????
private?void?btnDelete_Click(object?sender,?EventArgs?e)
????????{
????????????
if?(lboxPicPath.SelectedItems.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();
????????????}
????????}

????}
}


?源文件下載:點擊這里下載

轉載于:https://www.cnblogs.com/feiyangqingyun/archive/2010/12/07/1899032.html

總結

以上是生活随笔為你收集整理的C#制作图片压缩工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产中年熟女高潮大集合 | 精品影片一区二区入口 | 污污内射在线观看一区二区少妇 | 色婷婷综合五月 | 国产成人精品一区二区三区视频 | mm131亚洲精品| 国产精品成人免费视频 | 久久免费少妇高潮99精品 | 婷婷网五月天 | 日韩久久久 | 久操视频免费在线观看 | 波多野结衣爱爱 | 亚洲国产中文字幕在线观看 | 农村搞破鞋视频大全 | 日韩欧美字幕 | 久久久久久无码精品大片 | 69一区二区 | 黄色片免费观看 | 色女孩综合 | 椎名由奈av一区二区三区 | 亲女禁h啪啪宫交 | 五月av| 欧美大色一区 | 成人深夜网站 | 天天操操操操操 | 先锋影音av资源在线 | 欧美日韩视频在线观看免费 | 国产精品人妻一区二区三区 | 亚洲人性生活视频 | 欧美日韩在线播放视频 | 无码人妻精品一区二区蜜桃网站 | 激情网色| 在线播放的av | 日韩一区精品 | 九九爱国产 | 色综合天天色综合 | 久久中文字幕在线 | 亚洲a在线观看 | 国产高潮失禁喷水爽到抽搐 | 大吊av| 本站只有精品 | 深夜精品福利 | 色综合天天网 | 青青青草视频在线观看 | 天天插av | 成人三级在线视频 | 亚洲福利网站 | 国产精品一二区在线观看 | 色插综合 | 黄色网址在线看 | 美女扒开腿让男人捅 | 亚洲综合欧美综合 | 国精产品一区一区三区 | 亚洲一区中文字幕在线观看 | 东京久久久 | 亚洲熟女一区二区 | 中国女人内96xxxxx | 绿色地狱在线观看 | 欧美一区二区三区视频在线观看 | 女同久久另类69精品国产 | 欧美人人爽 | 99久久免费看精品国产一区 | 性欧美video另类hd尤物 | 久久天天干 | 欧美日韩系列 | 香港三级日本三级三69 | 天堂中文在线最新 | 亚洲成人午夜电影 | 欧美激情视频一区 | 男生插女生视频在线观看 | 欧美xxxxbbbb| 黑人黄色一级片 | 日韩毛片视频 | 中文字幕一区三区 | 国产丝袜自拍 | 性欧美久久久 | 国产精品亚洲а∨天堂免在线 | 国产一线二线三线女 | 亚洲综合精品国产一区二区三区 | 国产精品美女www爽爽爽 | 性xxxx| 欧美成人dvd在线视频 | aa成人 | 国产第56页| 伊人77| 日韩一区免费 | 高清无码视频直接看 | 久久久久亚洲av成人网人人软件 | wwwxxoo | 超清av| 麻豆一区二区在线观看 | 一级成人免费视频 | 精品人妻少妇一区二区 | 色偷偷888欧美精品久久久 | 91在线无精精品入口 | 亚洲精品污一区二区三区 | 欧美国产大片 | 国产精品伦理 | 日韩三级中文字幕 |