草庐IT

PHP PNG 24 位透明透明

coder 2024-04-29 原文

我一直在尝试让 PNG 上传具有干净的 24 位 alpha 透明度。在做了很多研究之后,我已经设法让它工作了,但是透明度似乎是低质量的 8 位,正如您在这个屏幕截图中看到的那样:

http://cozomo.com/apple.png

任何有助于实现干净的 PNG 上传和调整 24 位平滑透明度的大小的帮助将不胜感激。我当前的代码如下。

if($extension=="png")
    {
        $uploadedfile = $_FILES['photo']['tmp_name'];
        $src = imagecreatefrompng($uploadedfile);
    }

        $dest_x = 1400; 
        $dest_y = 1200;

        if ($width > $dest_x or $height > $dest_y) { 

                if ($width >= $height) { 
                    $fullSize_x = $dest_x; 
                    $fullSize_y = $height*($fullSize_x/$width); 
                } else { 
                    $fullSize_x = $width*($fullSize_y/$height); 
                    $fullSize_y = $dest_y; 
                } 
        }

        $fullSize=imagecreatetruecolor($fullSize_x,$fullSize_y);

    //TEST
    $black = imagecolorallocate($fullSize, 0, 0, 0);
    imagecolortransparent($fullSize, $black);
    //TEST END

    // OUTPUT NEW IMAGES
    imagecopyresampled($fullSize,$src,0,0,0,0,$fullSize_x,$fullSize_y,$width,$height);

    imagepng($fullSize, "/user/photos/".$filename);

    imagedestroy($fullSize);


  [1]: http://i.stack.imgur.com/w8VBI.png

最佳答案

要保存完整的 alpha channel ,您必须使用 imagesavealpha , 在你保存 png 之前放这个

imagealphablending($fullSize, false);
imagesavealpha($fullSize, true);

关于PHP PNG 24 位透明透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11146955/

有关PHP PNG 24 位透明透明的更多相关文章

  1. AT24C04、AT24C08、AT24C16系列EEPROM芯片单片机读写驱动程序 - 2

    一、概述在之前的一篇博文中,记录了AT24C01、AT24C02芯片的读写驱动,先将之前的相关文章include一下:1.IIC驱动:4位数码管显示模块TM1637芯片C语言驱动程序2.AT24C01/AT24C02读写:AT24C01/AT24C02系列EEPROM芯片单片机读写驱动程序本文记录分享AT24C04、AT24C08、AT24C16芯片的单片机C语言读写驱动程序。二、芯片对比介绍型号容量bit容量byte页数字节/页器件寻址位可寻址器件数WordAddress位数/字节数备注AT24C044k5123216A2A149/1WordAddress使用P0位AT24C088k1024

  2. ruby - 在 Ruby 中将 12 小时制转换为 24 小时制 - 2

    如何将“11am”和“10pm”转换为“11:00”和“22:00”?有使用日期和时间类的简单方法吗? 最佳答案 我会先用Time#strptime解析字符串,然后用Time#strftime输出它。这也确保了对原始格式的严格检查。require'time'Time.strptime("10pm","%I%P").strftime("%H:%M")=>"22:00" 关于ruby-在Ruby中将12小时制转换为24小时制,我们在StackOverflow上找到一个类似的问题:

  3. ruby - RMagick 从图像中删除白色背景并使其透明 - 2

    我需要从此图像中删除白色背景并使背景透明。所以它只是导出为png的透明背景上的黑色勾号。例如转动进入有什么想法吗? 最佳答案 convertimage.png-matte-fillnone-fuzz1%-opaquewhiteresult.png用透明替换任何白色。模糊选项包括几乎是白色的任何东西。 关于ruby-RMagick从图像中删除白色背景并使其透明,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

  4. UnityShader(六)透明效果 - 2

    一、如何实现透明效果在Unity中实现透明效果的方式有两种,其一是透明度测试,其二是透明度混合。透明度测试:这种方式不需要关闭深度写入,且实现机制非常简单粗暴。只要一个片元的透明度不满足条件(比如小于某个值),则该片元会被直接舍弃,否则就按照不透明物体的处理方式来处理。它产生的效果要么是完全不透明,要么是完全透明,并不是真正的半透明效果。透明度混合:这种方式会使用当前片元的透明度作为混合因子,与颜色缓冲中的颜色进行混合。这就需要关闭深度写入。而关闭深度写入意味着我们需要非常小心物体的渲染顺序,否则可能出现渲染问题。为什么要关注渲染顺序在之前的Shader中我们并没有关心过物体渲染顺序的问题。这

  5. 在保持文本不透明度的同时,可以使用仅使用HTML制作一个透明的容器? - 2

    我想在保持文本/图像不透明的同时使我的容器背景透明。只能使用HTML做到这一点吗?这是我的代码:看答案我看到了您的问题,如果我正确理解您,我想我知道您可以做什么。我注意到的一件事是,在我进一步走之前,看起来您正在使用引导程序代码。如果您更改了可能与此相关的CSS样式表,则可能会更好,更有效,也可能不会破坏整体代码的其他元素,但是让我们看看我的解决方案是否对您有效。基本上您想做的是:1)在您的HTML中编写一个“样式”标签,然后在其中放入样式(CSS)属性(您可以将其放入HTML代码的标题中以更好地跟踪它)。2)使用提供背景颜色的“RGBA”格式,并将其不透明度为“0”作为代码段的第四值。因此,

  6. javascript - 即时客户端图像到 webp 转换器......但 png 不透明 - 2

    这是将jpg或png转换为webp的工作代码谷歌的新图像格式平均比jpg或png小30-40%1.用Chrome打开2.设置质量3.在页面内放置图片4.等待(取决于大小..先尝试小图片)5.悬停图片查看大小差异6.要将其正确保存为webp,只需单击它基本上chrome添加了将图像/webp和质量添加到toDataURL函数的可能性canvas.toDataURL('image/webp',quality(0-1))压缩很棒。但我有一个小问题...png不透明..它会是什么?也许将Canvas设置为透明?怎么办?html,body{width:100%;height:100%;margi

  7. javascript - Phaser 3补间不透明度? - 2

    我正在尝试将Sprite从一点补间到另一点,并让它在移动时逐渐消失。我试过这个:consttween=game.tweens.add({targets:[log.sprite],x:fire.x,y:fire.y+(fire.height*0.2),opacity:0,duration:300,repeat:0,onComplete(){destroyLog(log);resolve();},});但这行不通。我很难找到适合Phaser3的API文档,所以我不确定应该在哪里寻找这些信息。 最佳答案 您可能应该使用alpha而不是op

  8. javascript - 如何使用 javascript/jQuery 获取透明元素的有效背景颜色 - 2

    基本上,我在页面上有一个元素可以插入多个不同的位置。它没有设置背景颜色,但根据插入位置的背景颜色,我可能想对其进行一些更改。我的问题是:如何为元素获取有效的背景色,即使该背景色可能是从父级继承的(可能一直到主体)。这是一个简化的示例,我想在其中找到.color-me的背景颜色what'smybackground-color?还有一个代码笔:http://codepen.io/evanhobbs/pen/FbAnL/ 最佳答案 考虑到一些(非常重要的)注意事项,这是可能的。zzzzBov在对问题的评论中很好地总结了它们:...thec

  9. javascript - jquery UI datepicker透明背景 - 2

    这似乎是一个常见问题,但我尝试了很多答案,但没有一个对我有用。我正在使用jqueryUI日期选择器。似乎有些不对劲。这就是我的看法。我在我的文件中包含了以下内容jquery-1.11.2.min.jsjquery-ui.min.js(版本1.11.4)jquery-ui.min.css(版本1.11.4)我也试过下面的css但没有用。.ui-datepicker{background:#fff!important;z-index:10000;}如何让它看起来正常? 最佳答案 我用基本的日期选择器主题和彩色背景(如果你愿意,也可以是透

  10. javascript - 使用Canvas将不透明像素变成白色 - 2

    我正在寻找一种方法来拍摄图像(Logo、应用程序图标等)并使用javascript/canvas将它们转换为白色(不包括透明度)。这是我想要的示例(显然使用静态图像):http://jsfiddle.net/4ubyj/ 最佳答案 CanvasAPI具有专门用于“仅在原始图像中不透明的像素上绘制”之类的合成方法。这比弄乱图像数据要容易得多。jsFiddle示例(现在带有内联图像)向@WilliamVanRensselaer最初的fiddle致敬。您想要的复合操作是source-in,这意味着“仅在绘制图像中不透明像素之上绘制我要绘制

随机推荐