网页上的图像不透明

本文关键字:不透明 图像 网页 | 更新日期: 2023-09-27 18:25:30

我有一个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") %>" />

网页上的图像不透明

更改此行

newImage.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);

newImage.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png);

你应该做好准备。您的操作方法已将内容类型设置为Png,因此您已接近。但如果浏览器出于用户体验的考虑检测到不同的图像格式,它将忽略这一点。