zoukankan      html  css  js  c++  java
  • Thumbnailator 压缩图片

    Github地址 https://github.com/coobird/thumbnailator

    不废话,直接上代码

    /**
         * 智能识车接口
         * 拍照识车 一图一车
         * ByteArrayResource
         *
         * @param deviceId
         * @return
         */
        @RequestMapping(value = "demo", method = RequestMethod.POST)
        @org.springframework.web.bind.annotation.ResponseBody
        public String demo(@RequestParam(value = "file") MultipartFile file, String deviceId, HttpServletRequest request) {
    
            String uri = "上传uri";
            String appKey = "appkey";
            String secret = "secret";
            String sign = "sign";
    
            try {
                RestTemplate restTemplate = restTemplateBuilder.setConnectTimeout(Duration.ofSeconds(5))
                        .setReadTimeout(Duration.ofSeconds(10)).build();
                List<String> cookies = CookieHelper.getCookieList(request);
                //构造请求头
                HttpHeaders headers = new HttpHeaders();
                headers.put("Cookie", cookies);
                headers.add("appKey", appKey);
                headers.add("sign", sign);
                headers.add("deviceId", deviceId);
                headers.setContentType(MediaType.MULTIPART_FORM_DATA);
    
                MultiValueMap<String, Object> map = new LinkedMultiValueMap();
    
                String fileName = file.getOriginalFilename();
                // 获取文件的后缀名,比如图片的jpeg,png
                String suffixName = fileName.substring(fileName.lastIndexOf("."));
                ByteArrayOutputStream os = new ByteArrayOutputStream();
                //Thumbnails.fromInputStreams(Arrays.asList(file.getInputStream())).scale(0.5).toFile("E:\images\a.jpg");
                //Quality png格式不起作用,先转换为jpg 格式,再应用
                Thumbnails.fromInputStreams(Arrays.asList(file.getInputStream())).scale(0.5).outputQuality(0.8).toOutputStream(os);
                ByteArrayResource arrayResource = new ByteArrayResource(os.toByteArray()) {
                    @Override
                    public String getFilename() throws IllegalStateException {
                        return fileName;
                    }
                };
    
                Resource resource = arrayResource;
    
                map.add("cid", 300);
                map.add("file", resource);
                HttpEntity requestEntity = new HttpEntity(map, headers);
                ResponseEntity<String> responseEntity = restTemplate.postForEntity(uri, requestEntity, String.class);
    
                HttpHeaders headersRes = responseEntity.getHeaders();
                return responseEntity.getBody();
            } catch (IOException ex) {
                ex.printStackTrace();
                System.out.println(ex);
            } catch (Exception ex) {
                ex.printStackTrace();
                System.out.println(ex);
            }
            return "";
        }
  • 相关阅读:
    交叉编译
    CompactPCI之系统管理设计与应用
    羽毛球发球规则
    记忆里第一次看孙淳演的电视剧——《浦江叙事》
    理财工具——七大标准比率
    samba常见问题
    Samba配置文件常用参数详解
    samba安装和简单配置
    mdadm中文man帮助
    说一说羽毛球的几种概念
  • 原文地址:https://www.cnblogs.com/xiyoujiyjy/p/15217407.html
Copyright © 2011-2022 走看看