2010-06-18 69 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;