- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
用户正在将照片上传到我们的 php 构建系统。由于内容不相关,我们将其中一些标记为禁止。我正在寻找“自动比较”算法的优化,该算法会跳过这些标记为禁止的照片。每次上传都需要与许多 vorbinden 进行比较。
可能的解决方案:
1/存储禁止的文件并比较整个内容 - 效果很好,但速度很慢。
2/存储图像文件校验和并比较校验和 - 这是提高速度的想法。
3/任何足够快并且可以比较照片之间相似度的智能算法。但我对 PHP 中的这些没有任何想法。
最好的解决方案是什么?
最佳答案
不要计算校验和,而是计算哈希值!
我曾经创建过一个简单的应用程序,它必须在我的硬盘上查找重复的图像。它只会搜索 .JPG 文件,但对于每个文件,我都会计算前 1024 个字节的哈希值,然后将图像的宽度、高度和大小附加到它,以获得如下字符串:“875234:640:480: 13286”,我将其用作图像的 key 。事实证明,我没有看到该算法出现任何错误重复,尽管仍然存在错误重复的可能性。然而,当有人只向其中添加一个字节或对图像进行非常小的调整时,此方案将允许重复。
另一个技巧可能是减少每个图像的大小和颜色数量。如果将每个图像的大小调整为 128x128 像素,并将颜色数量减少到 16(4 位),那么最终会得到每个 8192 字节的合理的独特图案。根据该模式计算哈希值并使用该哈希作为主键。一旦命中,您可能仍然会出现误报,因此您需要将新图像的模式与系统中存储的模式进行比较。如果第一散列解决方案指示新图像是唯一的,则可以使用该模式比较。不过,我仍然需要为自己的工具解决一些问题。但这基本上是一种获取图像指纹然后进行比较的方法。
我的第一个解决方案将找到完全匹配的内容。我的第二个解决方案会找到类似的图像。 (顺便说一句,我在 Delphi 中编写了哈希方法,但从技术上讲,任何哈希方法都足够好。)
关于php - 图像文件校验和作为独特的内容比较优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1377739/
如何在 PHP 中生成 CRC-8 校验和? 最佳答案 function crcnifull ($dato, $byte) { static $PolyFull=0x8c; for ($i=0
我正在编写代码来使用 32 位无符号整数计算 CRC16。当尝试打印执行 CRC 操作的 XOR 函数的返回值时,它总是打印 0。我尝试了各种调试方法,例如打印语句,但是,我似乎无法弄清楚! 这是我的
ThinkPHP3.2.3验证码显示、刷新、校验 ,具体如下: 显示验证码 首先在Home/Controller下创建一个公共控制器PublicController
我想将自定义验证绑定(bind)到 TimePicker 自定义控件,但下面的代码显示“无法将内容添加到 TimePicker 的对象类型。”。
目录 Spring 校验(validator,JSR-303)实现 什么是JSR-303规范 与Spring MVC结合 实体类添加
导包和配置 导入 JSR 303 的包、hibernate valid 的包 ?
我是一名优秀的程序员,十分优秀!