欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

去除图片周围的空白

程序员文章站 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(要处理的图片)

回车,就搞定了。处理后的文件会覆盖源文件,所以一定要做好备份工作。

具体的细节,大家可以按着我这个思路去查看软件的文档。


转载请注明出处,谢谢。