我希望将图像存储在SQL服务器表中,并且我成功了但是当我在页面上检索该图像时,我发现图像已经失去了透明度。原始图像是png / gif。我已经在100px / 100px中调整了该图像的大小。
我使用以下代码来重新混合图像。它可以工作但是当它将图像存储在数据库中时它失去了透明度。
using (System.Drawing.Image oldImage = System.Drawing.Image.FromStream(new MemoryStream(imageFile)))
{
System.Drawing.Size newSize = CalculateDimensions(oldImage.Size, targetSize);
using (System.Drawing.Bitmap newImage = new System.Drawing.Bitmap(newSize.Width, newSize.Height, PixelFormat.Format24bppRgb))
{
using (System.Drawing.Graphics canvas = System.Drawing.Graphics.FromImage(newImage))
{
canvas.Clear(System.Drawing.Color.Transparent);
canvas.SmoothingMode = SmoothingMode.HighQuality;
canvas.InterpolationMode = InterpolationMode.HighQualityBicubic;
canvas.PixelOffsetMode = PixelOffsetMode.HighQuality;
canvas.DrawImage(oldImage, new System.Drawing.Rectangle(new System.Drawing.Point(0, 0), newSize));
MemoryStream m = new MemoryStream();
newImage.Save(m, ImageFormat.Png);
return m.GetBuffer();
}
}
}
任何解决方案????
由于
答案 0 :(得分:1)
这个可能会回答你的问题:
Why does resizing a png image lose transparency?
正如上面的链接所示,您不会失去透明度,因为图像已保存到数据库中。当您调整图像大小时,透明度会丢失。