75年生人,程序员,在西安。

使用zxing包生成jpg的QRCode图片是黑色的解决办法

近日需要实现给手机发送QRCode的功能,使用google的zxing包当然是比较好的方案,初次使用根据网上比较常见到的代码,生成了png的图片,非常顺利,但是有很多手机并不支持显示png格式的图片,所以就又尝试了生成jpg图片,发现电脑认识,可以再次decode,但用看图软件看上去却是一片黑色或不可识别。


查了很多地方,最后发现这个网页所说的可能是这个问题,于是根据这个网页中的代码改写了原来的程序终于可以正确生成jpg的QRCode了,而且手机接收后非常正常。


请特别注意代码中 BufferedImage.TYPE_INT_RGB 这部分,根据上面那个网页所提的情况,google的zxing包中提供的MatrixToImageWriter.writeToFile()方法、writeToStream方法和writeToBufferedImage方法都是采用BufferedImage.TYPE_INT_ARGB图片类型的,所以jpg就出问题了,这应该是一个bug,希望google尽快修改了。

评论

© 世风十三 | Powered by LOFTER