我正在比较EmojiOne表情符号图片的版本。
我将每个EmojiOne表情符号存储在一个MySQL表中,我知道它首次发布的emojione版本。
我有另一张EmojiOne版本表。
我有一个PHP脚本循环遍历版本,然后为网格中的每个表情符号显示每个版本的图像。每个图像都有一个复选框,其中包含由管道分割的版本号和表情符号ID。
对于每个表情符号,我这样做:
表单通过提交的数据进行处理,并将结果加载到版本矩阵表中,其中包含表情符号ID和版本ID - 例如
int emoji_id version_id entered
------ -------- ---------- ---------------------
2257 1 1 2018-05-17 18:27:09
2258 1 19 2018-05-17 18:27:09
2259 1 22 2018-05-17 18:27:09
2260 1 29 2018-05-17 18:27:09
2261 1 37 2018-05-17 18:27:09
2262 2 1 2018-05-17 18:28:01
2263 2 19 2018-05-17 18:28:01
2264 2 22 2018-05-17 18:28:01
2265 2 24 2018-05-17 18:28:01
2266 2 29 2018-05-17 18:28:01
2267 2 37 2018-05-17 18:28:01
2268 3 1 2018-05-17 18:28:27
2269 3 19 2018-05-17 18:28:27
2270 3 22 2018-05-17 18:28:27
2271 3 29 2018-05-17 18:28:27
2272 3 37 2018-05-17 18:28:28
2273 3 41 2018-05-17 18:28:28
我制作的工具对于给定的一组表情符号看起来像这样:
它也很容易出现人为错误。
我需要做2,666张图片 - 所以这是一个非常耗时的过程,因为我可以在下班后的一个晚上和其他承诺中获得最多约100个表情符号,因此大约需要2周时间比较满载的图像。
例如,对于1F602表情符号,SVG版本的区别如下(一旦忽略图像相同的所有版本):
PNG的不同之处如下:
我想知道是否有办法使用图像比较解决方案自动执行此操作?
所有图像都远程保存在CDN上(SVG图像为cloudflare,PNG图像为jsdelivr) - 例如
我意识到我可能要求用棍子上的月亮"而这是一个非常模糊的问题。
答案 0 :(得分:-1)
无论何种类型,您都必须使用哈希函数来比较图像。
以下是使用sha1比较2张图像的函数示例:
function compare_distant_image($url_image1, $url_image1) {
// return true if the images are the same
$content1 = file_get_contents($url_image1);
$content2 = file_get_contents($url_image2);
$hash1 = sha1($content1);
$hash2 = sha1($content2);
return $hash1 == $hash2;
}