相关疑难解决方法(0)

使用imagecopyresampled()PHP GD圆角透明_smooth_角

我需要一个脚本,在提供的图像上形成圆角透明角.我找到了一个,它除了一件事之外它的效果很好:应用的角落看起来不平滑.imageantialias()由于PHP在Debian上运行并且重新编译它不是一个选项,因此抛出致命错误.

我发现使这些角落看起来平滑的技巧是调整图像大小imagecopyresampled(),如下所示:

  1. 准备图像;
  2. imagecopyresample它到10倍大小;
  3. 用特殊颜色画角;
  4. 使颜色透明;
  5. 将图像缩小到原始大小

但问题出现了:结果图像的角落(在步骤5之后)是平滑的,但不是透明的.当在步骤4之后发送输出图像时(即在减小它的尺寸之前) - 一切都应该如此.

这是负责使角落四舍五入的代码的一部分:

    //    $dest = image resource


        $q=10;
        // making everything 10x bigger
        $new_width=$width*$q;
        $new_height=$height*$q;
        $radius=$radius*$q;

        $magnified=imagecreatetruecolor($new_width, $new_height);
        imagecopyresampled($magnified, $dest, 0,0, 0,0, $new_width,$new_height, ($new_width/$q),($new_height/$q));

        // picking the unique colour
        $found = false;
        while($found == false) {
            $r = rand(0, 255);
            $g = rand(0, 255);
            $b = rand(0, 255);
            if(imagecolorexact($magnified, $r, $g, $b) != (-1)) {
                $found = true;
            }
        }
        $colorcode …

php png transparency gd rounded-corners

11
推荐指数
2
解决办法
8427
查看次数

PHP减少所有图像类型的质量

我正在寻找一个可以降低所有图像类型质量的库(PNG,GIF和JPEG).
我知道我可以减少JPEG使用imagejpeg()
我也知道我可以减少使用PNG imagepng()虽然这不够强大.

我需要能够在不删除alpha的情况下将PNG 24转换为PNG8的东西.

无法使用ImageMagick,因为我无法在我的服务器上安装任何东西.

编辑:
我还需要一些可以从32位转换为8位的东西(我很确定它与32位相同)

这里找到了灵魂

谢谢

php compression image image-compression

5
推荐指数
1
解决办法
4872
查看次数