无法为 png 文件 ImageMagick 设置 DPI

Unable to Set DPI for png files ImageMagik

我正在使用 ImageMagik 6.7.8 c++ 库从原始图像创建图像。问题是我无法为文件类型 "png" 设置 DPI。而它与 jpeg,tiff 完美配合。以下是示例代码

Magick::Image output;
Magick::Blob outputBlob;
output.read(geometry->getWidth(), geometry->getHeight(), "RGBA", Magick::CharPixel, buffer.get()); // Buffer is the raw image
output.resolutionUnits(PixelsPerInchResolution);
const Magick::Geometry gm(150,150);
output.density(gm);
// Write final
output.write(&outputBlob, "PNG");

如果我在调用中将 PNG 替换为 JPG 或 TIFF output.write 我会看到正确的 DPI

我们观察到 header 确实包含我们在 Photoshop 或 IrfanView 中查看时的 DPI 信息。但是由于未知原因,它在 ms paint

中不可见