我想裁剪部分图像,然后将结果写入另一个图像文件。我的代码看起来像这个
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来写Image?和MagickImage.setFileName对我来说没有意义。我认为我们应该创建一个新的ImageInfo对象,然后写入该ImageInfo。以下代码更有意义,但不能按预期工作。
MagickImage result = image.cropImage(cropInfo);
ImageInfo resulInfo = new ImageInfo("path to new file");
boolean s = result.writeImage(imageInfo);
有人经历过这种情况吗?
保留原始ImageInfo对我来说很不方便,所以我尝试了这个,它也起了作用:
result.setFileName("path to result file");
boolean s = result.writeImage(new ImageInfo());
至于为什么需要这个参数,仍然是个谜。Null无效。