【发布时间】:2012-02-07 20:08:11
【问题描述】:
我正在对图像使用裁剪和调整大小功能,但我需要让它只裁剪/调整具有透明背景的 png 文件,图像中至少 1 个像素应该是透明的才能被接受。
是否可以检查 PNG 图像是否具有透明背景/像素?
我正在使用 PHP 和 GD 库。
编辑:好的,我已经知道如何在带有 GD 库的 PHP 上做到这一点。看看它看起来多么干净! :)
<?php
$im = imagecreatefrompng("php.png");
$rgba = imagecolorat($im,1,1);
$alpha = ($rgba & 0x7F000000) >> 24;
var_dump($alpha);
?>
任何想法如何为 x/y 坐标创建一个数组以检查所有图像像素,寻找至少 1 个像素 = $alpha = 127?
【问题讨论】:
-
有可能,例如通过详尽的检查,但是否有特定的 PNG 框架或语言您想参考答案?
-
逐像素检查是否会花费太多处理时间?我试试看。
-
这取决于图像大小...通常,如果您处理许多大文件,那么可以 - 这将是太多的处理时间...
-
我想通了!只需要学习如何为图像上的每个像素创建一个数组或循环。你能帮忙吗?
标签: resize png transparent crop