ASP.NETカスタムWebサーバーコントロールでオンザフライで生成しSystem.Drawing.Bitmap
ていますが、ホスティングコンピューターに保存したくないため、このビットマップをWebResourceの一部として提供したいと思います。
System.Drawing.Bitmap
生成されたものをWebResourceの一部として提供するようにASP.NETに指示する方法はありますか?(したがって、それを「埋め込みリソース」にします)
ASP.NETカスタムWebサーバーコントロールでオンザフライで生成しSystem.Drawing.Bitmap
ていますが、ホスティングコンピューターに保存したくないため、このビットマップをWebResourceの一部として提供したいと思います。
System.Drawing.Bitmap
生成されたものをWebResourceの一部として提供するようにASP.NETに指示する方法はありますか?(したがって、それを「埋め込みリソース」にします)
HTTPハンドラーを使用します。ハンドラーは基本的に、指定された拡張子を持つリソースがサーバーから要求されたときに実行されるコードの一部です。動的に生成された画像が必要なため、ハンドラーのコードでそれを行い、応答として返します。埋め込みは静的な情報しかできないため、埋め込みは機能しません。ここにいくつかのリンクがあります:
HTTPハンドラーを使用せずにいくつかのASP.NETプロジェクトでこれを行いました。
「Fingerprint.jpg」という名前の画像があり、名前空間が「MyNamespace」であるWebコントロールライブラリの「Images」という名前のサブフォルダーに配置するとします。事実上、画像の計算された名前空間は「MyNamespace.Images」になります。ビルドアクション「EmbeddedResource」でそのイメージをマークします。
ここで、このWebコントロールライブラリに「MyNamespace.SampleWebControl」という名前のWebコントロールクラスがあると仮定します。
AssemblyInformation.csで、画像ごとに次のようなものを追加しました。
[アセンブリ:System.Web.UI.WebResource( "MyNamespace.Images.Fingerprint.jpg"、 "image / jpg")]
上記の例では、Fingerpint.jpg画像は、Webコントロールライブラリのルートディレクトリのすぐ下にある「Images」という名前のフォルダに保存されています。
次に、asp.netページのコードビハインドで次のようなものを使用できます。
string imgName = "MyNamespace.Images.Fingerprint.jpg";
Type ctrlType = typeof(MyNamespace.SampleWebControl);
string imageUrl = Page.ClientScript.GetWebResourceUrl(ctrlType, imgName);
次に、そのimageUrl値をImageControlまたはHTMLIMGタグの画像のURLとして使用できます。