1

MVC アプリケーションがあり、テキストを含む小さな 200x200 の画像を作成しています。

画像がファイルシステムに保存されるときの背景は透明ですが、ビューで ByteArray をレンダリングすると、透明度は黒になります。

これは、画像を作成するコードの一部です

var newImage = new Bitmap(200, 200, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
newImage.MakeTransparent(Color.Black);
Graphics g = Graphics.FromImage(newImage);
g.Clear(Color.Transparent);
MemoryStream memoryStream = new MemoryStream();
newImage.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
return memoryStream;

これは私のコントローラーにあります。ReadToEnd は、MemoryStream をバイト配列に変換します

public FileContentResult GetImage()
{
    Captioner.Captioner captioner = new Captioner.Captioner();
    MemoryStream msSpeechBubble = captioner.DrawSpeechBubble();

    byte[] buffer = ReadToEnd(msSpeechBubble);
    return File(buffer, "image/png");
}

そして、これは私のビューコードです

<img src="<%= Url.Action("GetImage", "Home") %>" />
4

1 に答える 1