base64转byte[]byte[]转base64byte[]转图片后图片按固定宽高缩放

Posted han-java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了base64转byte[]byte[]转base64byte[]转图片后图片按固定宽高缩放相关的知识,希望对你有一定的参考价值。

/**
     * 图片缩放
     */
    public static BufferedImage ImageStringByte(int width, byte[] b) {
        
        InputStream buffin = new ByteArrayInputStream(b);
        BufferedImage src = null;
        try {
            src = ImageIO.read(buffin);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } // 读入文件
        int widthYuan = src.getWidth(); // 得到源图宽
        int heightYuan = src.getHeight(); // 得到源图长
        heightYuan = heightYuan / (widthYuan/width);
        widthYuan = width ;
        Image image = src.getScaledInstance(widthYuan, heightYuan, Image.SCALE_DEFAULT);
        BufferedImage tag = new BufferedImage(widthYuan, heightYuan, BufferedImage.TYPE_INT_RGB);
        Graphics g = tag.getGraphics();
        boolean drawImage = g.drawImage(image, 0, 0, null); // 绘制缩小后的图
        g.dispose();
       return tag;// 输出到文件流
    }

 

/**
     * byte流转为字符串
     */
    public static String stringsByImage(byte[] binaryData) {
        String b = null;
        try {
            // b = decoder.decodeBuffer(base64str);
            b = Base64.encode(binaryData);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return b;
    }

    /**
     * 将图片字符串流转为图片二进制
     */
    public static byte[] ImageByString(String base64str) {
        byte[] b = null;
        try {
            b = Base64.decode(base64str);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return b;
    }

/**
     * 将图片直接转为byte
     */
    public static byte[] byteByImage(BufferedImage  image) {
        ByteArrayOutputStream bos = new ByteArrayOutputStream(); // 将图片转为byte
        try {
            ImageIO.write(image, "jpg", bos);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return bos.toByteArray();

    }

以上是关于base64转byte[]byte[]转base64byte[]转图片后图片按固定宽高缩放的主要内容,如果未能解决你的问题,请参考以下文章

java byte[]和base64互相转换

字符串转base64加密

base64的byte[]如何转换成图片

java加密算法之base64篇

Base64和byte[]数组互转的两种方式

Image转Base64