自制简易图片尺寸调整工具[源]

今天花了一个下午+晚上写的一款简单的图片尺寸调整的小工具,满足不想用图片处理软件的用户(-_-!)



程序思想:导入一个或多个图片文件(JPG,BMP,GIF),按自定义尺寸调整图片大小后,以剪裁或缩放的方式导出后生成所需要的图片文件。

主要代码如下:


窗体包含

        private System.Windows.Forms.GroupBox groupBox1;
        
private System.Windows.Forms.Button button2;
        
private System.Windows.Forms.GroupBox groupBox2;
        
private System.Windows.Forms.Label label1;
        
private System.Windows.Forms.Label label2;
        
private System.Windows.Forms.Label label3;
        
private System.Windows.Forms.Label label4;
        
private System.Windows.Forms.OpenFileDialog OFD;
        
private System.Windows.Forms.ListBox FileList;
        
string[] Files;
        
private System.Windows.Forms.FolderBrowserDialog FBD;
        
private System.Windows.Forms.ProgressBar pBar;
        
private System.Windows.Forms.NumericUpDown picHeight;
        
private System.Windows.Forms.NumericUpDown picWidth;
        
private System.Windows.Forms.CheckBox IsCut;
        
private System.Windows.Forms.PictureBox pictureBox1;



初始化

private void Form1_Load(object sender, System.EventArgs e)
        
{
            InitMenu();
            OFD.Multiselect
=true;
            OFD.Filter
="jpg文件|*.jpg|gif文件|*.gif|bmp文件|*.bmp";
            button2.Enabled
=false;
        }



窗体菜单

private void InitMenu()//初始窗体菜单
        {
            MainMenu mainMenu
=new MainMenu();
            mainMenu.MenuItems.Add(
"文件(&F)");
            mainMenu.MenuItems.Add(
"关于(&A)",new EventHandler(About));
            mainMenu.MenuItems[
0].MenuItems.Add("导入(&I)",new EventHandler(Import));
            mainMenu.MenuItems[
0].MenuItems.Add("-");
            mainMenu.MenuItems[
0].MenuItems.Add("退出(&X)",new EventHandler(Exit));
            
            
this.Menu=mainMenu;
        }



菜单需要触发的事件

private void Import(object sender, System.EventArgs e)//导入文件
        {
            OFD.ShowDialog();
            Files
=OFD.FileNames;
            
if(Files.Length!=0)
            
{
                
for(int i=0;i<Files.Length;i++)
                
{
                    FileList.Items.Add(Files[i]);
                }

                button2.Enabled
=true;
            }

        }

        
private void Exit(object sender, System.EventArgs e)
        
{
            
this.Close();
        }

       
private void About(object sender, System.EventArgs e)
        
{
            MessageBox.Show(
"简易图片大小调整工具V1.0    制作:随机");
        }



导出文件

private void button2_Click(object sender, System.EventArgs e)
        
{
            FBD.ShowDialog();
            Bitmap editedPicture;
            
string savePath=FBD.SelectedPath.Replace("\\","\\\\");
            
if(FBD.SelectedPath.Trim().Length!=0)//是否选中路径
            {
                
int PictureHeight,PictureWidth;
                
try
                
{
                    
for(int i=0;i<FileList.Items.Count;i++)
                    
{
                        
//设置图片的尺寸
                        PictureWidth=Convert.ToInt16(picWidth.Text);
                        PictureHeight
=Convert.ToInt16(picHeight.Text);

                        
string CurrentFile=FileList.Items[i].ToString();//得到当前文件名
                        string FileEx=CurrentFile.Substring(CurrentFile.Length-3,3);//取当前文件扩展名
                        Image img=Image.FromFile(CurrentFile);
                        
if(IsCut.Checked)
                        
{
                            Bitmap cutPicture
=(Bitmap)img;

                            
//判断剪裁范围是否超出图片大小
                            if(cutPicture.Height<PictureHeight) PictureHeight=cutPicture.Height;
                            
if(cutPicture.Width<PictureWidth) PictureWidth=cutPicture.Width;

                            editedPicture
=cutPicture.Clone(new Rectangle(0,0,PictureWidth,PictureHeight),System.Drawing.Imaging.PixelFormat.Format24bppRgb);//剪裁图片
                        }

                        
else
                        
{
                            editedPicture 
=new Bitmap(img,PictureWidth,PictureHeight);//缩放图片
                        }

                        
switch(FileEx.ToLower())//按原格式保存
                        {
                            
case "jpg":editedPicture.Save(savePath+"\\NewPic_"+i.ToString()+".jpg",System.Drawing.Imaging.ImageFormat.Jpeg);break;
                            
case "gif":editedPicture.Save(savePath+"\\NewPic_"+i.ToString()+".gif",System.Drawing.Imaging.ImageFormat.Gif);break;
                            
case "bmp":editedPicture.Save(savePath+"\\NewPic_"+i.ToString()+".bmp",System.Drawing.Imaging.ImageFormat.Bmp);break;
                        }
                                Double ProgressValue=(i+1)/Convert.ToDouble(FileList.Items.Count)*100;
                                pBar.Value=Convert.ToInt16(ProgressValue);//进度处理
                        
                    }

                    MessageBox.Show(
"图片导出完毕!");
                    pBar.Value
=0;
                }

                
catch(Exception Err)
                
{
                    MessageBox.Show(Err.Message);
                }

            }

        }



程序难度不大,就是一些简单的应用,当然,这是.net开发的嘛,如果是VC的话,难度就有所提高了:)


程序下载


地址: /Files/YH-Random/PicEdit.rar

程序大小:60KB

运行环境:需.Net Framework支持



 

posted @ 2007-02-27 22:42  随机  阅读(1341)  评论(2编辑  收藏  举报