问题标签 [gd2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - php中的imagecopyresampled - 预乘alpha问题
对于使用 alpha 值的缓冲区,我对 imagecopyresampled 有疑问。显然,该算法在过滤之前预乘了像素的 alpha 值,这会导致对象周围出现黑色边框。
重现步骤:
拍摄一张在 RGB 部分完全是白色的图像,并且在 Alpha 部分的黑色背景上有一个(抗锯齿!!)白色圆圈(用一个圆圈,而不是一个正方形!)白色和全黑像素,以及由于抗锯齿在圆的边界上的一些渐变像素 - 这意味着输入图像没有预乘 - 它是直的/无遮罩的,因为图像的 RGB 部分是完全白色的)。
使用 imagecopyresampled 将图像缩小一半
在全白图像上合成结果
我所期望的:完全白色的图像
我得到了什么:圆圈轮廓周围的灰色边框
我很确定这是由于缩小算法中的预乘 alpha(该算法将像素 alpha 值与其 rgb 值相乘以计算新的 rgb 值 - 因此白色像素将变为灰色)
有谁知道这个的workarround?
php - 如何处理图像的 mime 类型“application/octet-stream”?
我有一个功能可以即时制作 url 图像的缩略图!我总是将 jpg 类型的图像传递给此函数,但是当我传递带有“.jpg”扩展名的图像时会出现问题。但是当我尝试获取它的 mime 类型时,我发现它是“ application/octet-stream ” .. 在这个php 页面中,这个 mime 类型是指其中一个
IMAGETYPE_JPC,IMAGETYPE_JPX,IMAGETYPE_JB2
我需要修改我的函数来处理这种 mime 类型吗?
注意^^^^^^
ruby-on-rails - Carrierwave GD2 图像处理
我使用carrierwave并希望GD2处理图像(裁剪/调整大小)。ImageMagick 和 RMagic 在功能方面很好,但需要大量资源。
我四处搜寻,但找不到任何好的线索。我很感激任何建议。
php - 如何在 php 中仅在图像上写入文本?
我想用一些文字制作一个“onfly”的图像。用php可以吗?我正在尝试这个,但没有输出,有人可以看我的代码吗?
我正在使用codeigniter来制作它。
谢谢你
php - PHP在具有alpha透明度的png之上合并jpeg
我正在尝试将 jpeg 放在 png 后面 - png 具有 alpha 透明度。
前景图片在这里: http: //peugeot208.srv.good-morning.no/images/marker-shadow.png
后面的图片是 Facebook 个人资料图片 - 通常是这样的: https ://graph.facebook.com/100000515495823/picture
结果图像失去透明度,而是黑色:http: //peugeot208.srv.good-morning.no/libraries/cache/test.png
这是我使用的代码:
如果我启用 imagealphablending($newCanvas, false);,结果是正确的(标记中间的孔是透明的)但是后面的图像消失了。
你能解释一下吗?:-)
谢谢!
编辑:找到解决方案
我做了一些摆弄,最终得到了这段代码——原点不是createimagetruecolor,而是从模板创建的图像——这是一个透明的png。
现在它可以工作了 - 结果是正确透明的。我真的不知道为什么。知道为什么吗?
fbimage.php
更新:检查以下代码 您可以在这里找到结果:http: //peugeot208.srv.good-morning.no/images/marker.php 如您所见,背景仍然是黑色的。
php - php中有GD2的自动换行功能吗?
人们。
我对图像上的 GD2 文字有一点问题。我一切正常,现在我尝试在图像上添加可以包裹在图像中的文本。
例如,我有宽度为 200 像素的图像和大块文本。如果您使用imagettftext()
文本超出图像边界,则实际上只有部分文本可见。我曾尝试使用 Zend 的文本换行功能,但它并不总是在这里产生准确的结果(不是说它不起作用,只是在这种情况下不是)。
是否有一些专用的 GD2 方法来设置一些文本应该适合的宽度框,如果它碰到该框的边框,它应该在新行中继续?
php - PHP图像创建失败
我制作了一个使用imagecreatetruecolour()
. imagettftext()
然后它使用该函数向图像添加一个字母。进行了一些其他更改,最后删除了白色背景并将其保存为 PNG 文件。整个事情都放在一个 for 循环中,因此它创建了 250 个图像。
我面临的问题是,有时(大约 250 个中的 10-15 个)在制作图像后似乎没有做任何事情,因此输出是白色方块或黑色方块(大小正确)。
我尝试添加sleep()
它以查看它是否试图太快地创建它们,但问题仍然存在。任何人都知道可能是什么原因造成的?PHP 内存限制是 128MB,所以我认为这不是问题(而且它也会出现在随机位置,有时甚至是第一个图像)。
我很确定这之前没有发布过,但公平地说,我不知道我在寻找什么,所以我可能一直在寻找错误的地方。
//编辑
遗憾的是,我不允许在这里添加整个脚本(公司政策等等),但我可以上传其中的一部分。经过进一步调查后,我将其范围缩小到不选择字母(我将几个变量输出到 csv 并且此列在其他未工作的列上为空白)
所以这是处理该部分的代码:
以及将所有图像放在一起的部分:
错误日志也是空的。
谢谢人们。我在发布代码后发现了错误。不知道我从哪里得到 55,但是是的,这是正确的顺序 - 或者更确切地说是字母,但有些被卡在随机的地方。-
php - gd2的屏幕效果
是否可以使用带有 gd2 的 PHP 将水印插入另一张具有屏幕效果的照片(类似于 Photoshop 中)?我在 PHP 手册和谷歌中寻找类似的东西,但我只找到了 imagelayereffect 和 imagefilter 功能,这些没有屏幕效果
codeigniter - file_put_contents 给我一个特定的错误
我正在使用 CodeIgniter 开发一个项目。当我尝试从远程服务器下载图像时,出现以下错误:
错误:
导致错误的代码:
在 addImageWhiteSpaces 中:
虽然我收到此错误,但正在下载图像。但是因为它给出了上面的错误,我下载了图像并且不能继续剩下的代码。任何可能的解决方案或理由对我来说都是一个保险库。非常感谢。
php - php gd 替代 alpha 通道?
由于某种原因,php gd 中的 alpha 通道被限制在 0-127 范围内,而 rgba 应该是 0-255。
现在,如果我们创建一个 alpha 大于 127 的颜色(例如,使用 imagecolorallocatealpha),它将改为使用默认的黑色......
我想知道是否有任何替代方法来制作可以充分利用 Alpha 通道的图片。我无法理解为什么 gd 会将 alpha 通道截断为 7 位,然后再次输出一个 8 位/通道的 png。
我也会考虑逐像素输出png。