asp.net Magicknet获取和设置图像分辨率(PPI)

kyvafyod  于 2023-04-13  发布在  .NET
关注(0)|答案(2)|浏览(284)

我在我的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像素。
谢谢

ghhkc1vu

ghhkc1vu1#

使用MagickImage类Density属性。
实施例:

magickImageObj.Density = new Density(150, DensityUnit.PixelsPerInch);

Density类还有一些其他的构造函数重载可用。

pw9qyyiw

pw9qyyiw2#

图像DPI在web的上下文中是相当不相关的;这是一个被所有浏览器和几乎所有打印机忽略的元数据设置。
像素是你必须使用的单位;DPI是一个泄漏的抽象,每个库和UI都有不同的处理方式。
你可以also consider using a server-safe alternative to Magicknet

相关问题