题主早上好!
这应该是二维码自身的问题。
二维码在设计时,是有着四个级别的容错度的,分别是L,M,Q,H,对应7%,15%,25%,30%的容错度。举个例子,如果H级别的二维码,即使15%的图案不清晰(例如被遮挡),也可以被正确扫描。
那么如果题主在拍照时得到的二维码照片有所不清晰、倾斜或者遮挡,并且二维码的容错率又比较低,就有可能出现这样的结果。
除此之外,二维码在三个角上的“黑色方框”也是十分重要的,这三个方框是帮助扫描程序进行定位的位置检测符。如果这三个图形被遮挡住,程序也就无法准确的定位,进一步进行准确的识别了。不知道题主有没有注意到这一点。
注意图片上的三个黑色方框-图片来源:百度百科
最后,二维码能够被程序识别,靠的是不同色块之间的明暗差异。这也就是为什么我们可以看到例如QQ、微信上有很多彩色的二维码(例如下图),如果照片中的光线太暗,或者说拍出来的二维码对比度不够高,都会出现无法识别的问题。
彩色二维码也可以被识别-图片来源:百度百科
因此,如果题主想要避免这种情况的发生,在下一次拍照时应该注意:
将整个二维码尽可能拍完整,尽可能不要倾斜
不要遮挡二维码的“黑色方框”
确保良好的光线,提供足够的对比度
希望能够帮助到您!