我正在使用Graphics Magick调整图像大小,然后使用循环在该图像上执行多个裁剪。第二次裁剪命令运行时,它失败并显示:Command failed: gm convert: geometry does not contain image (unable to crop image).
这是我的循环代码:
var resizedImage = gm(pathToTemporaryImage).resize(maxSize, maxSize);
resizedImage.size(function(error, size) {
for (var x = 0; x < size.width; x += kGridSize) {
for (var y = 0; y < size.height; y += kGridSize) {
// Calculate the grid element width and height
var width = Math.min(kGridSize, size.width - x);
var height = Math.min(kGridSize, size.height - y);
resizedImage.page(0, 0, '+0+0')
.crop(width, height, x, y)
.quality(Math.min(frameTick.quality, 100))
.write(pathToImage + '-' + x + '-' + y + '.jpg', callback(x, y));
}
}
}
答案 0 :(得分:1)
我没有缓存resizedImage
,而是在调整大小后将图像写入磁盘并在裁剪和重写之前将其加载回来。
删除了.page(0, 0, '+0+0')
的引用,就是这种情况。