ImageMagick的“convert”实用程序在Magick ++中的等效物是什么?

5

如果标题不太清楚,请见谅。

目前,imagemagick转换工具上的以下参数非常适合我的需求。我正在尝试将一个.svg文件放大,并将其写成.png文件。

 convert -density 36  home.svg  home_1.png

很不幸,我需要使用Magick++(ImageMagick的C++接口/API),但我似乎无法在Magick++中找到相应的操作。

有没有熟悉ImageMagick的专家能够帮助我解决这个问题?

我目前的代码如下:

image.density(Geometry(36,36));

    image.read( "Character.svg" );

    image.write( "xx.png" ); 

我尝试过移动image.density()的位置,但我的图像从未改变。它只是被光栅化并保存为png。

1个回答

2

虽然我不是ImageMagick专家,但当我尝试这段代码时:

#include <Magick++.h>

int main(int argc, char **argv) {
  Magick::Image img;
  img.density(Magick::Geometry(36,36));
  img.read(argv[1]);
  img.write(argv[2]);

  img.density(Magick::Geometry(72,72));
  img.read(argv[1]);
  img.write(argv[3]);
}

使用此SVG文件,例如:

$ ./resize example.svg out_small.png out_large.png

在 Windows 7 上通过 cygwin,out_small.png 文件的尺寸为 300x300 像素,而 out_large.png 文件的尺寸为 600x600 像素。


哇,那很有趣。当我在环境中尝试几乎相同的代码时,它不起作用。使用你使用的相同SVG示例,我的输出都是600x600像素。我正在使用MSVC,所以可能有bug? - Brad
当然,MSVC在这方面可能会出现一些问题。我很好奇这对其他输入/输出文件格式是否有效,或者是否有任何图像修改器工作。 - Nate Kohl
我尝试了一些其他的修饰符,比如zoom(),它似乎可以工作,所以我认为MSVC只是在处理SVG/密度方面有问题。 - Brad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接