ホームページ >バックエンド開発 >PHPチュートリアル >PHP でアルファを失わずに透明度を保ったまま PNG のサイズを変更するにはどうすればよいですか?
アルファを失わずに PHP で透明度を指定して PNG のサイズを変更する方法
PHP で透明度を指定して PNG 画像のサイズを変更しようとすると、多くのユーザーが問題に遭遇します背景色が黒に変わります。この記事では、この問題に対処し、解決策を提供します。
重要なのは、透明度を割り当てる前に、画像ブレンド モードとアルファ チャネル保存フラグを適切に設定することです。
更新されたコードは次のとおりです。
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; }
この更新されたコードを使用すると、アルファ チャネルに影響を与えることなく透明度のある PNG 画像のサイズを変更でき、透明度が確実に保持されます。
以上がPHP でアルファを失わずに透明度を保ったまま PNG のサイズを変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。