去除图片周围的空白

转载请注明出处,谢谢。

一图顶万言,我们有时需要去除左边的图片黄色星星周围的大片空白,得到右边黄色星星紧凑的图片。

如果只有一两张图片,手动就可以。但我的情况是有2000多张图片,就需要一个“批处理”方法。


我搜索了大半天,得到2个方法:

1、https://stackoverflow.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(要处理的图片)

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

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


转载请注明出处,谢谢。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值