繁体   English   中英

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

[英]Save Bitmap image in a location in 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;
        }

您需要将SaveFileDialogInitialDirectory设置为“ C:\\ temp”:

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

如果我对您的理解正确,则根本不想使用SaveFileDialog。 那我建议你不要;)。 您正在利用SaveFileDialog来检索该文件的路径,即该行中的SaveFileDialog.FileName

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

代替sd.FileName,放置所需的值; 即@“ c:\\ temp \\” +图片名称+“ .bmp”

删除所有与SaveFileDialog相关的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM