From b0392a55ec4274ee0357e760b4d3467ed5ccd6b2 Mon Sep 17 00:00:00 2001 From: wyb <1977763549@qq.com> Date: Fri, 7 Mar 2025 11:08:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B5=8B=E8=AF=95=E6=9B=B4=E9=80=82?= =?UTF-8?q?=E5=90=88=E7=9A=84=E8=8E=B7=E5=8F=96=E5=AE=BD=E9=AB=98=E6=96=B9?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LianzhongCollectCheckServiceImpl.java | 43 ++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/docus/server/archive/service/impl/LianzhongCollectCheckServiceImpl.java b/src/main/java/com/docus/server/archive/service/impl/LianzhongCollectCheckServiceImpl.java index d54b067..643dae3 100644 --- a/src/main/java/com/docus/server/archive/service/impl/LianzhongCollectCheckServiceImpl.java +++ b/src/main/java/com/docus/server/archive/service/impl/LianzhongCollectCheckServiceImpl.java @@ -15,6 +15,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.imageio.ImageIO; +import javax.imageio.ImageReader; +import javax.imageio.stream.ImageInputStream; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; @@ -22,6 +24,7 @@ import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Collections; import java.util.Date; +import java.util.Iterator; import java.util.List; /** @@ -106,8 +109,44 @@ public class LianzhongCollectCheckServiceImpl implements LianzhongCollectCheckSe } } + private boolean hasDamage2(List scanAssortList) { + for (ScanAssort assort : scanAssortList) { + String filePath = assort.getImagePath() + File.separator + assort.getScanPage(); + File file = new File(filePath); + if (!isOpenImage2(file)) { + return true; + } + } + return false; + } + + private boolean isOpenImage2(File file) { + try( ImageInputStream imageInputStream = ImageIO.createImageInputStream(file);) { + Iterator imageReaders = ImageIO.getImageReaders(imageInputStream); + if (!imageReaders.hasNext()) { + return false; + } + ImageReader imageReader = imageReaders.next(); + imageReader.setInput(imageInputStream); + + + return imageReader.getHeight(0) > 0 && imageReader.getWidth(0) > 0; + } catch (Exception ex) { + return false; + } + } public static void main(String[] args) { + Iterator tiffReaders = ImageIO.getImageReadersByFormatName("TIFF"); + if (!tiffReaders.hasNext()) { + System.out.println("tiff 插件加载失败!"); + } + + Iterator tiffReaders2 = ImageIO.getImageReadersByFormatName("jpeg"); + if (!tiffReaders2.hasNext()) { + System.out.println("jpeg 插件加载失败!"); + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00"); System.out.println(sdf.format(new Date())); ScanAssort scanAssort = new ScanAssort(); @@ -117,9 +156,9 @@ public class LianzhongCollectCheckServiceImpl implements LianzhongCollectCheckSe long start = System.currentTimeMillis(); LianzhongCollectCheckServiceImpl checkService = new LianzhongCollectCheckServiceImpl(); for (int i = 0; i < 1000; i++) { - boolean b = checkService.hasDamage(scanAssortList); + boolean b = checkService.hasDamage2(scanAssortList); if (i == 99) { - System.out.println(checkService.hasDamage(scanAssortList)); + System.out.println(checkService.hasDamage2(scanAssortList)); } } long total = System.currentTimeMillis() - start;