2014-01-19 66 views
1

問題是該文件未保存爲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); 
    } 
} 
+0

什麼是 「正常文件」 是什麼意思? – SLaks

+0

它看起來對我來說是正確的。我懷疑「正常文件」只是意味着文件沒有正確的擴展名。 – Dirk

+0

我認爲你的問題只是擴展。如果使用圖像查看器打開文件「image1」,會發生什麼情況?我的意思是,這是一個簡單地缺少擴展名的圖像嗎? –

回答

8

如何檢查,如果文件名中有保存前.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); 
    } 
} 
+0

感謝它的工作原理,但是當我保存圖像時爲什麼不顯示JPEG保存文件類型:? – GameOver

+0

@GameOver我已經更新了我的答案,其中有兩行應該可以解決這個問題。 – MarcinJuraszek

0
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); 
+0

嘿,歡迎來到本網站並感謝您的回答。也許你可以編輯這篇文章來解釋如何解決這個問題以及如何使用它?這樣,未來的人們可以更好地理解發生的事情。 – SCB

+0

請問您可以補充一點澄清 –

+0

有人錯誤地將您的答案標記爲低質量。您應該添加一些伴隨文字來解釋您的答案如何工作,以防止進一步標記和/或降價。只有代碼答案[不是低質量](https://meta.stackoverflow.com/a/358757/1364007)。它是否試圖回答這個問題?如果不是,則標記爲「不是答案」或建議刪除(如果在審閱隊列中)。 b)技術上不正確? Downvote或評論。 [來自評論](https://stackoverflow.com/review/low-quality-posts/18830844)。 –

相關問題