当前位置: 首页 > news >正文

长春做网站网站想要网站推广页

长春做网站网站,想要网站推广页,回收做哪个网站好些,中国水土保持与生态环境建设网站SpringBoot接口中如何直接返回图片数据 目录 接口直接返回图片数据 起因 类似这种 根据个人经验 优雅的实现图片返回 接口直接返回图片数据 起因 最近在做涉及到分享推广的业务,需要由业务员分享二维码进入推广页面,由于是新项目,前期…

SpringBoot接口中如何直接返回图片数据

目录
  • 接口直接返回图片数据

  • 起因

  • 类似这种

  • 根据个人经验

  • 优雅的实现图片返回

接口直接返回图片数据

起因

最近在做涉及到分享推广的业务,需要由业务员分享二维码进入推广页面,由于是新项目,前期预算和用量都有限,没有搭建对象存储服务,所以决定使用后台服务动态生成二维码图片直接图片数据并返回。

首先是二维码的生成,决定使用google的zxing,毕竟google的东西还是不错的,maven添加依赖如下:

<!-- https://mvnrepository.com/artifact/com.google.zxing/core --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version></dependency><!-- https://mvnrepository.com/artifact/com.google.zxing/javase --><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.3.3</version></dependency>

继续查zxing的使用方法,发现大多数都是生成二维码然后写成图片文件的,不太适合我现在的情况。

类似这种

Map hints = new HashMap();
hints.put(EncodeHintType.CHARACTER\_SET, "utf-8");
hints.put(EncodeHintType.ERROR\_CORRECTION, ErrorCorrectionLevel.M);
hints.put(EncodeHintType.MARGIN, 2);
BitMatrix qrcode = new QRCodeWriter().encode(href, BarcodeFormat.QR\_CODE, 300, 300);
//网上的方案大多数都是通过io流写到文件系统,
MatrixToImageWriter.writeToStream(qrcode,"png",response.getOutputStream());

于是企图用response的输出流返回,但是返回的数据浏览器看到的全是乱码,这种方案并没有成功

根据个人经验

一般这种开源方案既然二维码数据BitMatrix对象都生成了,肯定有获取原始数据的方法,点进MatrixToImageWriter类搜索方法,果然,找到了能直接返回BufferedImage对象的方法

现在,BufferedImage对象已经有了,只差把它扔回前端了,继续百度,发现可以直接返回该对象,类似以下配置

@GetMapping(value = "/qrcode", produces = MediaType.IMAGE\_JPEG\_VALUE)
@ResponseBody
public BufferedImage generateQRCode() {//返回BufferedImage的对象}

以为问题即将解决,然而浏览器访问返回406,上网一查,原来是没有对应消息类型的转换器导致的,有博主提到需要如下配置

@Beanpublic BufferedImageHttpMessageConverter addConverter(){return new BufferedImageHttpMessageConverter();}

加了上面的配置后发现问题仍没有解决,报错仍是406,怀疑配置没有生效,于是决定走源码查看原因。debug源码时发现messageConverters的list中确实没有我配置的,说明的确是配置问题,查找messageConverters的set操作,查到如图的地方

发现springMVC是在配置RequestMappingHandlerAdapter设置的HttpMessageConverter,进入getMessageConverters()方法

根据我的工地英语8级,extendMessageConverters这个方法应该是在添加自定义的HttpMessageConverter,进入该方法

空实现,很明显估计是模板模式,需要自己去扩展,于是自己写了一个配置类继承WebMvcConfigurationSupport,重写extendMessageConverters方法

    @Overrideprotected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {converters.add(new BufferedImageHttpMessageConverter());}

浏览器再访问,二维码图片展示,问题解决

**总结:**实现一个方案的过程中碰到了各种各样的奇怪问题,最好的方式是先网上找资料快速解决问题,如果无法解决,再通过自己走源码的方式从根本原因上寻找出现问题的原因,解决问题最复杂的地方是定位问题,问题定位了,解决便不再是难题

优雅的实现图片返回

注意:response.setContentType(“image/png”);这行代码一定要加上

@RestController
@Slf4j
@Api(tags = SwaggerConfig.TAG\_IMAGE)
@RequestMapping(SwaggerConfig.TAG\_IMAGE)
public class ImageController {@Resourceprivate HttpServletResponse response;@GetMapping(value = "/getImage")@ApiOperation("获取图片-以ImageIO流形式写回")public void getImage() throws IOException {OutputStream os = null;try {
//        读取图片BufferedImage image = ImageIO.read(new FileInputStream(new File("F:\\\\谷歌下载\\\\未命名文件.png")));response.setContentType("image/png");os = response.getOutputStream();if (image != null) {ImageIO.write(image, "png", os);}} catch (IOException e) {log.error("获取图片异常{}",e.getMessage());} finally {if (os != null) {os.flush();os.close();}}}
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

  • 1秒钟实现Springboot 替换/写入 word文档里面的文字、图片功能

  • SpringBoot上传图片到指定位置并返回URL的实现

  • springboot实现通过路径从磁盘直接读取图片

  • 1秒实现Springboot 图片添加水印功能

  • SpringBoot

  • 接口

  • 返回图片

  • 数据

最新评论

  • 如何使用Spring+redis实现对session的分布式管理

最近更新的内容

  • java静态代理的含义及用法
  • Java实现MD5加密及解密的代码实例分享
  • 学生视角手把手带你写Java 线程池初版
  • Spring Boot Admin实现服务健康预警功能
  • Java实现多人聊天室(含界面)
  • Java 条件控制与循环控制实例
  • SpringBoot整合log4j日志与HashMap的底层原理解析
  • 基于StringBuilder类中的重要方法(介绍)
  • java关键字final使用方法详解
  • Spring cloud 查询返回广告创意实例代码
http://www.yayakq.cn/news/385654/

相关文章:

  • 网站建设的步骤过程文库商品营销推广的方法有哪些
  • 济南专业做网站网站建设品牌策划
  • 河北高端网站定制公司湖南佳邦建设有限公司网站
  • 企业网站设计有哪些新功能wordpress主题ftp安装
  • wordpress抓取别人网站网站建设初学者必学
  • 购物网站前台模板婚庆设计网站模板
  • 深圳网站建设公司招聘php开发一个企业网站价格
  • 网站建设资质证书万全县城乡建设网站
  • 网站系统评测要怎么做呢学摄影的网站有哪些
  • 哈尔滨网站优化对策有做翻页相册的网站吗
  • 阜阳哪里有做网站的公司宣传网页怎么做
  • 外冈网站建设达人室内设计网论坛
  • 长沙模板建站哪家好电子商务公司建设网站方案
  • 2000个免费货源网站wordpress页面模板制作
  • 顺企网我做网站华西医院网站开发
  • 清新区住房和城乡建设局网站wordpress远程发布XML
  • 建站网站排行榜北京网站建设熊掌号
  • 天津都有哪些制作网站免费logo设计在线生成器钙网
  • 手机做印章网站网站编程技术 吉林出版集团股份有限公司
  • 社区论坛网站建设企业网站系统设计
  • 荆门网站开发公司电话wordpress+网速
  • 可以大量免费发帖的网站注册一个网页多少钱
  • 网站 description中国建设银行官网网站
  • 青岛网站设计公司价格全球邮邮箱登录
  • 网站广告网络推广价格低做门户网站最重要的是什么意思
  • 论坛网站开发demowordpress 翻页重复
  • 关于行业网站建设意见西宁网络推广软件
  • 水贝做网站公司天津公司网站建设费
  • ps做网站效果图网站开发毕业设计任务书
  • 做关于星空的网站邢台做网站动态