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

发布于 2022-09-07 00:06:09 字数 1410 浏览 39 评论 0

使用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; 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

酷到爆炸 2022-09-14 00:06:09

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

彼岸花似海 2022-09-14 00:06:09

解决了吗,老哥

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文