none
使用程序集的方法新建Bitmap对象时获取不到有效的流 RRS feed

  • 问题

  • base.m_bitmap = new Bitmap(GetType().Assembly.GetManifestResourceStream(GetType(),"zoomout.bmp"));

    这里,就是这个GetManifestResourceStream方法的string参数不明白,着实不知道怎么使用。
    还请大家说明,谢谢!
    2010年3月13日 1:55

答案

  • 你好!

    你的 GetType() 是什么类型? GetManifestResourceStream,要求传入完成的名称空间地址。

    你要从资源中取图片信息,你要确定一下你下面的步骤是否都做了。

    1 在你的项目中添加图片,比如在 Images 文件夹上添加文件 “zoomout.bmp”
    2 在文件属性上,将“生成方式”设置为“嵌入的资源”
    3 我不太清楚你的 GetType() 是否正确,不过你可以使用下面的方式来获取添加的图片

    Image img = Image.FromStream(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("图片的名称空间地址 + 图片名称"))

    上面代码提出的地址是完整的名称空间地址,比如:

    你的项目的名称空间为 :

    namespace X.Library

    在这个项目的 Images 文件夹中添加的文件 zoomout.bmp 的完整地址应为 X.Library.Images.zoomout.bmp

    知识改变命运,奋斗成就人生!
    • 已标记为答案 YiChun Chen 2010年3月15日 11:11
    2010年3月13日 2:48
    版主
  • 你好!     这个资源是指嵌入程序集的资源!你可以参考上面XXY版主的回复!
    周雪峰
    • 已标记为答案 YiChun Chen 2010年3月15日 11:11
    2010年3月14日 4:22
    版主

全部回复

  • 你好!
         那个参数是所请求的清单资源的名称(区分大小写)。
    周雪峰
    2010年3月13日 2:02
    版主
  • 你好!

    你的 GetType() 是什么类型? GetManifestResourceStream,要求传入完成的名称空间地址。

    你要从资源中取图片信息,你要确定一下你下面的步骤是否都做了。

    1 在你的项目中添加图片,比如在 Images 文件夹上添加文件 “zoomout.bmp”
    2 在文件属性上,将“生成方式”设置为“嵌入的资源”
    3 我不太清楚你的 GetType() 是否正确,不过你可以使用下面的方式来获取添加的图片

    Image img = Image.FromStream(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("图片的名称空间地址 + 图片名称"))

    上面代码提出的地址是完整的名称空间地址,比如:

    你的项目的名称空间为 :

    namespace X.Library

    在这个项目的 Images 文件夹中添加的文件 zoomout.bmp 的完整地址应为 X.Library.Images.zoomout.bmp

    知识改变命运,奋斗成就人生!
    • 已标记为答案 YiChun Chen 2010年3月15日 11:11
    2010年3月13日 2:48
    版主
  • 完整地址是从项目的命名空间开始的?
    不是相对于类库的地址码?
    2010年3月14日 1:50
  • 这个我知道,在那里查到了,不过有点不明白这个资源是存放于哪里的,按逻辑应该是相对路径的资源吧,相对于生成的类库的,是吗?
    2010年3月14日 1:52
  • 你好!     这个资源是指嵌入程序集的资源!你可以参考上面XXY版主的回复!
    周雪峰
    • 已标记为答案 YiChun Chen 2010年3月15日 11:11
    2010年3月14日 4:22
    版主