使用 Imagick 裁剪除底部 10% 以外的所有图像
Crop all but bottom 10% of image with Imagick
我正在阅读 8.5 x 11" PDF 并创建 jpg 缩略图。
我想裁剪掉图像底部大约 10% 的部分。 (基本上只想要最后的页脚)
$pdf_file = $file;
$save_to = 'bottom.jpg';
$img = new imagick();
$img->setResolution(300,300);
$img->readImage("{$pdf_file}[0]");
$img->scaleImage(800,0);
$img->setImageFormat('jpg');
$img = $img->flattenImages();
$img->cropImage(0,0,0,350);
$img->writeImages($save_to, false);
echo '<img src="bottom.jpg">';
上述代码的输出生成了一个显示页脚的 jpg,但图像为 800px W X 685px H,页脚顶部为白色 space。
我只想要 800px W X 大约 200px H 的页脚。
我不确定为什么要将零传递给裁剪函数 3 次。参数应该是:
- width - 裁剪的宽度
- height - 作物的高度
- x - 裁剪区域左上角的 X 坐标
- y - 裁剪区域左上角的 Y 坐标
所以这应该可以满足您的要求:
$img->cropImage(
$image->getImageWidth(),
350,
0,
$image->getImageHeight() - 350
);
我正在阅读 8.5 x 11" PDF 并创建 jpg 缩略图。
我想裁剪掉图像底部大约 10% 的部分。 (基本上只想要最后的页脚)
$pdf_file = $file;
$save_to = 'bottom.jpg';
$img = new imagick();
$img->setResolution(300,300);
$img->readImage("{$pdf_file}[0]");
$img->scaleImage(800,0);
$img->setImageFormat('jpg');
$img = $img->flattenImages();
$img->cropImage(0,0,0,350);
$img->writeImages($save_to, false);
echo '<img src="bottom.jpg">';
上述代码的输出生成了一个显示页脚的 jpg,但图像为 800px W X 685px H,页脚顶部为白色 space。
我只想要 800px W X 大约 200px H 的页脚。
我不确定为什么要将零传递给裁剪函数 3 次。参数应该是:
- width - 裁剪的宽度
- height - 作物的高度
- x - 裁剪区域左上角的 X 坐标
- y - 裁剪区域左上角的 Y 坐标
所以这应该可以满足您的要求:
$img->cropImage(
$image->getImageWidth(),
350,
0,
$image->getImageHeight() - 350
);