我有这个功能将bmp图像存储在所需的位置,如下所示 我的问题是,如何在默认情况下将图像保存在C:\ temp文件夹中,而不是打开文件夹框?
我想指定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 :(得分:0)
您需要将SaveFileDialog
的{{3}}设置为“C:\ temp”:
sd.FilterIndex = 1;
sd.InitialDirectory = @"C:\temp"; // <--- Add this line
if( sd.ShowDialog() != DialogResult.OK )
return false;
答案 1 :(得分:0)
如果我理解正确,您根本不想使用SaveFileDialog。 那我建议你不要;)。您正在使用SaveFileDialog来检索文件的路径,该行是文件中的SaveFileDialog.FileName
st = GdipSaveImageToFile( img, sd.FileName, ref clsid, IntPtr.Zero );
代替sd.FileName,输入你想要的值;即,@“c:\ temp \”+ picname +“。bmp”
删除与SaveFileDialog相关的任何内容。