Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 自编码QR条码?_Image_Recursion_Infinite Loop_Qr Code - Fatal编程技术网

Image 自编码QR条码?

Image 自编码QR条码?,image,recursion,infinite-loop,qr-code,Image,Recursion,Infinite Loop,Qr Code,我想知道是否有可能以某种文件格式创建一个QR,比如png,然后用QR编码png,这样生成的QR与您开始使用的QR相同?我不这么认为。每个QR码都需要对原始数据进行编码,并具有可变的冗余量 因此,要对原始二维码进行编码,您需要编码相同数量的信息和额外的冗余,这意味着结果不能相同,因为它编码了更多的信息。二维码最多可以包含4296个字符。我假设这是unicode,两个字节用于表示一个字符。这意味着一个二维码最多可以包含7089字节,这足以存储一个小图像(如一个小二维码) 这里唯一的问题是,大多数QR

我想知道是否有可能以某种文件格式创建一个QR,比如png,然后用QR编码png,这样生成的QR与您开始使用的QR相同?

我不这么认为。每个QR码都需要对原始数据进行编码,并具有可变的冗余量


因此,要对原始二维码进行编码,您需要编码相同数量的信息和额外的冗余,这意味着结果不能相同,因为它编码了更多的信息。

二维码最多可以包含4296个字符。我假设这是unicode,两个字节用于表示一个字符。这意味着一个二维码最多可以包含7089字节,这足以存储一个小图像(如一个小二维码)


这里唯一的问题是,大多数QR阅读器希望QR码包含文本(而不是图像数据)

二维码的大小从21x21到177x177不等。它们可以容纳152到31000个数据位。不幸的是,即使使用每“像素”1位,代码所能保存的数据量也永远达不到存储它所需的位数

有一些尺寸,但这并不遥远。我想象一些简单的压缩算法,或者甚至忽略一些常见的部分,比如校准区域,都可以达到这样一个程度,你可以在其中存储它的一些表示。这是可行的,我认为你可以找到一种方法来存储一个二维码的一些大小作为一个二维码的大小相同

接下来的问题是构造一个代码来创建自己。有了不同的纠错选项,就有了在周围伪造几个像素的空间,这有助于提高这样的可能性,但这仍然需要一点魔法。也许某种遗传算法可以比暴力做得更好,但你可能需要阅读完整的规范,并巧妙地手工构建一个。搜索空间相当大。

正如freespace所提到的,由于几个原因,不可能在同一图像中对图像进行编码

我创建了一个二维码,其中包含一个URL,其中包含(再次)原始图像:


我真的认为这是你能得到的最接近的了。

qrencode-o newQR.png`cat originalQR.png`在linux上工作,但我还没有尝试对它进行解码,看看它是否能输出未损坏的png数据。freespace的答案表明它不会…不是unicode,QR码最多可以存储2953字节。4296仅为字母数字(每个字符少于8位)。