PHP/GD 的 Alpha 掩码?
是否可以在 PHP/GD 中使用另一个图像的 alpha 来掩盖图像,以便结果是 24 位 png?
Is it possible to mask an image using another image's alpha in PHP/GD so that the result is 24bit png?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以通过手动逐像素处理图像来完成此操作(使用 imagecolorat 和 imagesetpixel)。
如果图像相对较小(即任何您称之为图标的图像)并且不会经常更改(因此您可以缓存结果),那么 GD 就可以了。我使用此方法为禁用按钮 64x64 图标生成灰色版本,这些图标很少发生变化。
如果您需要更频繁地对更大的图像执行此操作,ImageMagick 将执行您想要的任何图像处理。它可以实现您正在寻找的屏蔽。
You could do it by processing the image pixel-by-pixel manually (using imagecolorat and imagesetpixel).
If the image is relatively small (i.e. anything you'd call an icon) and doesn't change too often (so you can cache the result), GD will do just fine. I've used this method to generate gray versions for disabled button 64x64 icons which rarely ever change.
If you need to do this with larger images and more frequently, ImageMagick will do any image manipulation you'd ever want. It can do the masking you are looking for.