使用Zxing生成二维码,以及保存到sdcard,图片变黑的问题
来源:互联网 发布:linux 下载速度 编辑:程序博客网 时间:2024/05/10 08:44
在app中,经常有生成识别二维码的功能,我们一般是使用zxing这个开源库来实现。
使用zxing生成Bitmap的代码如下:
/** * 生成二维码图片 * @param text 二维码文本 * @return */public static Bitmap createQrBitmap(String text,int qrWidth,int qrHeight) { try { // 需要引入core包 if (text == null || "".equals(text) || text.length() < 1) { return null; } Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>(); hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); BitMatrix bitMatrix = new QRCodeWriter().encode(text, BarcodeFormat.QR_CODE, qrWidth, qrHeight, hints); int width = bitMatrix.getWidth(); int height = bitMatrix.getHeight(); int[] pixels = new int[width * height]; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { if (bitMatrix.get(x, y)) { pixels[y * width + x] = 0xff000000; }else{ pixels[y * width + x] = 0xffffffff; } } } Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); bitmap.setPixels(pixels, 0, width, 0, 0, width, height); return bitmap; } catch (WriterException e) { e.printStackTrace(); }return null; }}这样就可以生成一个二维码的图片,我们可以用一个ImageView来显示。
但是有很多人在保存的时候,打开发现时黑的。原因就是
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
if (bitMatrix.get(x, y)) {
pixels[y * width + x] = 0xff000000;
}else{
pixels[y * width + x] = 0xffffffff;
}
}
}
这儿红色的代码没有加上去,加上就好了
0 0
- 使用Zxing生成二维码,以及保存到sdcard,图片变黑的问题
- zxing生成的二维码(bitmap)保存到sdcard一团黑解决办法
- zxing生成的二维码(bitmap)保存到sdcard一团黑解决办法
- 【ZXing】Android使用zxing生成二维码图片
- zxing开源项目 解决生成二维码保存的问题
- 解决ZXING生成二维码图片白框太大的问题
- 解决ZXING生成二维码图片白框太大的问题
- 使用zxing生成嵌图片的二维码【java】
- 使用zxing生成嵌图片的二维码【java】
- 【JAVA】使用ZXing生成嵌套图片的二维码
- .NET使用ZXing.NET生成中间带图片的二维码
- java使用zxing生成带logo的二维码图片
- java使用zxing生成带logo的二维码图片
- 使用zxing生成带logo的二维码图片
- 使用zxing生成二维码图片,并解析
- zxing生成二维码图片
- 使用ZXing的二维码扫描和生成问题记录
- java zxing 生成带图片的二维码
- C语言面试题大汇总之华为面试题
- MPAndroidChart API用法
- 19.5 Partition Selection 分区查询
- C、C++多组输入方法
- Spring 学习笔记(五)——MVC
- 使用Zxing生成二维码,以及保存到sdcard,图片变黑的问题
- windows服务创建工具srvany.exe介绍
- Android流式布局的简单实现
- Extjs中 requires uses singleton 的区别
- unity3d 实现简单的水下相机效果脚本代码
- 互联网产品经理应该具备的技能(需求篇)
- Override和Overload区别,Overloaded的方法是否可以改变返回值的类型?
- UDP服务器和客户端交互
- 安卓学习—Android应用程序架构