2010-06-18 43 views
1

我有這個功能來存儲在所需的位置的BMP圖像如下所示 我的問題是,如何將圖像保存在C:\ temp文件夾默認情況下,而不是打開filedialog框?在C#中的位置保存位圖圖像

我想指定sd.fileName = picname +「.bmp」並將其存儲在c:\ temp默認情況下。

我試圖指定

感謝您的幫助提前。

我試圖

public static bool SaveDIBAs(string picname, IntPtr bminfo, IntPtr pixdat) 
{ 
     SaveFileDialog sd = new SaveFileDialog(); 

     sd.FileName = picname; 
     sd.Title = "Save bitmap as..."; 
     sd.Filter = "Bitmap file (*.bmp)|*.bmp|TIFF file (*.tif)|*.tif|JPEG file (*.jpg)|*.jpg|PNG file (*.png)|*.png|GIF file (*.gif)|*.gif|All files (*.*)|*.*"; 
     sd.FilterIndex = 1; 
     if(sd.ShowDialog() != DialogResult.OK) 
      return false; 

     Guid clsid; 
     if(! GetCodecClsid(sd.FileName, out clsid)) 
      { 
      MessageBox.Show("Unknown picture format for extension " + Path.GetExtension(sd.FileName), 
          "Image Codec", MessageBoxButtons.OK, MessageBoxIcon.Information); 
      return false; 
      } 

     IntPtr img = IntPtr.Zero; 
     int st = GdipCreateBitmapFromGdiDib(bminfo, pixdat, ref img); 
     if((st != 0) || (img == IntPtr.Zero)) 
      return false; 

     st = GdipSaveImageToFile(img, sd.FileName, ref clsid, IntPtr.Zero); 
     GdipDisposeImage(img); 
     return st == 0; 
     } 
+0

粘貼代碼時,請確保您已將製表符轉換爲空格。標籤對markdown - > HTML過程造成嚴重破壞。編輯器將製表符視爲大量空格,但HTML將其視爲一個,因此代碼無法正確呈現。 – ChrisF 2010-06-18 13:41:48

回答

0

如果我理解正確的話,你不希望使用一個SaveFileDialog任何。 然後我建議你不要;)。您正在使用SaveFileDialog檢索是SaveFileDialog.FileName該行

st = GdipSaveImageToFile(img, sd.FileName, ref clsid, IntPtr.Zero); 

相反sd.FileName的文件的路徑,把你想要的值;即@「c:\ temp \」+ picname +「.bmp」

刪除與SaveFileDialog相關的任何內容。

0

您需要設置SaveFileDialog到的InitialDirectory 「C:\ TEMP」:

sd.FilterIndex = 1; 
sd.InitialDirectory = @"C:\temp"; // <--- Add this line 
if(sd.ShowDialog() != DialogResult.OK) 
    return false;