在 PHP 中,可以使用 GD 庫或 ImageMagick 庫來批量處理圖片的透明色。這里我將分別為您展示這兩種方法的實現過程。
function image_transparent($image_path, $output_path, $color = [255, 255, 255]) {
$image = imagecreatefrompng($image_path);
$width = imagesx($image);
$height = imagesy($image);
$transparent = imagecolorallocatealpha($image, $color[0], $color[1], $color[2], 127);
for ($x = 0; $x < $width; $x++) {
for ($y = 0; $y < $height; $y++) {
$rgb = imagecolorat($image, $x, $y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
if ($r == $color[0] && $g == $color[1] && $b == $color[2]) {
imagesetpixel($image, $x, $y, $transparent);
}
}
}
imagesavealpha($image, true);
imagepng($image, $output_path);
imagedestroy($image);
}
$images = glob('path/to/your/images/*.png');
foreach ($images as $image) {
image_transparent($image, 'path/to/output/' . basename($image));
}
首先確保已經安裝了 ImageMagick 的 PHP 擴展。然后,可以使用以下代碼批量處理圖片的透明色:
function image_transparent($image_path, $output_path, $color = '#FFFFFF') {
$imagick = new Imagick($image_path);
$imagick->setImageBackgroundColor(new ImagickPixel('transparent'));
$imagick->transparentPaintImage($color, 0, 0, false);
$imagick->writeImage($output_path);
$imagick->clear();
$imagick->destroy();
}
$images = glob('path/to/your/images/*.png');
foreach ($images as $image) {
image_transparent($image, 'path/to/output/' . basename($image));
}
這兩個示例都會將指定目錄下的所有 PNG 圖片進行透明色處理,并將處理后的圖片保存到另一個目錄。您可以根據需要修改 $color
參數以更改要處理的顏色。