我想将图像存储在SQL server表中,并且成功了,但是当我检索页面上的图像时,我发现图像已经失去了透明度。原始图像是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();
}
}
}有什么解决方案吗?
谢谢
发布于 2010-07-23 15:47:00
这可能回答了你的问题:
Why does resizing a png image lose transparency?
正如上面的链接所暗示的那样,您不会因为图像被保存到数据库中而丢失透明度。当你调整图像的大小时,透明度就会丢失。
https://stackoverflow.com/questions/3316221
复制相似问题