GD库生成的图片,剪切圆形图时自带黑边框

使用PHP的GD库生成海报,再对二维码剪切成圆形放到指定位置,代码都是我网上找到拼在一起的,但是现在还是遇到二维码已经剪切成圆形了,但是图片竟然自带黑边框。本地生成的图片是透明的,所以问下有没有解决办法。谢谢了。
问题:

clipboard.png

本地生成的图片:

clipboard.png

代码:
$w = 200; $h=200; // original size

    $original_path= $url;  
    $dest_path = $path.uniqid().'.png';  
    $src = imagecreatefromstring(file_get_contents($original_path));  
    $per = 2.6;
    $w = $w*$per;
    $h = $h*$per;
    $newpic = imagecreatetruecolor($w,$h);  
    imagealphablending($newpic,false);  
    $transparent = imagecolorallocatealpha($newpic, 255, 255, 255, 127);  
    $r=$w/2;  
    for($x=0;$x<$w;$x++)  
      for($y=0;$y<$h;$y++){  
          $c = imagecolorat($src,$x,$y);  
          $_x = $x - $w/2;  
          $_y = $y - $h/2;  
          if((($_x*$_x) + ($_y*$_y)) < ($r*$r)){  
              imagesetpixel($newpic,$x,$y,$c);  
          }else{  
              imagesetpixel($newpic,$x,$y,$transparent);  
          }  
      }  
    imagesavealpha($newpic, true);  
    imagepng($newpic, $dest_path);  
    imagedestroy($newpic);  
    imagedestroy($src);  
    return $dest_path; 
阅读 4.3k
2 个回答

设置一个header("Content-type:image/png")试试?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题