我在我的ASP.NET项目中使用Magicknet进行图像处理。我如何获取和设置图像的图像分辨率?-当我调整300像素/英寸的图像时,默认情况下显然会导致72像素/英寸的图像,并且因为我保持相同的大小,所以我得到的图像质量非常低。所以我需要能够保持图像的ppi。
我还想补充一点,这可能会导致magicknet或System.Drawing.Image,但我不是100%确定。
我使用的代码:
img.ModulusDepth = 10;
img.Compression = CompressionType.JPEGCompression;
img.Quality = 80;
string optimizedImage = System.Web.HttpContext.Current.Server.MapPath(".") + "\\temp\\" + Guid.NewGuid().ToString() + ".jpg";
img.Write(optimizedImage); // save optimized image as temp file
Magick.Term();
System.Drawing.Image tempimage = System.Drawing.Image.FromFile(optimizedImage); // load the optimized image into an image objec
从我在这里读到的,默认为每英寸72像素。
谢谢
2条答案
按热度按时间ghhkc1vu1#
使用MagickImage类
Density
属性。实施例:
Density类还有一些其他的构造函数重载可用。
pw9qyyiw2#
图像DPI在web的上下文中是相当不相关的;这是一个被所有浏览器和几乎所有打印机忽略的元数据设置。
像素是你必须使用的单位;DPI是一个泄漏的抽象,每个库和UI都有不同的处理方式。
你可以also consider using a server-safe alternative to Magicknet。