0

我知道以前有人问过这个问题,但我找不到适合我具体情况的答案。我试图从资源图像创建新的位图。

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 . + 测试),但由于某种原因,这不起作用......有什么想法吗?

4

2 回答 2

1

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

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

var assembly = System.Reflection.Assembly.GetEntryAssembly();
var resources = assembly.GetManifestResourceStream("Resources.Properties.Resources." + test);
于 2013-06-29T05:34:23.600 回答
1

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

编辑:

我说的是this constructorthis

于 2013-06-29T05:21:42.507 回答