使用嵌入式图像(gif)资源时出错

时间:2015-01-22 20:15:30

标签: c# itextsharp gif embedded-resource

以下代码用于加载要插入PDF的嵌入式GIF图像资源。不幸的是,iTextSharp.text.Image.GetInstance()会生成一条异常消息:

  

对象引用未设置为对象的实例。

我相信这意味着某些东西是空的,不应该是。但是使用Visual C#Express调试器逐步执行代码并没有向我透露它可能是什么。

我想知道一个更有经验的C#/ iTextSharp黑客是否能够找到我出错的地方?

using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace giftest
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                System.IO.Stream s =
                    System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("giftest.clear.gif");
                iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(s);
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Some sort of error occured: " + ex.Message);
                Console.WriteLine();
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
        }
    }
}
/* clear.gif
 * data:image/gif;base64,R0lGODlhAQABAHAAACH5BAUAAAAALAAAAAABAAEAAAICRAEAOw==
 */

1 个答案:

答案 0 :(得分:1)

首先尝试从流中获取图像,然后将其发送到GetInstance()调用。如你所知:iTextSharp.text.Image.GetInstance(System.Drawing.Image.FromStream(s), System.Drawing.Imaging.ImageFormat.Gif)