图片转换格式的代码

这篇博客介绍了如何在C#中处理图像,包括改变图片大小、填充pictureBox控件以及动态选择图片文件。重点在于利用Graphics对象进行图像缩放,并展示了如何根据用户的选择保存图片为不同格式,如Bmp、Gif等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

private void pictureEdit1_Properties_MouseWheel(object sender, MouseEventArgs e)
        {
           
            Rectangle oldrct;
            Bitmap bmp;
            bmp = (Bitmap)this.pictureEdit1.Image;
            oldrct = new Rectangle(0, 0, bmp.Width, bmp.Height);
            this.pictureEdit1.Image = bmp;
            Bitmap tmpbmp = null;
            int i = e.Delta;
            if (i > 0)
            {
                tmpbmp = new Bitmap(bmp.Width * 2, bmp.Height * 2);
            }
            else
            {
                tmpbmp = new Bitmap(bmp.Width / 2, bmp.Height / 2);
            }
            Graphics g = Graphics.FromImage(tmpbmp);
            Rectangle newrct = new Rectangle(0, 0, tmpbmp.Width, tmpbmp.Height);

            g.DrawImage(bmp, newrct, oldrct, GraphicsUnit.Pixel);//newrct是你的目标矩形位置,oldrct是你原始图片的起始矩形位置
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
            //oldrct = oldrct;
            pictureEdit1.Image = tmpbmp;
            g.Dispose();
            pictureEdit1.Update();
        }

 

 

我当时是这么做的
        void PictureBox1MouseEnter(object sender, System.EventArgs e)
        {
            this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.pictureBox1.Height = 600;
            this.pictureBox1.Width = 800;
        }
       
        void PictureBox1MouseLeave(object sender, System.EventArgs e)
        {
            this.pictureBox1.Dock = System.Windows.Forms.DockStyle.None;
            this.pictureBox1.Height = 150;
            this.pictureBox1.Width = 200;
        }

 


清除 pictureBox 控件的图片可以用以下代码实现:(其中 pictureBox1 是控件的name属性)
this.pictureBox1.Image = null;

如果想要动态选择图片文件,进行填充 pictureBox 控件,以下代码对你可能有些帮助:
if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
{
this.pictureBox1.Image=System.Drawing.Bitmap.FromFile(this.openFileDialog1.FileName);
}

 

 

C# 图像处理(八)—— 转换图片格式(2008-10-08 22:34:38)标签:c 图像处理 图片格式 it   分类:C#_笔记
    其实我起这个题目是有点矛盾的,因为其实这里的内容好像不太符合转换图片格式的内容,而只是在图片另存为的时候指定一下保存的格式而已,不过算了,就这样说一下吧。

    在这里,首先需要到saveFileDialog这个控件,我个人觉得这个控件是多余的时间比较多,但是进行保存操作的时候却需要到它来帮忙记录下用户想改的名字,代码如下,

    string fileName = this.saveFileDialog.FileName;//用一个字符串变量把文件名记录下来

 

    最后就是结合之前所用的pictureBox控件,通过以下代码可以指定用户想保存图片的格式,例如,

    this.pictureBox.Image.Save(fileName + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);

    这是用bmp格式用保存图片,那如果要指定为gif的也可以

    this.pictureBox.Image.Save(fileName + ".gif", System.Drawing.Imaging.ImageFormat.Gif);

  

    当然还有其它图片格式的保存方式,如jpg、png、tif、wmf等,这些我都没有了解得很深入,所


我写了下面的代码,可以实现了目的,可是出现了一个小问题,就是:对于保存对话框的“保存”或“取消”都必须单击两次才能完成程序的操作。请各位大侠指点一下,在此先谢了!
SaveFileDialog sf = new SaveFileDialog();
sf.Title = "导出为:";
sf.InitialDirectory = "D://";
sf.Filter = "excel file(.xls)|*.xls|All file(*.*)|*.*";
sf.ShowDialog();
string sfName = sf.FileName;
if (sf.ShowDialog() == DialogResult.OK)
{
try
{

}
catch
{
throw new ArgumentException();
}
}
else

MessageBox.Show("你没有选择路径,请选择正确的存储路径!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
问题补充:呵呵……我已经发现了这个问题了……
自己大意了点,不够细心!
不过还是谢谢了!
提问者: seekel - 助理 二级 最佳答案
//sf.ShowDialog(); <---------把这句话注释掉,多余,你Show了两遍
string sfName = sf.FileName;
if (sf.ShowDialog() == DialogResult.OK)

 C#项目信息怎么保存到本地C# 20分
回答:1   浏览:153   提问时间:2009-04-01 11:51
c#项目在重新启动后,之前启动得到的信息就消失了。怎么能把它保存住?就是说能不能在C#项目启动的时候访问一个文件,读取其中的信息,项目关闭的时候在把信息的更改提交到那个文件中?再次启动时得到的是更改后的数据?
一定要连数据库吗?
 共0条评论...回答 共1条回答评论 ┆ 举报
红枫
[新手] 一种办法是你自己把这些信息写入一个文件中,程序启动时读入。如果你用C#的序列化功能,这并不复杂。

还有更简单的办法,就是在Project->Properties->Settings中添加一个变量,可以是string,int,看你需要。例如你想记录程序的窗口位置和大小,你可以在Settings中添加变量WindowLocation(类型为System.Drawing.Point),WindowSize(类型为System.Drawing.Size);在OnClosing()中加入
//================================================
Settings.Default.WindowLocation = this.Location;
if (this.WindowState == FormWindowState.Normal)
Settings.Default.WindowSize = this.Size;
else
Settings.Default.WindowSize = this.RestoreBounds.Size;
Settings.Default.Save();
//================================================
程序再启动时读入,在OnLoad()中
//================================================
this.Location = Settings.Default.WindowLocation;
this.Size = Settings.Default.WindowSize;
//================================================

注意要在文件头加入
using your_namespace.Properties;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值