[解決済み] ASP.NET Web APIを使用して画像を返す推奨される方法はありますか?
2023-04-28 21:45:05
質問
2つのパラメータ(リサイズ用のxとy)を持つ画像を返すのに最適な方法は何でしょうか?
例えば
~/api/image12345/200/200
200 x 200 の jpg/png/or gif を返します。
を返すべきでしょうか。
System.Drawing.Image
オブジェクトを返すか、手動で
HTTPReponseMessage.Content
?
どのように解決するのですか?
を返してはいけません。
System.Drawing.Image
を返すべきでなく、それを適切なバイトに変換する方法を知っているフォーマッタを追加しない限り、あなたが期待するような画像バイトとして自分自身をシリアライズすることはありません。
一つの可能な解決策は
HttpResponseMessage
をそのコンテンツに格納することです (下図参照)。質問で示したURLが必要な場合、{imageName}、{width}、{height}パラメータをマッピングするルートが必要であることを忘れないでください。
public HttpResponseMessage Get(string imageName, int width, int height)
{
Image img = GetImage(imageName, width, height);
using(MemoryStream ms = new MemoryStream())
{
img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new ByteArrayContent(ms.ToArray());
result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
return result;
}
}
しかし、多くの場所でこれを行うのであれば、フォーマッタのルートを通ることが推奨される方法かもしれません。プログラミングにおけるほとんどすべてのことと同様に、答えはあなたのシナリオに依存します。
関連
-
.NET Coreでオブジェクトプールを使用する
-
ASP.NET Coreで複数のサービス実装クラスをインジェクトする方法
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] div' コンテナに合わせて画像を自動リサイズするにはどうしたらいいですか?
-
[解決済み] Bitmapオブジェクトに画像を読み込む際にOutOfMemoryが発生する問題
-
[解決済み] JavaScriptSerializer - 列挙型を文字列としてJSONシリアライズする
-
[解決済み] Chromeを使用してASP.NET Web APIがXMLの代わりにJSONを返すようにするにはどうすればよいですか?
-
[解決済み] ASP.NET WebサイトとASP.NET Webアプリケーションのどちらを選ぶか?
-
[解決済み] すべてのサーバーサイドのコードでConfigureAwaitを呼び出すためのベストプラクティス
-
[解決済み] ASP.NETの一時ファイルのクリーンアップ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NET6新機能 - 暗黙の名前空間参照
-
NETガベージコレクション GC診断ツール dotnet-gcmon 使用方法
-
ASP.NET Core Dependency Injectionフレームワークの活用
-
ASP.NET Core Web API チュートリアル プロジェクト構成図
-
ASP.NET Coreで複数のサービス実装クラスをインジェクトする方法
-
CS0234 名前空間 'Microsoft.AspNet' に型または名前空間名 'Mvc' が存在しない (あなたは
-
[解決済み】ASP.NET Web APIでコントローラからバイナリファイルを返す。
-
[解決済み] Server.UrlEncode vs. HttpUtility.UrlEncode
-
[解決済み] フレームワークのランタイムターゲットが見つからない .NETCoreApp=v1 互換ランタイムの1つと互換性がある
-
[解決済み] Web APIを使用してファイルを返すには?