【问题标题】:How to save a bitmap image as JPEG如何将位图图像保存为 JPEG
【发布时间】:2014-02-08 16:18:15
【问题描述】:

问题是文件没有保存为 JPEG。只是一个普通的文件。

这是我目前的代码:

private void btnSave_Click(object sender, EventArgs e)
{
    saveDialog.FileName = txtModelName.Text;

    if (saveDialog.ShowDialog() == DialogResult.OK)
    {
        Bitmap bmp = new Bitmap(pnlDraw.Width, pnlDraw.Height);

        pnlDraw.DrawToBitmap(bmp, new Rectangle(0, 0,
            pnlDraw.Width, pnlDraw.Height));

        bmp.Save(saveDialog.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
    }
}

【问题讨论】:

  • “普通文件”是什么意思?
  • 对我来说看起来是正确的。我怀疑“普通文件”只是意味着该文件没有正确的扩展名。
  • 我认为您的问题只是扩展名。如果你用图像查看器打开文件“image1”会发生什么?我的意思是,它是只是缺少扩展的图像吗?
  • 在文件属性中只显示“文件类型:文件”。
  • 实际上它不再打开它告诉我选择一个程序来打开它

标签: c# image jpeg


【解决方案1】:
int width;
int height;
int stride;
int x;
int y;
string filename;

Bitmap bitmap = new Bitmap(width,height,stride,PixelFormat.Format32bppArgb,new IntPtr());

//then set the pixel;
bitmap.SetPixel(x,y,Colors.Black);
bitmap.Save(filename);

【讨论】:

  • 您好,欢迎来到本站,感谢您的回答。也许您可以编辑这篇文章来解释这如何解决问题以及如何使用它?这样,未来的人可以更好地了解正在发生的事情。
  • 能否请您补充一点说明
  • 有人错误地将您的答案标记为低质量。您应该添加一些随附的文本来解释您的答案是如何工作的,以防止进一步的标记和/或否决。仅代码答案is not low-quality。它是否试图回答这个问题?如果不是,则标记为“不是答案”或建议删除(如果在审核队列中)。 b) 它在技术上不正确吗?投反对票或发表评论。 From review.
【解决方案2】:

在保存之前检查文件名是否有.jpg扩展名如何?

您还可以将saveDialog 更改为仅允许用户选择.jpg 图像。

private void btnSave_Click(object sender, EventArgs e)
{
    saveDialog.FileName = txtModelName.Text;
    saveDialog.DefaultExt = "jpg";
    saveDialog.Filter = "JPG images (*.jpg)|*.jpg";    

    if (saveDialog.ShowDialog() == DialogResult.OK)
    {
        Bitmap bmp = new Bitmap(pnlDraw.Width, pnlDraw.Height);

        pnlDraw.DrawToBitmap(bmp, new Rectangle(0, 0,
            pnlDraw.Width, pnlDraw.Height));

        var fileName = saveDialog.FileName;
        if(!System.IO.Path.HasExtension(fileName) || System.IO.Path.GetExtension(fileName) != "jpg")
            fileName = fileName + ".jpg";

        bmp.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
    }
}

【讨论】:

  • 谢谢它可以工作,但是当我保存图像时为什么它不显示 JPEG 保存文件类型:?
  • @GameOver 我已经用两行更新了我的答案,这应该可以解决问题。
猜你喜欢
  • 1970-01-01
  • 2012-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
相关资源
最近更新 更多