You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET5.0/6.0中不依赖System.Drawing.Common读写图像分辨率

解决方案

方案1:使用Magick.NET(全格式一站式支持)

Magick.NET是跨平台图像处理库,底层基于ImageMagick,原生兼容Windows、macOS、Linux,同时支持.NET5/.NET6,可覆盖你需要的JPEG、PNG、BMP、单/多页TIFF四种格式的分辨率读写需求,无需自行适配多格式差异。
使用步骤如下:

  • 安装NuGet包:跨平台通用场景直接安装Magick.NET-Q16-AnyCPU即可,包内已携带各平台原生依赖,无需额外在操作系统中安装其他组件。
  • 读取分辨率示例代码:
using ImageMagick;

// 单文件分辨率读取(支持JPG/PNG/BMP/单页TIFF)
using var image = new MagickImage("你的文件路径");
double horizontalDpi = image.Density.X; // 水平DPI
double verticalDpi = image.Density.Y; // 垂直DPI

// 多页TIFF逐页读取分辨率
using var tiffCollection = new MagickImageCollection("多页TIFF路径");
foreach (var page in tiffCollection)
{
    var pageHdpi = page.Density.X;
    var pageVdpi = page.Density.Y;
    // 单页业务逻辑
}
  • 设置分辨率示例代码:
using ImageMagick;

// 单文件分辨率设置
using var image = new MagickImage("源文件路径");
// 设为300DPI,DensityUnit.PixelsPerInch对应常用的DPI单位
image.Density = new Density(300, 300, DensityUnit.PixelsPerInch);
image.Write("保存路径");

// 多页TIFF逐页设置分辨率
using var tiffCollection = new MagickImageCollection("多页TIFF路径");
foreach (var page in tiffCollection)
{
    page.Density = new Density(300, 300, DensityUnit.PixelsPerInch);
}
tiffCollection.Write("修改后的多页TIFF路径");

方案2:组合使用ImageSharp + BitMiracle.LibTiff.NET

如果对程序体积有要求,不想引入Magick.NET的完整依赖,可以拆分格式处理逻辑:

  • JPEG、PNG、BMP三种格式用ImageSharp处理分辨率读写
  • TIFF格式单独用跨平台库BitMiracle.LibTiff.NET处理,该库原生支持单页/多页TIFF的元数据读写,兼容.NET5/.NET6和全平台

该方案的内存占用和执行速度优于Magick.NET,但需要自行适配不同格式的处理逻辑。

内容的提问来源于stack exchange,提问作者Whiletrue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:27:03