去除图片周围的空白
程序员文章站
2022-07-13 14:09:36
...
转载请注明出处,谢谢。
一图顶万言,我们有时需要去除左边的图片黄色星星周围的大片空白,得到右边黄色星星紧凑的图片。
如果只有一两张图片,手动就可以。但我的情况是有2000多张图片,就需要一个“批处理”方法。
我搜索了大半天,得到2个方法:
1、https://*.com/questions/45609697/crop-a-png-image-with-php-remove-empty-transparency
利用php-gd里面的函数imagecropauto去除周边空白。但是这个方法对png图片有要求,我的项目中的png图片是透明背景的,但是必须把图片放到powerpoint里面,利用 “颜色”=>‘设置透明色’,用画笔在白色背景处点一下,另存图片,再利用下面的php imagecropauto方法才能成功。而我不可能把2000多张图片手动一张一张处理。这个方法只能作为日后有可能会用到的备用方案记下来。
<body>
<img src="star-with-alpha.png">
<?php
$im = imagecreatefrompng("./star-with-alpha.png");
$cropped = imagecropauto($im, IMG_CROP_DEFAULT);
if ($cropped !== false) { // in case a new image resource was returned
imagedestroy($im); // we destroy the original image
$im = $cropped; // and assign the cropped image to $im
}
imagepng($im, "./star-with-alpha-crop.png");
imagedestroy($im);
?>
<img src="star-with-alpha-crop.png">
</body>
2、利用imagemagick这个软件。下载windows版本,安装的时候所有选项都选上。手头的图片做好备份。
进入windows cmd命令行,进入图片所在文件夹,输入
mogrify -trim +repage *.png(要处理的图片)
回车,就搞定了。处理后的文件会覆盖源文件,所以一定要做好备份工作。
具体的细节,大家可以按着我这个思路去查看软件的文档。
转载请注明出处,谢谢。