我想知道是否有可能以某种文件格式创建 QR,比如 png,然后在 QR 中对 png 进行编码,以使生成的 QR 与您开始使用的 QR 相同?
4 回答
我不这么认为。每个二维码都需要对原始数据以及可变数量的冗余进行编码。
因此,要对原始二维码进行编码,您需要编码相同数量的信息和额外的冗余,这意味着结果不可能相同,因为它编码了更多信息。
二维码的尺寸从 21x21 到 177x177 不等。它们可以保存 152 到大约 31,000 个数据位。不幸的是,即使每个“像素”使用 1 位,代码可以保存的数据量也永远不会达到存储它所需的位数。
有一些尺寸,但距离不远。我想象一些简单的压缩算法,或者甚至可能忽略校准区域等常见部分,可以达到可以存储它本身的一些表示的地步。对我来说,您可以找到一种方法将某种大小的二维码存储为相同大小的二维码。
然后问题是构建一个创建自己的代码。使用不同的纠错选项,可以在周围捏造几个像素,这有助于提高这种事情的可能性,但仍然需要一点点魔法。也许某种遗传算法可以比蛮力做得更好,但您可能需要阅读完整的规范并手动巧妙地构建一个。搜索空间相当大。
一个二维码最多可以包含。4296 个字符。我假设这是 unicode,并且两个字节用于表示一个字符。这意味着一个二维码最多可以包含 7089 个字节,这足以存储一个小图像(如一个小二维码)。
这里唯一的问题是,大多数二维码阅读器都希望二维码包含文本(而不是图像数据)。
正如自由空间所提到的,由于几个原因,不可能在同一图像本身中对图像进行编码。
我创建了一个二维码,其中包含一个包含(再次)原始图像的 URL:
我真的认为这是你能得到的最接近的。