[英]Image is not saving after updating, in c# using FileStream or Simple Bitmap
我正在為桌面應用程序中的某個實用程序工作,該實用程序與某些圖形工作有關。
我必須加載小的縮略圖和完整的位圖,我正在使用此代碼進行此操作。
FileStream fs = new FileStream("myphoto.jpg", FileMode.Open);
Image imgPhoto = Image.FromStream(fs);
fs.Close();
PictureBox p = new PictureBox();
p.Name = "p1";
p.Image = imgPhoto;
flowPanel.Controls.Add(p);
//----
FileStream fs = new FileStream("myphoto_thumb.jpg", FileMode.Open);
Image img = Image.FromStream(fs);
fs.Close();
Button b_thumb = new Button();
b_thumb.Name = "thumb1";
b_thumb.BackgroundImage = img;
flowBottom.Controls.Add(b_thumb);
之后,我需要在此圖片框的圖像上添加一些效果。當我向圖片框中的主(大)圖像添加一些效果時,我也會在botton背景圖像中添加相同的效果。當我將此縮略圖保存到現有的縮略圖中時它正在保存,但是當我將Picturebox中的大圖像保存在現有文件“ myphoto.jpg”上時,它給了我錯誤,例如文件正在由其他過程使用
//---- Add some Effects to image of Picturebox ---- //
PictureBox tempPic = flowPanel.Controls["p1"];
tempPic.Image.Save("myphoto.jpg",ImageFormat.Jpeg);
我在Google和stackoverflow上找到了許多解決方案,但找不到幫助。 如果有任何好的解決方案,請幫助。 可能很簡單,但我嘗試了十多個小時,但失敗了。
您不會關閉打開的FileStream。 我總是將這種東西包裝在一個using
構造中,因此它會自動被破壞,從而關閉:
using (FileStream fs = new FileStream("myphoto.jpg", FileMode.Open)) {
// Do stuff
}
tempPic.Image.Save("myphoto.jpg",ImageFormat.Jpeg);
嘗試將文件流設置為只讀:
fs = New System.IO.FileStream("myphoto.jpg",
IO.FileMode.Open, IO.FileAccess.Read)
這是Microsoft的建議,針對嘗試Image.FromFile並鎖定文件的用戶: http : //support.microsoft.com/kb/309482
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.