我想裁剪图像的一部分,然后将结果写入另一个图像文件。我的代码是这样的

ImageInfo imageInfo = new ImageInfo("file path");
MagickImage image = new MagickImage(imageInfo );

Rectangle cropInfo = new Rectangle();
cropInfo.x = 20;
cropInfo.y = 20;
cropInfo.width = 300;
cropInfo.height = 300;

MagickImage result = image.cropImage(cropInfo);

result.setFileName("path to result file");
boolean s = result.writeImage(imageInfo);

上面的代码只起作用,但是为什么要使用旧的imageinfo来编写页面呢?而magickimage.setfilename对我来说没有意义。我认为我们应该创建一个新的imageinfo对象,然后写入该imageinfo。下面的代码更有意义,但不能按预期工作。
MagickImage result = image.cropImage(cropInfo);
ImageInfo resulInfo = new ImageInfo("path to new file");
boolean s = result.writeImage(imageInfo);

有人体验过吗?

最佳答案

保留原始图像信息对我来说很不方便,所以我尝试了这个方法,它也起了作用:

result.setFileName("path to result file");
boolean s = result.writeImage(new ImageInfo());

至于为什么需要这个参数,仍然是个谜。空将不起作用。

09-05 17:04