From a3793a4280b9a6d1e0ec2b72ebaa0a4c66681923 Mon Sep 17 00:00:00 2001 From: 00fly Date: Fri, 1 Nov 2024 08:46:36 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9F=EF=B8=8F=E6=8A=80=E6=9C=AF?= =?UTF-8?q?=E6=91=B8=E9=B1=BC=201.=E8=BD=AC=E6=8D=A2=E4=B8=BABufferedImage?= =?UTF-8?q?=EF=BC=8C=E9=98=B2=E6=AD=A2UrlResource=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E4=B8=8D=E9=80=9A=E5=BC=82=E5=B8=B8=20=202.=E6=B8=90=E8=BF=9B?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fly/demo/ui/ImageMove.java" | 6 ++-- .../com/fly/demo/ui/base/ImageUtils.java" | 30 +++++++++++++------ 2 files changed, 25 insertions(+), 11 deletions(-) diff --git "a/\360\237\220\237\357\270\217\346\212\200\346\234\257\346\221\270\351\261\274\357\274\210\346\227\266\351\232\220\346\227\266\347\216\260\347\232\204\345\233\276\347\211\207+\344\270\215\346\226\255\347\247\273\345\212\250\347\232\204\345\233\276\347\211\207+\351\232\217\346\234\272\346\270\270\350\265\260\347\232\204\351\274\240\346\240\207+\351\232\217\346\234\272\346\211\223\345\274\200\346\265\217\350\247\210\345\231\250\357\274\211/src/main/java/com/fly/demo/ui/ImageMove.java" "b/\360\237\220\237\357\270\217\346\212\200\346\234\257\346\221\270\351\261\274\357\274\210\346\227\266\351\232\220\346\227\266\347\216\260\347\232\204\345\233\276\347\211\207+\344\270\215\346\226\255\347\247\273\345\212\250\347\232\204\345\233\276\347\211\207+\351\232\217\346\234\272\346\270\270\350\265\260\347\232\204\351\274\240\346\240\207+\351\232\217\346\234\272\346\211\223\345\274\200\346\265\217\350\247\210\345\231\250\357\274\211/src/main/java/com/fly/demo/ui/ImageMove.java" index d2126aa..c3173f1 100644 --- "a/\360\237\220\237\357\270\217\346\212\200\346\234\257\346\221\270\351\261\274\357\274\210\346\227\266\351\232\220\346\227\266\347\216\260\347\232\204\345\233\276\347\211\207+\344\270\215\346\226\255\347\247\273\345\212\250\347\232\204\345\233\276\347\211\207+\351\232\217\346\234\272\346\270\270\350\265\260\347\232\204\351\274\240\346\240\207+\351\232\217\346\234\272\346\211\223\345\274\200\346\265\217\350\247\210\345\231\250\357\274\211/src/main/java/com/fly/demo/ui/ImageMove.java" +++ "b/\360\237\220\237\357\270\217\346\212\200\346\234\257\346\221\270\351\261\274\357\274\210\346\227\266\351\232\220\346\227\266\347\216\260\347\232\204\345\233\276\347\211\207+\344\270\215\346\226\255\347\247\273\345\212\250\347\232\204\345\233\276\347\211\207+\351\232\217\346\234\272\346\270\270\350\265\260\347\232\204\351\274\240\346\240\207+\351\232\217\346\234\272\346\211\223\345\274\200\346\265\217\350\247\210\345\231\250\357\274\211/src/main/java/com/fly/demo/ui/ImageMove.java" @@ -60,11 +60,13 @@ public class ImageMove */ private static void move() { + int x = dialog.getX() + (RandomUtils.nextBoolean() ? 1 : -1) * RandomUtils.nextInt(10, 100); + int y = dialog.getY() + (RandomUtils.nextBoolean() ? 1 : -1) * RandomUtils.nextInt(10, 100); Dimension screenSize = dialog.getToolkit().getScreenSize(); Dimension dialogSize = dialog.getSize(); dialogSize.height = Math.min(screenSize.height, dialogSize.height); dialogSize.width = Math.min(screenSize.width, dialogSize.width); - dialog.setLocation(RandomUtils.nextInt(0, screenSize.width - dialogSize.height), RandomUtils.nextInt(0, screenSize.height - dialogSize.width)); + dialog.setLocation(x % screenSize.width, y % screenSize.height); dialog.setVisible(true); // 重新显示 // 移动鼠标 @@ -76,6 +78,6 @@ public class ImageMove public static void main(String[] args) { - Executors.newScheduledThreadPool(2).scheduleAtFixedRate(ImageMove::move, 2, 10, TimeUnit.SECONDS); + Executors.newScheduledThreadPool(2).scheduleAtFixedRate(ImageMove::move, 2, 5, TimeUnit.SECONDS); } } diff --git "a/\360\237\220\237\357\270\217\346\212\200\346\234\257\346\221\270\351\261\274\357\274\210\346\227\266\351\232\220\346\227\266\347\216\260\347\232\204\345\233\276\347\211\207+\344\270\215\346\226\255\347\247\273\345\212\250\347\232\204\345\233\276\347\211\207+\351\232\217\346\234\272\346\270\270\350\265\260\347\232\204\351\274\240\346\240\207+\351\232\217\346\234\272\346\211\223\345\274\200\346\265\217\350\247\210\345\231\250\357\274\211/src/main/java/com/fly/demo/ui/base/ImageUtils.java" "b/\360\237\220\237\357\270\217\346\212\200\346\234\257\346\221\270\351\261\274\357\274\210\346\227\266\351\232\220\346\227\266\347\216\260\347\232\204\345\233\276\347\211\207+\344\270\215\346\226\255\347\247\273\345\212\250\347\232\204\345\233\276\347\211\207+\351\232\217\346\234\272\346\270\270\350\265\260\347\232\204\351\274\240\346\240\207+\351\232\217\346\234\272\346\211\223\345\274\200\346\265\217\350\247\210\345\231\250\357\274\211/src/main/java/com/fly/demo/ui/base/ImageUtils.java" index d0c6d62..62d6939 100644 --- "a/\360\237\220\237\357\270\217\346\212\200\346\234\257\346\221\270\351\261\274\357\274\210\346\227\266\351\232\220\346\227\266\347\216\260\347\232\204\345\233\276\347\211\207+\344\270\215\346\226\255\347\247\273\345\212\250\347\232\204\345\233\276\347\211\207+\351\232\217\346\234\272\346\270\270\350\265\260\347\232\204\351\274\240\346\240\207+\351\232\217\346\234\272\346\211\223\345\274\200\346\265\217\350\247\210\345\231\250\357\274\211/src/main/java/com/fly/demo/ui/base/ImageUtils.java" +++ "b/\360\237\220\237\357\270\217\346\212\200\346\234\257\346\221\270\351\261\274\357\274\210\346\227\266\351\232\220\346\227\266\347\216\260\347\232\204\345\233\276\347\211\207+\344\270\215\346\226\255\347\247\273\345\212\250\347\232\204\345\233\276\347\211\207+\351\232\217\346\234\272\346\270\270\350\265\260\347\232\204\351\274\240\346\240\207+\351\232\217\346\234\272\346\211\223\345\274\200\346\265\217\350\247\210\345\231\250\357\274\211/src/main/java/com/fly/demo/ui/base/ImageUtils.java" @@ -7,6 +7,7 @@ import java.net.MalformedURLException; import java.nio.charset.Charset; import java.util.List; import java.util.stream.Collectors; +import java.util.stream.Stream; import javax.imageio.ImageIO; @@ -24,14 +25,14 @@ import lombok.extern.slf4j.Slf4j; @Slf4j public class ImageUtils { - private static Resource[] resources; + private static List images; static { try { - resources = getResources(); - log.info("resources.length: {}", resources.length); + images = Stream.of(getResources()).map(r -> readImage(r)).filter(i -> i != null).collect(Collectors.toList()); + log.info("images.length: {}", images.size()); } catch (IOException e) { @@ -51,6 +52,8 @@ public class ImageUtils { try (InputStream is = new ClassPathResource("images/urls.txt").getInputStream()) { + Resource[] jpegs = new PathMatchingResourcePatternResolver().getResources("classpath:images/*.jpeg"); + Resource[] pngs = new PathMatchingResourcePatternResolver().getResources("classpath:images/*.png"); List urlResources = IOUtils.readLines(is, Charset.defaultCharset()).stream().filter(StringUtils::isNotBlank).map(url -> { try { @@ -62,8 +65,6 @@ public class ImageUtils return null; } }).filter(r -> r != null).collect(Collectors.toList()); - Resource[] jpegs = new PathMatchingResourcePatternResolver().getResources("classpath:images/*.jpeg"); - Resource[] pngs = new PathMatchingResourcePatternResolver().getResources("classpath:images/*.png"); // 本地与Url图片资源合并 return ArrayUtils.addAll(ArrayUtils.addAll(jpegs, pngs), urlResources.toArray(new Resource[0])); @@ -71,14 +72,14 @@ public class ImageUtils } /** - * 返回随机图片 + * 转换为BufferedImage * + * @param resource * @return */ - public static BufferedImage getRandomImage() + private static BufferedImage readImage(Resource resource) { - int index = RandomUtils.nextInt(0, resources.length); - try (InputStream is = resources[index].getInputStream()) + try (InputStream is = resource.getInputStream()) { return ImageIO.read(is); } @@ -88,4 +89,15 @@ public class ImageUtils return null; } } + + /** + * 返回随机图片 + * + * @return + */ + public static BufferedImage getRandomImage() + { + int index = RandomUtils.nextInt(0, images.size()); + return images.get(index); + } } \ No newline at end of file -- Gitee