存储在表格中时图像丢失透明效果

时间:2010-07-23 07:41:34

标签: asp.net image image-processing

我希望将图像存储在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();
        }
    }
}

任何解决方案????

由于

1 个答案:

答案 0 :(得分:1)

这个可能会回答你的问题:

Why does resizing a png image lose transparency?

正如上面的链接所示,您不会失去透明度,因为图像已保存到数据库中。当您调整图像大小时,透明度会丢失。