日韩性视频-久久久蜜桃-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#制作图片压缩工具的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 2024av视频 | 好吊操这里只有精品 | 天天射天天操天天干 | 99久久久无码国产精品性色戒 | 色网站免费观看 | 尤物网在线 | 亚洲熟女少妇一区 | 成人影片网址 | 亚洲av永久无码精品 | 91网址在线观看 | 91大神精品在线 | 日韩激情电影在线 | 涩漫天堂 | 二级黄色大片 | 羞羞答答一区 | 精品国产成人av在线免 | 教练含着她的乳奶揉搓揉捏动态图 | 91大神视频在线播放 | 成人黄色大片 | 人妖和人妖互交性xxxx视频 | 99视频免费在线观看 | 善良的公与媳hd中文字 | 亚洲精品国产精华液 | 午夜在线国产 | 尤物网址在线观看 | 想要xx视频 | 激情成人av | 欧美日韩激情网 | 亚洲福利一区二区三区 | 久久依人网 | 亚洲视频精选 | xxx国产| 中文字幕在线观看一区二区三区 | 中文字幕1页 | 天天国产视频 | 奶波霸巨乳一二三区乳 | 伊人网大 | 韩国午夜av | 丁香婷婷激情 | 亚洲天堂av在线免费观看 | 大香蕉视频一区二区 | 国产精品高潮呻吟久久aⅴ码 | 又黄又爽的免费视频 | 丰满少妇熟乱xxxxx视频 | 高潮毛片又色又爽免费 | 亚洲国产中文字幕在线 | 欧美极品在线观看 | 麻豆疯狂做受xxxx高潮视频 | 亚洲一本在线 | 99ri视频| 久久亚洲综合色图 | 天堂中文在线网 | 亚洲精品中文字幕在线播放 | 91啪在线观看| 国产xxx | 91嫩草香蕉 | 国产高清精品软件丝瓜软件 | 日本一级大毛片a一 | 自拍偷拍亚洲精品 | 啊灬啊灬啊灬秀婷 | 一本大道久久 | 69久久| 中国少妇初尝黑人巨大 | 狠狠夜夜| 中出在线 | 69性视频| 色老头免费视频 | 国产国产精品 | 性色生活片 | 亚洲男人天堂影院 | 中文字幕视频一区 | 桃色视频在线 | 久久久久久国产精品免费播放 | 免费观看一区二区三区 | 美女下部无遮挡 | 成人夜晚看av| 一区二区三区四区免费 | 国产成人免费av一区二区午夜 | 精品美女久久久 | 欧美日韩中文字幕在线观看 | 欧美亚洲黄色 | 精品在线观看免费 | 免费无遮挡无码永久在线观看视频 | 国产一区二区久久精品 | 国产91热爆ts人妖系列 | 99ri国产在线 | 欧美30p| 在线视频日韩欧美 | 播播成人网 | 日韩a在线观看 | 亚洲乱码电影 | 91精品一区二区三区在线观看 | 色呦呦在线观看视频 | 欧美黑人多人双交 | 国产欧美日韩视频 | 青青青在线视频观看 | 亚洲天堂自拍偷拍 | 91麻豆成人精品国产免费网站 | 国产精品久久国产精品99 |