我想知道是否有任何可能的方法来检测是否有内容上传到图像中。例如,使用 WinRAR,我可以将任何类型的文件嵌入到图像中,同时将图像格式保持为图像。像 imgur 这样的网站设法阻止了这一点。我想知道他们是怎么做到的。
我认为一种可能的方法是将图像数据上传到 Canvas ,以便将其纯粹表示为像素数组,然后将 Canvas 的数据重新转换回图像。但是,这在服务器端会相当耗时。
有人知道执行此操作的有效方法吗?
最佳答案
正如您提到的 node.js 和服务器端,您可以执行以下操作:
1) 将 imagemagic 与 Node 绑定(bind)结合使用 node-imagemagick - 它使用 cli imagemagic 所以它会很快。库被广泛使用,因此您会发现大量示例如何从文件中删除 Exif 和不必要的数据。在最坏的情况下,您可以重新压缩文件。
2) 如果您只使用 jpeg 图片,您可以使用 node-jpegoptim并优化每个上传的文件。它也使用 cli,所以会很快
3) 最后你可以使用node-smushit并使用雅虎服务器来完成这项工作,但是您需要检查是否 their terms of service对您的内容没意见。
我想到了这3个,希望其中一个能满足你的需求。
关于javascript - 检测图像中嵌入的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21513979/