php Solution to png distortion: 1. Create a PHP sample file; 2. Create a true color canvas with the same size as the background image; 3. Copy the background image; 4. Synthesize png images through "imagecreatefrompng" That’s it.
The operating environment of this article: Windows 7 system, PHP version 7.1, DELL G3 computer
What should I do if php png is distorted?
Solution to PHP synthetic png image distortion and text centering
The code is as follows:
<?php ob_clean(); $bg = "image1.png"; $image_1 = imagecreatefrompng($bg); $bgx = imagesx($image_1); $bgy = imagesy($image_1); //创建一个和背景图片一样大小的真彩色画布(ps:只有这样才能保证后面copy图片的时候不会失真) $bgimage = imageCreatetruecolor($bgx,$bgy); imagesavealpha($bgimage, true);//保持透明 imagealphablending($bgimage, true);//混色模式 $alpha = imagecolorallocatealpha($bgimage, 0, 0, 0, 127);//透明 imagefill($bgimage, 0, 0, $alpha); //copy背景图片 imagecopyresampled($bgimage,$image_1,0,0,0,0,$bgx,$bgy,$bgx,$bgy); $fontColor = imagecolorallocate($bgimage,0x33,0x33,0x33); $image_2 = imagecreatefrompng( "image2.png"); //合成图片2 imagecopyresampled($bgimage, $image_2, 100, 100, 0, 0, 40, 40, imagesx($image_2) , imagesy($image_2)); //文字 $textLen = mb_strlen($text1); $fontSize = 20; $fontWidth = imagefontwidth($fontSize)*3;//不知为什么,实测如此 $textWidth = $fontWidth * mb_strlen($text1); $textx = ceil ( ($bgx - $textWidth) / 2 ); imageTTFText($bgimage, $fontSize, 0, $textx, 450, $fontColor, $font , $text1); $result = imagepng($bgimage,"newimage.png"); imagedestroy($bgimage); imagedestroy($qrcode);
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of What to do if php png is distorted. For more information, please follow other related articles on the PHP Chinese website!