将位图图像保存在C#中的某个位置

时间:2010-06-18 13:36:38

标签: c#

我有这个功能将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;
        }

2 个答案:

答案 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相关的任何内容。