php縮放png圖片時保持透明度的代碼
做站點時,通常要將圖片縮小成合適的尺寸,jpg圖片縮小比較容易,png圖片如果帶了透明色的話,按照jpg的方式來縮小的話,就會造成透明色損失。那么如何處理,才能保存透明色呢?
主要是利用gd庫的兩個方法:
imagecolorallocatealpha 分配顏色 + alpha
imagesavealpha 設置在保存 png 圖像時保存完整的 alpha 通道信息
//獲取源圖gd圖像標識符 $srcImg = imagecreatefrompng('./src.png'); $srcWidth = imagesx($srcImg); $srcHeight = imagesy($srcImg);//創建新圖 $newWidth = round($srcWidth / 2); $newHeight = round($srcHeight / 2); $newImg = imagecreatetruecolor($newWidth, $newHeight); //分配顏色 + alpha,將顏色填充到新圖上 $alpha = imagecolorallocatealpha($newImg, 0, 0, 0, 127); imagefill($newImg, 0, 0, $alpha);
//將源圖拷貝到新圖上,并設置在保存 PNG 圖像時保存完整的 alpha 通道信息 imagecopyresampled($newImg, $srcImg, 0, 0, 0, 0, $newWidth, $newHeight, $srcWidth, $srcHeight); imagesavealpha($newImg, true); imagepng($newImg, './dst.png');</pre>
本文由用戶 fn2n4 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!