reghao před 4 měsíci
rodič
revize
d7304baca3

+ 61 - 0
jdk/src/main/java/cn/reghao/jutil/jdk/image/ImageUtil.java

@@ -1,5 +1,7 @@
 package cn.reghao.jutil.jdk.image;
 
+import cn.reghao.jutil.jdk.image.model.ImageProps;
+
 import javax.imageio.ImageIO;
 import javax.imageio.ImageReader;
 import javax.imageio.stream.ImageInputStream;
@@ -21,11 +23,70 @@ import java.util.Locale;
  * @date 2021-08-04 16:26:13
  */
 public class ImageUtil {
+    /**
+     * 获取图片基本信息
+     *
+     * @param
+     * @return
+     * @date 2025-10-27 10:24:17
+     */
+    public static ImageProps getImageProps(File file) throws IOException {
+        long size = file.length();
+        BufferedImage bi = ImageIO.read(file);
+        int width = bi.getWidth();
+        int height = bi.getHeight();
+        String format = "";
+        try (ImageInputStream iis = ImageIO.createImageInputStream(file)) {
+            Iterator<ImageReader> iterator = ImageIO.getImageReaders(iis);
+            if ((iterator.hasNext())) {
+                ImageReader ir = iterator.next();
+                format =  ir.getFormatName().toLowerCase(Locale.ROOT);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return new ImageProps(width, height, format, size);
+    }
+
+    /**
+     * 创建一张指定尺寸的图片
+     *
+     * @param
+     * @return
+     * @date 2025-10-27 10:32:03
+     */
+    public static ByteArrayOutputStream createImage(int width, int height, String text) throws IOException {
+        // 得到图片缓冲区
+        BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
+        // 获取绘制环境
+        Graphics2D g2d = (Graphics2D)bi.getGraphics();
+        // 设置背景色
+        g2d.setColor(Color.WHITE);
+        //填冲一个矩形
+        g2d.fillRect(0, 0, width, height);
+        //给图片加边框
+        g2d.setColor(Color.RED);
+        g2d.drawRect(0, 0, width-1, height-1);
+        String fontName = "WenQuanYi Micro Hei";
+        int fontSize = 18;
+        g2d.setFont(new Font(fontName, Font.PLAIN, fontSize));
+        //设置颜色
+        g2d.setColor(Color.RED);
+        //向图片中写字符串
+        g2d.drawString(text, 5, 29);
+
+        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+        ImageIO.write(bi, "jpg", byteArrayOutputStream);
+        return byteArrayOutputStream;
+    }
+
+    @Deprecated
     public static Size info(File file) throws IOException {
         BufferedImage bi = ImageIO.read(file);
         return new Size(bi.getWidth(), bi.getHeight());
     }
 
+    @Deprecated
     public static String getFormat(File file) {
         try (ImageInputStream iis = ImageIO.createImageInputStream(file);) {
             Iterator<ImageReader> iterator = ImageIO.getImageReaders(iis);

+ 35 - 0
jdk/src/main/java/cn/reghao/jutil/jdk/image/model/ImageProps.java

@@ -0,0 +1,35 @@
+package cn.reghao.jutil.jdk.image.model;
+
+/**
+ * @author reghao
+ * @date 2025-10-27 10:25:45
+ */
+public class ImageProps {
+    private int width;
+    private int height;
+    private String format;
+    private long size;
+
+    public ImageProps(int width, int height, String format, long size) {
+        this.width = width;
+        this.height = height;
+        this.format = format;
+        this.size = size;
+    }
+
+    public int getWidth() {
+        return width;
+    }
+
+    public int getHeight() {
+        return height;
+    }
+
+    public String getFormat() {
+        return format;
+    }
+
+    public long getSize() {
+        return size;
+    }
+}