如何使Bitmap构造函数采用字符串

时间:2013-06-29 05:06:10

标签: c# bitmap

我知道之前已经问过这个问题,但我无法找到适合我具体情况的答案。我试图从资源图像创建新的位图。

private void button1_Click(object sender, EventArgs e)
    {

        string test = "meridian_am";
        string resources = "Resources.Properties.Resources." + test;

        var master = new Bitmap(Resources.Properties.Resources.master);
        var meridian_am = new Bitmap(resources);

        using (Graphics g = Graphics.FromImage(master))
        {
            g.DrawImageUnscaled(meridian_am, 114, 332);
        }
     }

由于某种原因,对于* var meridian_am = new Bitmap(resources)*我得到一个无效的参数错误。最终,我宁愿做一个字符串连接,就像在var meridian_am = new Bitmap(Resources。 Properties.Resources。+ test),但由于某种原因不能工作......有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我不是C#的专家,但是... var master = ...您传递的资源很可能是一张Image或类似的东西,而对于var meridian = ...,您传递字符串作为参数,该参数应该是可访问文件的路径。 希望有所帮助。

编辑:

我正在谈论this constructorthis one

答案 1 :(得分:1)

Resources.Properties.Resources.master是否包含图像字节或字符串(文件名的路径)?在任何情况下,您都不能将原始字符串“Resources.Properties.Resources.meridian_am”传递给Bitmap构造函数。它将其视为文件的路径,而不是您的资源。

您之前应该使用此名称从资源加载数据。类似的东西(如果你的资源包含图像字节):

var assembly = System.Reflection.Assembly.GetEntryAssembly();
var resources = assembly.GetManifestResourceStream("Resources.Properties.Resources." + test);