2

このコードを実行すると、コメントした行で常に「GDI+ で一般的なエラーが発生しました」というメッセージが表示されます。ランタイムエラー

    private void ConstructFromResourceSaveAsGif()
    {
        Bitmap bmp1 = new Bitmap(typeof(Button), "Button.bmp");

        //This line
        bmp1.Save("c:\\button.gif", System.Drawing.Imaging.ImageFormat.Gif);
    }
4

2 に答える 2

2

このコンストラクターは、指定された型の名前空間をリソースの文字列名と組み合わせて、アセンブリ マニフェストで一致を探します。たとえば、Button タイプと Button.bmp をこのコンストラクターに渡すと、System.Windows.Forms.Button.bmp という名前のリソースが検索されます。

その名前のリソースはありますか? そうでない場合は、それが問題になります。「一般的なエラーが発生しました...」というのは、GDI+ が手を空中に放り投げて「壊れましたが、その理由を説明するつもりはありません」と言うあまり友好的ではない方法です。

于 2012-07-29T02:14:58.373 に答える
2

コードをそのまま使用できます

private void ConstructFromResourceSaveAsGif()
{
    Bitmap bmp1 = new Bitmap("Button.bmp");

    bmp1.Save("c:\\button.gif", System.Drawing.Imaging.ImageFormat.Gif);
}

@DanFが言っていることを達成しようとしない限り、それでも機能します。

編集

これをテストするために使用した簡単なアプリを次に示します。

class Program
{
    static void Main(string[] args)
    {
        Bitmap bmp1 = new Bitmap("C:/donut.jpg");

        bmp1.Save("c:\\button.gif", System.Drawing.Imaging.ImageFormat.Gif);

        Console.WriteLine("Save Success");
        Console.Read();
    }
}
于 2012-07-29T01:47:31.947 に答える