南昌市物联网技防平台-后台
Administrator
2021-03-26 8ae611538a5dfd3ad2872e5b1043376d1aa19a29
包裹图片长宽返回
3 files modified
52 ■■■■ changed files
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/util/ImageUtil.java 39 ●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java 2 ●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java 11 ●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/util/ImageUtil.java
@@ -13,11 +13,13 @@
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import static java.time.LocalDate.now;
/**
 * 二进制原始数据转换为图片工具类
 * base64原始数据转换为图片工具类
 */
public class ImageUtil {
    static BASE64Encoder encoder = new sun.misc.BASE64Encoder();
@@ -28,14 +30,14 @@
    private static String PRF_MINIO_URL = "minio/jfpt/animalHeat";
    /**
     * 二进制原始数据转换为图片
     * base64原始数据转换为图片
     * @param base64String
     */
    public static String base64StringToImage(String base64String){
        try {
            byte[] bytes1 = decoder.decodeBuffer(base64String);
            ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);
            BufferedImage bi1 = ImageIO.read(bais);
            byte[] bytes = decoder.decodeBuffer(base64String);
            ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
            BufferedImage bi = ImageIO.read(bais);
            String UUID = DateUtil.today()+StringPool.SLASH+ StringUtil.randomUUID();
            //可以是jpg,png,gif格式
            File w2 = new File("D://"+PRE_URL+StringPool.SLASH+ UUID+".jpg");
@@ -47,7 +49,7 @@
                parentFile.mkdirs();
            }
            //不管输出什么格式图片,此处不需改动
            ImageIO.write(bi1, "jpg", w2);
            ImageIO.write(bi, "jpg", w2);
            //返回图片路径
            return PRF_MINIO_URL+ StringPool.SLASH+ UUID +StringPool.DOT+ "jpg";
        } catch (IOException e) {
@@ -55,4 +57,29 @@
        }
        return null;
    }
    /**
     * 获取base64原始数据图片的长宽
     * @param base64String
     */
    public static Map<String,Object> getBase64ImageWidthAndHeight(String base64String){
        Map<String, Object> map = new HashMap<>();
        try {
            //将base64字符串转换成二进制字节数组
            byte[] bytes = decoder.decodeBuffer(base64String);
            //二进制输入流
            ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
            //io读取图片输入流
            BufferedImage bi = ImageIO.read(bais);
            //封装数据
            map.put("imgWidth",bi.getWidth());
            map.put("imgHeight",bi.getHeight());
            //返回
            return map;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
@@ -42,7 +42,7 @@
     * @param imgUrl 图片Url
     * @return
     */
    Map<String, String> getParcelPic(String imgUrl);
    Map<String, Object> getParcelPic(String imgUrl);
    /**
     * 获取包裹明细分页数据,远程调用api获取数据
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
@@ -4,6 +4,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import io.swagger.models.auth.In;
import org.springblade.jfpt.animalheat.util.ImageUtil;
import org.springblade.jfpt.parcel.service.ParcelService;
import org.springblade.jfpt.parcel.util.DateUtils;
import org.springblade.jfpt.parcel.util.HttpClientUtils;
@@ -308,7 +309,7 @@
     * @return
     */
    @Override
    public Map<String, String> getParcelPic(String imgUrl) {
    public Map<String, Object> getParcelPic(String imgUrl) {
        //截取图片imgKey信息
        String[] imgKeys = imgUrl.split("=", imgUrl.length());
        String imgKey = imgKeys[1];
@@ -317,8 +318,12 @@
        map.put("imgKey",imgKey);
        //执行http远程调用
        String s = HttpClientUtils.doGetHeaderPictureBase64(PARCEL_PICTURE_URL, PARCEL_KEY, PARCEL_SECRET, map);
        map.put("imgBase64",s);
        return map;
        //获取图片的长宽
        Map<String, Object> imageMap = ImageUtil.getBase64ImageWidthAndHeight(s);
        //封装数据
        imageMap.put("imgBase64",s);
        //返回
        return imageMap;
    }
    /**