JAVA给微信公众号二维码添加LOGO时总是生成灰度图片的原因及解决办法
2018-03-06 09:55
477 查看
大家都知道微信公众号可以从微信官方服务器获取对应的二维码(包括临时二维码及永久二维码),这样的需求常用于商业客户层次关系管理场景,但是如果有很多客户,就算二维码中的SCENCE_ID不同,就凭肉眼不容易看出来,那么我常用的做法就是在二维码中间添加一个LOGO,一般是当前客户自己的微信图片。
我们根据TOKEN从https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN获取到二维码后,参数如下两个博文来进行合成: http://blog.csdn.net/u013142781/article/details/50310419 https://www.cnblogs.com/lmei/p/4626042.html 最后发现,生成的图片竟然无论怎么搞都是黑白的。
通过仔细观察,从微信取下来的二维码图片是grayscale,也就是颜色空间是灰阶的,那么我们用通用的方式以这个二维码为底图向上面叠加LOGO的时候,得到的还是灰阶图片,以致引起这个问题。问题找到了,那么解决方式就好说了。参考: http://blog.csdn.net/10km/article/details/51866321 这篇文章
java.awt.image包下面有个类java.awt.image.ColorConvertOp,类名直译就是”颜色转换操作”。
顾名思义,它的作用就是将一个色彩空间(color space)的图像转换为另一个色彩空间的图像。有了这个神器我们就能轻易的将一张彩色图你像转换成灰度(gray)或其他色彩空间图像。代码非常简单,只要一行。 public static BufferedImage toGray(BufferedImage srcImg){
return new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_sRGB), null).filter(srcImg, null);
}这样我们就将原来的二维码图片变换了颜色空间,再利用上述两篇博文提到的方式合成图片即可。
更多文章参考:
Image转BufferedImage并提取像素进行颜色空间转换: http://blog.csdn.net/qq_29859497/article/details/72860023 Java加载图片 Image与BufferedImage 区别: http://blog.csdn.net/landlord921/article/details/38736619
我们根据TOKEN从https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN获取到二维码后,参数如下两个博文来进行合成: http://blog.csdn.net/u013142781/article/details/50310419 https://www.cnblogs.com/lmei/p/4626042.html 最后发现,生成的图片竟然无论怎么搞都是黑白的。
通过仔细观察,从微信取下来的二维码图片是grayscale,也就是颜色空间是灰阶的,那么我们用通用的方式以这个二维码为底图向上面叠加LOGO的时候,得到的还是灰阶图片,以致引起这个问题。问题找到了,那么解决方式就好说了。参考: http://blog.csdn.net/10km/article/details/51866321 这篇文章
java.awt.image包下面有个类java.awt.image.ColorConvertOp,类名直译就是”颜色转换操作”。
顾名思义,它的作用就是将一个色彩空间(color space)的图像转换为另一个色彩空间的图像。有了这个神器我们就能轻易的将一张彩色图你像转换成灰度(gray)或其他色彩空间图像。代码非常简单,只要一行。 public static BufferedImage toGray(BufferedImage srcImg){
return new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_sRGB), null).filter(srcImg, null);
}这样我们就将原来的二维码图片变换了颜色空间,再利用上述两篇博文提到的方式合成图片即可。
更多文章参考:
Image转BufferedImage并提取像素进行颜色空间转换: http://blog.csdn.net/qq_29859497/article/details/72860023 Java加载图片 Image与BufferedImage 区别: http://blog.csdn.net/landlord921/article/details/38736619
相关文章推荐
- java生成二维码,可添加logo和文字
- js jquery 生成二维码 jquery.qrcode.js,并在中间添加logo图片
- res中添加的资源不能在R.java中自动生成的原因及解决方法
- [java]生成带logo图片的二维码、以及二维码解码
- Java生成二维码可添加logo和文字功能
- java生成二维码图片(有logo),并在图片下方附文字
- java使用zxing生成带logo的二维码图片
- JAVA 生成二维码图片 可加Logo
- java生成二维码,可添加logo和文字
- R语言——关于R在Linux服务器上生成图片中文乱码原因及解决办法
- java--实现将文字生成二维码图片,并在中间附上logo,下方附上文字
- Java 利用google.zxing类生成的BitMatrix二维码添加logo图标
- java使用zxing生成带logo的二维码图片
- java.util.ConcurrentModificationException产生原因及解决办法
- cocos2d-x 关于无法找到gl/gl.h头文件错误,以及r.java无法生成解决办法
- 引文:WebLogic中的生成图片问题的解决办法
- 执行java.io.ByteArrayOutputStream.write 方法内存突然加大的原因与解决办法
- cocos2d-x 关于无法找到gl/gl.h头文件错误,以及r.java无法生成解决办法
- java:Could not find the main class.Program will exit 原因分析-新解决办法
- cocos2d-x 关于无法找到gl/gl.h头文件错误,以及r.java无法生成解决办法