我一直在尝试各种图像功能组合,但我似乎无法获得良好的效果。
我试图将图像转换为固定数量的灰度级,加上透明度(如果它存在于原始图像中)。
它需要能够转换真彩色图像和基于调色板的图像。
输出图像应该有......
我的主要问题是imagetruecolortopalette的工作,它确实减少了调色板,但似乎总是失去任何透明度。
我最后编写了一段很长很复杂的代码,用于逐像素分析图像的灰度级,然后选择调色板颜色,然后逐像素地重新创建图像,但它非常漂亮慢,所以我希望有更好的方法。
感谢您的任何建议!
答案 0 :(得分:0)
大约一年前,我曾尝试过这样的事情。然而,由于我只将图像转换为黑色或白色,因此任务稍微简单一些。
我使用的图像没有透明度,但我想你可以将透明度值复制到新图像。我不明白你是如何丢失透明度信息的。难道你不能只读取和写入alpha通道吗?
当时我在python中实现了它并且它运行得非常快。处理1.000.000像素只花了几分钟。因此我猜你的性能问题与php有关,而不是与任务本身有关。此外,我认为没有太多优化空间。毕竟,您必须查看所有像素,否则您将失去图像分辨率。处理本身非常简单。