从资源文件访问图像对象

时间:2016-08-05 18:04:06

标签: c# image bitmap resx

在我的项目中,我需要检索自定义图像文件(从磁盘)。如果提供的路径中不存在图像文件,则应用程序将使用默认图像(嵌入式资源)。一旦我有了图像,我需要调整它以便在我的应用程序中进一步使用。

如果我尝试仅访问嵌入式资源(代码部分1),则一切都按预期工作。如果试图在图像上放置一个条件(代码部分2),该对象会在对象上返回各种异常,最明显的是出于我的目的:

> import Data.Bifunctor
> fmap (first (+1)) (Right (1, []))
Right (2, [])
> fmap (first (+1)) (Left ["oops"])
Left ["oops"]

这是我的代码

((System.Drawing.Image)(ReportLogoToUse)).Height' threw an exception of type 'System.ArgumentException' int {System.ArgumentException}
((System.Drawing.Image)(ReportLogoToUse)).Width' threw an exception of type 'System.ArgumentException'  int {System.ArgumentException}

Code Code 1和Code Section 2中的对象有什么区别?他们还没有归还同样的物体吗?

1 个答案:

答案 0 :(得分:0)

删除using...部分中的catch...块,然后只返回文件本身,它现在似乎正在运行。

public static Bitmap ReportLogo(string filePath){
    try{
        return (Bitmap)Image.FromFile(filePath, true);
    }
    catch (Exception ex){
        // use the embedded logo
        return Resources.sie_logo_petrol_rgb;
    }
}

对于它现在有效的任何见解将非常感激(因为我完全感到困惑)。