2011-02-01 17 views
6

フォーム(OKとキャンセル)の2つのプライマリボタンに同じボタンイメージを持つ複数のフォームを持つ既存のWinformsアプリケーションがあります。イメージは、ButtonのImageプロパティを "Local resource"に設定し、目的のイメージをインポートすることによって、VSデザイナで設定されます。Winformsフォーム/ボタン/イメージプロパティからローカルリソースイメージを抽出する

私は元の画像ファイルにアクセスできません。このようにImageプロパティが設定されたButtonコントロールのImageプロパティからイメージを抽出するにはどうすればよいですか?

Screenshot

答えて

1

実際の画像は、ファイルシステムに格納されていない、むしろbase64でエンコードされたシリアル化された表現としてフォーム(例えばMainForm.resx)のRESXファイルに追加。方法を知っていれば、その文字列をbase64でデコードし、結果をフラットファイルに保存し、正しく名前を付けることができます(そのイメージタイプを知っている必要があります)。

+0

あなたはここでバイナリファイルにはBase64文字列をデコードすることができますhttp://www.freeformatter.com/base64-encoder.html – Dan

6

私は、Base64を手動でデコードするよりもずっと簡単な方法を見つけました。

フォームをForm1に呼ばれていると仮定:

  1. は、ソリューションエクスプローラでのForm1.csを展開します。
  2. Form1.resxをダブルクリックしてリソースデザイナを開きます。
  3. 抽出したい画像を右クリックします。
  4. 「ファイルにエクスポート...」を選択します。

これは、永続性が「埋め込み済み」に設定されているリソースに適用されます。 Persistenceが「コンパイル時にリンクされている」場合、イメージはプロジェクトのResourcesディレクトリにファイルとして既に存在します。

Screenshot

+0

@KyleMitスクリーンショットをありがとう! – Dan

+1

さらに簡単です。そのウィンドウとctrl + cからそれらを選択し、デスクトップまたはフォルダに貼り付けます – Franck

関連する問題