如何在 PHP 中调整具有透明度的 PNG 图像而不丢失 Alpha
尝试在 PHP 中调整具有透明度的 PNG 图像大小时,许多用户遇到问题背景颜色变为黑色。本文将解决这个问题并提供解决方案。
关键在于在分配透明度之前适当设置图像混合模式和 Alpha 通道保存标志。
以下是更新的代码:
function resizePNG($image, int $newWidth, int $newHeight) { // Create a new true color image $newImg = imagecreatetruecolor($newWidth, $newHeight); // Disable blending and enable alpha saving imagealphablending($newImg, false); imagesavealpha($newImg, true); // Allocate transparent color $transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127); // Fill the new image with transparent color imagefilledrectangle($newImg, 0, 0, $newWidth, $newHeight, $transparent); // Get the width and height of the original image $src_w = imagesx($image); $src_h = imagesy($image); // Copy and resize the original image onto the new image imagecopyresampled($newImg, $image, 0, 0, 0, 0, $newWidth, $newHeight, $src_w, $src_h); // Return the new resized image return $newImg; }
使用此更新的代码,可以在不影响 Alpha 通道的情况下调整具有透明度的 PNG 图像的大小,从而确保保留透明度。
以上是如何在 PHP 中调整 PNG 的透明度而不丢失 Alpha?的详细内容。更多信息请关注PHP中文网其他相关文章!