我知道之前已经问过这个问题,但我无法找到适合我具体情况的答案。我试图从资源图像创建新的位图。
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),但由于某种原因不能工作......有什么想法吗?
答案 0 :(得分:1)
我不是C#的专家,但是... var master = ...
您传递的资源很可能是一张Image或类似的东西,而对于var meridian = ...
,您传递字符串作为参数,该参数应该是可访问文件的路径。
希望有所帮助。
编辑:
我正在谈论this constructor与this 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);