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 . + test) ですが、何らかの理由でうまくいきません... アイデアはありますか?

4

2 に答える 2

1

私は C# の専門家ではありませんが、... Image などのリソースvar master = ...を渡しているのに対し、パラメータとして文字列を渡しているため、これはアクセス可能なへのパスである必要がありますファイル。それが役立つことを願っています。var meridian = ...

編集:

私はこのコンストラクターこれを話している。

于 2013-06-29T05:21:42.507 に答える
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);
于 2013-06-29T05:34:23.600 に答える