加入收藏 | 设为首页 | 会员中心 | 我要投稿 草根网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php png失真的原因及解决方法

发布时间:2023-02-03 11:11:51 所属栏目:PHP 来源:
导读: php png失真的原因及解决方法:


  1、创建一个PHP示例文件。
  
  2、创建一个和背景图片一样大小的真彩色画布。
  
  3、复制背景图片。
  
  4、通过“imagecreatefrompng&rdqu
     php png失真的原因及解决方法:


  1、创建一个PHP示例文件。
  
  2、创建一个和背景图片一样大小的真彩色画布。
  
  3、复制背景图片。
  
  4、通过“imagecreatefrompng”合成png图片即可。
  
  实例
  <?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);
  更多相关解决方法
  
  PHP解决合并图片失真问题
  $ni = imagecreatetruecolor($toW,$toH); //创建真彩色图片
  $bg_x = (($toW-$ftoW)/2);
  $bg_y = (($toH-$ftoH)/2);
  $color=imagecolorallocate($ni,255,255,255); //创建颜色
  imagefill($ni, 0, 0, $color); //设置白底
  imagecopy($ni,$tm,$bg_x,$bg_y,0,0,$ftoW,$ftoH); //合并图片
  imagedestroy($tm);
 

(编辑:草根网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章