簡體   English   中英

如何將位圖圖像保存為 JPEG

[英]How to save a bitmap image as JPEG

問題是文件沒有保存為 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);
    }
}

如何在保存之前檢查文件名是否具有.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);
    }
}
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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM