イメージ Web コントロールからビットマップを設定する方法を教えてください。という名前の画像 Web コントロールは ですimgLoader
。私が試してみました
Bitmap bmp = new Bitmap(imgLoader);
ただし、エラーには次のように記載されています。
'System.Web.UI.WebControls.Image' から 'System.Drawing.Image' に変換できません。 .'
多分あなたは試すことができます
Bitmap bitmap = new Bitmap(Server.MapPath(imgLoader.ImageUrl));
これらは 2 つの完全に異なるオブジェクトです。
System.Web.UI.WebControls.Image は、HTML をレンダリングする機能を備えたコントロールであり、ブラウザが指定された画像をダウンロードして表示します。
System.Drawing.Image は、画像をメモリに読み込んで操作したり、コントロールに表示したりできるクラスです
(ただし、Web イメージ コントロールではありません)。
残念ながら、System.Web.UI.WebControls.Image を System.Drawing.Image に変換する方法はありません。画像データには触れません。
ImageUrl で画像を取得し、それを System.Drawing.Image に変換する場合は、呼び出すことができます
System.Drawing.Image.ImageFromFile("path/to/image")
Image WebControl は、ページがクライアント側でレンダリングされるときに HTML を出力します。HTML 要素には、画像の URL を指す src 属性があり、ブラウザーがダウンロードして割り当てられた場所に表示できるようになります。
同じ画像を Bitmap オブジェクトにロードする場合は、Web サーバーで画像の物理パスを取得し、以下のようにビットマップを作成します。
Bitamp bmp = Bitmap.FromFile("PHYSICAL-IMAGE-PATH");
ImageUrl プロパティから物理イメージ パスを取得し、Server.MapPath を介して URL を物理絶対パスに変換できます。
画像の URL がサーバーにローカルに保存されていない場合は、HttpClient を使用して画像をダウンロードし、サーバーの TEMP フォルダーに保存して、読み込んで操作できるようにすることができます。
ビットマップ コンストラクターには、引数としてイメージが必要です。
「imgLoader」画像を System.Drawing.Image にキャストし、その画像を Bitmap に渡します。