如何从项目文件夹中获取位图

本文关键字:获取 位图 文件夹 项目文件 项目 | 更新日期: 2023-09-27 18:33:41

我有一个ImageHandler类,用于从活动目录中检索照片。但是,我想在无法检索到默认图像的情况下显示默认图像。我尝试使用return Bitmap.FromFile ( "~/images/default_person.jpg" );但是似乎正在寻找文件系统路径。

我想在"images"文件夹中指定位于我的解决方案中的图像,而无需将系统路径硬编码到代码中。

下面是获取图像的代码段:

static Image GetUserPicture ( string userName )
    {
        DirectoryEntry myLdapConnection = SCDirectoryEntry.GetDirectoryEntry ( );
        using ( DirectorySearcher dsSearcher = new DirectorySearcher ( myLdapConnection ) )
        {
            dsSearcher.Filter = String.Format ( "(SAMAccountName={0})", userName );
            SearchResult result = dsSearcher.FindOne ( );
            DirectoryEntry user = result.GetDirectoryEntry ( );
                byte [ ] data = user.Properties [ "jpegPhoto" ].Value as byte [ ];
                if ( data != null )
                {
                        var s = new MemoryStream ( data );
                        return Bitmap.FromStream ( s );
                }
            //return default image here    
            return Bitmap.FromFile ( "~/images/default_person.jpg" );

        }
    }

如何从项目文件夹中获取位图

您可以使用

Server.MapPath( "~/images/default_person.jpg" );

Server.MapPath 将此相对路径转换为物理路径,如此处在 MSDN 页面中所述。