保存System.Drawing.Bitmap高分辨率aspx
本文关键字:高分辨率 aspx Bitmap Drawing System 保存 | 更新日期: 2023-09-27 18:16:06
我写了一个方法,减少颜色深度(GIF转换),并设置分辨率为600像素的位图。
颜色深度转换工作正常,但分辨率设置不工作。
<script runat="server" language="C#">
public static void Convert(Bitmap oldbmp, String path)
{
System.Drawing.Bitmap bm8Bit;
using (MemoryStream ms = new MemoryStream())
{
oldbmp.Save(ms, ImageFormat.Gif);
ms.Position = 0;
bm8Bit = (System.Drawing.Bitmap) System.Drawing.Image.FromStream(ms);
bm8Bit.SetResolution(600, 600);
bm8Bit.Save(path, System.Drawing.Imaging.ImageFormat.Bmp);
return;
}
}
</script>
我认为你只能在新的位图上设置分辨率,以前没有保存过,所以如果你有现有的位图,你需要复制它到新的位图实例:
Bitmap imgCopy = new Bitmap(img);
imgCopy.SetResolution(600.0f,600.0f);
阅读这里:http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.setresolution.aspx
使用此方法在新创建的位图上设置所需的分辨率。更改图像的分辨率不会改变其物理大小。
尝试编写我们自己的解决方案总是好的,但是他们有一个可用的库,它很容易实现并且工作非常好
你可能想使用它,你可以从这里下载,它也有很好的文档。
http://imageresizing.net/download