有没有办法使用JavaScript将PNG的白色背景转换为透明背景?

我有一堆.pngs在白色背景上只有黑色文字。 到目前为止,这些都显示在屏幕上的白色背景上,所以没有问题; 但现在,我正在改变背景的颜色。 问题是,当设置在灰白背景下时,文本看起来有点偏,所以我很想知道JavaScript(jQuery是否正常)是否能够动态地将.png的白色背景转换为透明背景。 我对此问题的服务器端解决方案感兴趣(例如,运行所有图像的脚本并使用图像库以编程方式执行)并且剪切数量的图像使得手动操作方法不切实际。

有谁知道这样做的方法? 搜索没有透露任何信息。 请注意,我不是在寻找IE .png修复程序!

如果有办法,这个过程会产生什么样的开销?

谢谢你的帮助!

我能想到的最接近的是IE特定的,有一个色度filter可能能够做你想要的(有点像蓝屏,任何蓝色都是透明的,在你的情况下,任何白色都是透明的)。请参阅: http : //www.ssi-developer.net/css/visual-filters.shtml 。 在其他浏览器和CSS3中都没有找到相同的替代品。

可以创建一个脚本来查找文档中的所有图像,用canvas元素替换它,在canvas上绘制图像,逐个像素地浏览图像数据,如果像素是某种颜色,则更改它的alpha为0(透明)。

以下是关于该概念的快速POC …您需要在Web服务器中运行它以使其在Chrome和FF上运行,它可以在IE9 beta上本地运行。

只需将图像更改为任何带有纯白色RGB(255,255,255)的图像。 通过将其Alpha通道设置为0,它将使图像中的任何白色像素透明。

   Test          

我知道js图像处理的唯一选择是Pixastic ,它没有你想要的function。 据我所知,你必须在服务器端做这件事