forevermatt/mosaic

一组PHP类,用于组装马赛克,设计成看起来像给定的引导图像,使用一组源图像。

0.5.2 2019-06-08 20:49 UTC

This package is auto-updated.

Last update: 2024-09-20 11:06:13 UTC


README

一组PHP类,用于组装马赛克,设计成看起来像给定的引导图像,使用一组源图像。

用法

选择一个目录,其中可以保留临时文件夹(用于缓存源图像数据)。在该文件夹中打开命令提示符,并运行以下命令

php <path/to/cli.php> <path/to/guide-image.jpg> <path/to/source/images/>

将尖括号中的值替换为实际路径。例如,将 <path/to/cli.php> 替换为类似 "C:\code\mosaic\cli.php" 的内容(取决于您在计算机上克隆此存储库的位置)。注意,任何额外的命令行参数都视为包含用于生成马赛克的源图像的额外文件夹。

您第一次运行此操作时,可能需要相当长的时间,因为尚未缓存源图像的缩小副本(因此它必须进行大量的图像调整大小)。接下来的(和随后的)运行应该要快得多。

基本方法

A. 获取引导图像。B. 获取源图像。C. 切割引导图像。D. 将引导图像的每一部分与不同的源图像匹配。E. 组装并保存马赛克。

C.1. 计算源图像数量。2. 将引导图像切割成不超过那么多片。

D.1. 将切片缩小到3像素乘3像素。记录像素的RGB值。2. 与每个源图像进行比较。3. 记录与该切片最佳匹配的未使用源图像。

D.2.a. 将源图像缩小到3像素乘3像素。记录像素的RGB值。b. 计算切片像素颜色与该源图像像素颜色的绝对差异。

E.1. 创建一个新的空图像。2. 根据找到的匹配插入每个源图像。

匹配准确性(在给定分辨率下)= D[1] + D[2] + ... + D[像素数量]

D = abs(R[a] - R[b]) + abs(G[a] - G[b]) + abs(B[a] - B[b])

只有在匹配分辨率下的准确性计算才有意义。

术语表

  • 引导图像:马赛克试图模仿的图像。
  • 切片(又称引导图像切片):原始引导图像的一部分。
  • 源图像:用于将引导图像作为马赛克重新创建的图像。

许可

此软件受MIT许可证的约束。