Java图片画框,算法标记

   /**
     * base64 编码转换为 BufferedImage
     *
     * @param base64 不带前缀以9j/开头的
     * @return BufferedImage对象
     */
    public static BufferedImage base64ToBufferedImage(String base64) {
        Base64.Decoder decoder = Base64.getDecoder();
        try {
            byte[] bytes = decoder.decode(base64);
            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
            return ImageIO.read(byteArrayInputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

   /**
     * 添加边框
     *
     * @param image   base64ToBufferedImage转换出来的image对象
     * @param x 原点x坐标(原点一般在左上角)
     * @param y 原点y坐标(原点一般在左上角)
     * @param  width 框宽
     * @param height 框高
     * @return
     */
   public static BufferedImage addBorders(BufferedImage image, int x, int y, int width, int height) {
        if (image == null) {
            return null;
        }
        Graphics2D g2 = image.createGraphics();
        //画笔颜色
        g2.setColor(Color.RED);
        //设置画笔粗细
        BasicStroke stokeLine = new BasicStroke(8.0f);
        g2.setStroke(stokeLine);
        //矩形框(原点x坐标,原点y坐标,矩形的长,矩形的宽)
        g2.drawRect(x, y, width, height);
        g2.dispose();
        return image;
    }

   /**
     * BufferedImage转换为 MultipartFile
     *
     * @param image BufferedImage对象
     * @return MultipartFile对象
     */
public static MultipartFile imageToMultipartFile(BufferedImage image) {
        try {
            //BufferedImage 转化为 ByteArrayOutputStream
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            ImageIO.write(image, "jpg", out);
            //ByteArrayOutputStream 转化为 byte[]
            byte[] imageByte = out.toByteArray();
            //将 byte[] 转为自定义的 MultipartFile对象(实现MultipartFile接口)
            return new CustomMultipartFile(imageByte, "/9j");
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

public static void main(String[] args) {
        // base64转为image
        BufferedImage image = ImageUtils.base64ToBufferedImage("9j........");
        // 画框
        ImageUtils.addBorders(image, 11, 12, 45, 72);
        // image 转为 MultipartFile
        MultipartFile multipartFile = ImageUtils.imageToMultipartFile(image);
       //画框后的图片保存到Minio中
        String url = MinioUtil.uploadFileMinio(multipartFile, "fileFormat");
    }

你可能感兴趣的:(Java图片画框,算法标记)