From d365a1fcf80034dbd22b7ffc75b4a9383c51bd66 Mon Sep 17 00:00:00 2001 From: wangbing Date: Tue, 27 Aug 2024 23:58:43 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=87=87=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/encodings.xml | 1 - legend/L15,632-野外_搜索.png | Bin 0 -> 1346 bytes legend/L196,218-探险_获得奖励.png | Bin 0 -> 6626 bytes legend/L230,664-探险_领取2.png | Bin 0 -> 3520 bytes legend/L233,881-野外_搜索.png | Bin 0 -> 3411 bytes legend/L240,854-探险_按钮.png | Bin 0 -> 3341 bytes legend/L35,881-TAB_探险.png | Bin 0 -> 3197 bytes legend/L4,4-探险_返回.png | Bin 0 -> 3476 bytes legend/L426,667-探险_领取.png | Bin 0 -> 2461 bytes legend/L449,887-城镇.png | Bin 0 -> 6614 bytes legend/L454,41-城镇_充值.png | Bin 0 -> 1476 bytes pom.xml | 14 ++-- .../java/com/example/jmacro/wjdr/JMacro.java | 66 +++++++++++++++++- .../com/example/jmacro/wjdr/MainTask.java | 31 ++++---- .../example/jmacro/wjdr/task/TaskMining.java | 39 ++++++----- .../example/jmacro/wjdr/task/TaskRewards.java | 64 +++++++++++++++++ .../com/example/jmacro/wjdr/util/Capture.java | 7 +- 17 files changed, 180 insertions(+), 42 deletions(-) create mode 100644 legend/L15,632-野外_搜索.png create mode 100644 legend/L196,218-探险_获得奖励.png create mode 100644 legend/L230,664-探险_领取2.png create mode 100644 legend/L233,881-野外_搜索.png create mode 100644 legend/L240,854-探险_按钮.png create mode 100644 legend/L35,881-TAB_探险.png create mode 100644 legend/L4,4-探险_返回.png create mode 100644 legend/L426,667-探险_领取.png create mode 100644 legend/L449,887-城镇.png create mode 100644 legend/L454,41-城镇_充值.png create mode 100644 src/main/java/com/example/jmacro/wjdr/task/TaskRewards.java diff --git a/.idea/encodings.xml b/.idea/encodings.xml index d2b8c0c..63574ec 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -3,7 +3,6 @@ - \ No newline at end of file diff --git a/legend/L15,632-野外_搜索.png b/legend/L15,632-野外_搜索.png new file mode 100644 index 0000000000000000000000000000000000000000..f16be24e3f0c3dabd55089d8a5c42106ce56b9f2 GIT binary patch literal 1346 zcmV-I1-<%-P)b000FENklx}po=iRJj|VLHxUkHK+gxh-3IO!~sCC$2=|JI^G%NGOM_tC*Z#Kz;Kdf}=}t;dcC?9Iy+1(IXK_+4V4t&ti3L zLx3G5?8wUMI&_A2h)k)%1-E#aO{v-hKX)?@5y@4UnKNQ*Yg>vV9O3u29OCy=@7^Oc zp#opsh?Uts5Zu8v8UbNN7@u0O80Y8u#wPS*GsrD&#iLL)Zu(}6XI@Dg4D_DA-+z9D zGVmaz0H6BWL7PlV!LDjxokhv29p1ctuB z(+D-H8niGjtymmbU*AAQT`#WOePy@)R^X1*sUfjtn4355=8%M&sl2WaZoZlL>{=Ag zDP!UHJRe0B9q8)QQ@4*GnkFGAya0901EMK+od(7y=kO$=7-tkQGGH0_C9h6;}YHP_8(Tt>30366^0sBP&9=SZBTu6Cf*p1K-| zq+AV5rq$idZEsUqba0_QlHQYn-}1}Cs9{=MWO=`6LUcx*h*Wyfp2lW2P~$C&`y51P zuO14Y4B0tW>&PFy#=!8zhseoD+8YhdD-WJmvpW75gN%Y!(WD}BDql;-Fh!mwJIiVX ze(l#ZXxfGZg|e&?V^ufyL+N8XZBkV}NJo9k5RKWUxX-n(sO^Q5_aSP|Gptg#2%2PJ z%4B*CjwyqKi~YK@o}s>YL98}DHIMDR%q>#pQdISV>!s&q;M_1i&kHd-za%cRFj+Jb z>A3l3h~|C_?M z&wO0+NDx_INBDV}J_m&tqP=I-l5TN_QeIfrj?2UeQVhG`C&}oYpj_zm(^iXv|DIo1 zLNhf`j=CAC*>%V%Y8DN}@3}-~VaK(DWAF%6;dA1HPbs6eC{_l}%3aH>#tUP=QM2$H zTN{mq&kv7G!9TPRU*C#@UuZt{kp^M$rTB*T{C|P7o>#`v;wYgA#zorgftiKB<#U~V z1_CY+<9Y8{jwlB+B`+tYVV)>+57-4~<@I`-7D~b2?bL)uF@hW!JHo#3)BJ0OcX&2U ziqa=dtWi(meqK7^c@|zyZ>vN44q}e zNrfFaGH?f~dtg{0y0vfZI&fs*tW3F&!`0{=7_%avj{?rhOz0n`rfoTijSXuDjvSno z9S96BqW^Fv1Q+ml^6Y;Ua8`C8fHKh8YY>~Sx~U)k0;$i4Kfl|q0RR9107*qoM6N<$ Eg3aZOP5=M^ literal 0 HcmV?d00001 diff --git a/legend/L196,218-探险_获得奖励.png b/legend/L196,218-探险_获得奖励.png new file mode 100644 index 0000000000000000000000000000000000000000..29019d0fba0b075fabe31b3d04e6c6fea2a2881f GIT binary patch literal 6626 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 utcjE)tKn~wB<h5m5oD76e7Ju$M@T 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 XIf>qya07M?00000NkvXXu0mjf-T_RJ literal 0 HcmV?d00001 diff --git a/legend/L35,881-TAB_探险.png b/legend/L35,881-TAB_探险.png new file mode 100644 index 0000000000000000000000000000000000000000..e373e3ef51b5f3502ea0570e921f0f54dd92b4a4 GIT binary patch literal 3197 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 bdA;#pzS!?F3iUK400000NkvXXu0mjfNy4kl literal 0 HcmV?d00001 diff --git a/legend/L449,887-城镇.png b/legend/L449,887-城镇.png new file mode 100644 index 0000000000000000000000000000000000000000..fe0660bc7902e60bc84aa715c506deb2d0e43b12 GIT binary patch literal 6614 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 UWkK-l_W%F@07*qoM6N<$f=v8(_y7O^ literal 0 HcmV?d00001 diff --git a/legend/L454,41-城镇_充值.png b/legend/L454,41-城镇_充值.png new file mode 100644 index 0000000000000000000000000000000000000000..19b4a495cf1aed500833e4e55225a2ebc14f03ea GIT binary patch literal 1476 zcmV;#1v~nQP)3Y3Bf7NMowzxzHflr*K1HaVevd7kHU&UwD)oL5q*RZyxFh>wp$!Efi# z`t~ix#>Ox+GXsyugC~z3;o!bR7Xg{EaXl(Z zOEB2qkEy9Cct%I@^2KwUKADQxC_N%{UqKSEl`+xCJ9`%GgpCvC{RpVj>BOy@H?eig zCg`-G&@EHKWKbhQhK9jJkbc=xY+LsY$_xL5v%4G9)6=v2`PV%(gjdg><78?QzFr;< zX|;6~E}lP+cWrH$7$27*z9u$*?CnL#l`Gi1VJ(3w=)x6@NF|#|tHg%*Xk07Ehohqd zGn13^&U*KI+-@|~)*$8BQAmYc*vW;H6B7$y^P8BSo~|ww|8*H_t+9-Vsa>X!Ve4a~ zP?U29b~-H1@P)}X_uEZqZA~?#jyG=tM&@r*^xR?ZM&a-IShwnHm>Hcl%8Wlwr^DXS zF8_Z4%nPJV&q1Y6uU}(wWJJ#Qg2e%#-R6QxhhJhl7GnG8-K)U*ey#Qq(0xdzI?Bs2$VkT-skr0? zn*ut9o!#3Vun!fWef8^Y%%jX;bFSFU%kTXiaV&t zK7$jxcR&hNDY4RMM9R*c_&Xy5w(Hm7sHwr|z`$&J7l|N{&C%pcIqK`t$fj|Ju%v{Y zu!_Q0DHRYFZ8RWx$99yTI)&Q8LUcZPf)QS_$bT^Re-1>8EIUkfsuw_g^_ot zR0x$S@dFz`9hE7%hbV`|I*#|_|9l=ew||^>YHNCf^wea;uF%7*T>?q3)#BKZBWQT` z3?8;Cx!?mF;%ie(n^0shViIo;Z*4Z@X8eLRv5}C@W&Db!#zuM4`!Du2??)(ch)Vp_ z+A0@!Fi_!OS4#^npFao5!7t*0{~~{rVO-~Y_YQ4$@5075_<>VHH2lTVI}c?>dMHF` zEQmUjVa&itPY>FtzWZ63c$k$1+l?C-Y;Kkv2?i?9!+zF`hpJrc?t}nbOk+D?|E8rO zbI%^+9XNoeXLHcUj^gCYm)9}>z4HT@=T9;?sev`u$5}Y``E$TXg;%3o*u&Sw7Z)zz z^zL1-vhRLtF(H%6ewvemw%fPi?(3TsQUIWME`~vGZ7rnYloZr6H4dLy==IhMbFf_M zFI~dzq$F%z83SFY66&QPu$l}I^R%X*0Cx7>Ku~$o^F7thDyY6(1Zm%zHMn--1RBfA z(8t;38>xq|KGF5BUPamQ - - org.jb2011.lnf - beautyeye - 1.0.0 - system - ${project.basedir}/src/main/resources/lib/beautyeye_lnf.jar - + + + + + + + diff --git a/src/main/java/com/example/jmacro/wjdr/JMacro.java b/src/main/java/com/example/jmacro/wjdr/JMacro.java index 3f1df5b..091dd5f 100644 --- a/src/main/java/com/example/jmacro/wjdr/JMacro.java +++ b/src/main/java/com/example/jmacro/wjdr/JMacro.java @@ -287,6 +287,9 @@ public class JMacro { * @return 匹配图片区域 */ public ScreenRect findPic(ScreenRect screenRect, String legendName, double minSimilar) { + if (!legendName.endsWith(".png")) { + legendName = legendName + ".png"; + } return findPic(screenRect, new File(legend, legendName), minSimilar); } @@ -314,6 +317,7 @@ public class JMacro { public ScreenRect findPic(ScreenRect screenRect, BufferedImage pic, double minSimilar) { // 当查找区域比图片还小时,直接返回失败 if (screenRect.getWidth() < pic.getWidth() || screenRect.getHeight() < pic.getHeight()) { + Logger.error("视口尺寸小于图片"); return null; } @@ -352,6 +356,11 @@ public class JMacro { } } } +// try { +// ImgUtil.write(screen,"png", new FileOutputStream("D://1.png")); +// } catch (FileNotFoundException e) { +// +// } return null; } @@ -458,6 +467,55 @@ public class JMacro { }, time, unit); } + /** + * 等待并匹配图例 + * + * @param rect 参照区域 + * @param legendName 图例名称 + * @param minSimilar 最低相似度 + * @return 匹配图片区域 + */ + public ScreenRect waitAndMatchPic(ScreenRect rect, String legendName, double minSimilar) { + if (!legendName.endsWith(".png")) { + legendName = legendName + ".png"; + } + return waitAndMatchPic(rect, new File(legend, legendName), minSimilar, 10, TimeUnit.SECONDS); + } + + /** + * 等待并匹配图例 + * + * @param rect 参照区域 + * @param file 图例 + * @param minSimilar 最低相似度 + * @return 匹配图片区域 + */ + public ScreenRect waitAndMatchPic(ScreenRect rect, File file, double minSimilar) { + return waitAndMatchPic(rect, file, minSimilar, 10, TimeUnit.SECONDS); + } + + /** + * 等待并匹配图例 + * + * @param rect 参照区域 + * @param file 图例 + * @param minSimilar 最低相似度 + * @param time 最长等待时间 + * @param unit 最长等待时间单位 + * @return 匹配图片区域 + */ + public ScreenRect waitAndMatchPic(ScreenRect rect, File file, double minSimilar, long time, TimeUnit unit) { + return TaskUtil.timeTask(() -> { + while (true) { + delayTap(); + ScreenRect matchPic = matchPic(rect, file, minSimilar); + if (matchPic != null) { + return matchPic; + } + } + }, time, unit); + } + /** * 匹配图片 * @@ -467,6 +525,10 @@ public class JMacro { * @return 匹配图片 */ public ScreenRect matchPic(ScreenRect rect, File file, double minSimilar) { + if (!file.exists()) { + Logger.error("file [{}] not exist", file.getAbsolutePath()); + return null; + } String name = file.getName(); int offsetX = 0; int offsetY = 0; @@ -480,7 +542,6 @@ public class JMacro { BufferedImage image = Imager.load(file); screenRect.setRight(screenRect.getLeft() + image.getWidth()); screenRect.setBottom(screenRect.getTop() + image.getHeight()); - System.out.println(screenRect.toString()); return findPic(screenRect, image, minSimilar); } @@ -493,6 +554,9 @@ public class JMacro { * @return 匹配图片 */ public ScreenRect matchPic(ScreenRect rect, String legendName, double minSimilar) { + if (!legendName.endsWith(".png")) { + legendName = legendName + ".png"; + } return matchPic(rect, new File(legend, legendName), minSimilar); } diff --git a/src/main/java/com/example/jmacro/wjdr/MainTask.java b/src/main/java/com/example/jmacro/wjdr/MainTask.java index afe6235..457c70c 100644 --- a/src/main/java/com/example/jmacro/wjdr/MainTask.java +++ b/src/main/java/com/example/jmacro/wjdr/MainTask.java @@ -7,6 +7,7 @@ import cn.hutool.core.util.RandomUtil; import com.example.jmacro.wjdr.base.ScreenRect; import com.example.jmacro.wjdr.task.TaskMineAttack; import com.example.jmacro.wjdr.task.TaskMining; +import com.example.jmacro.wjdr.task.TaskRewards; import com.example.jmacro.wjdr.util.Capture; import com.example.jmacro.wjdr.util.Logger; import com.example.jmacro.wjdr.util.TaskUtil; @@ -58,11 +59,11 @@ public class MainTask extends JFrame { public void start() throws AWTException { // 加载主题 - try { - org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF(); - } catch (Exception e) { - e.printStackTrace(); - } +// try { +// org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF(); +// } catch (Exception e) { +// e.printStackTrace(); +// } // 设置标题 setTitle("无限工具"); // 设置图标 @@ -155,6 +156,10 @@ public class MainTask extends JFrame { public MacroThread(JMacro jMacro) { super(jMacro); + } + + @Override + public void run() { // 定位mumu bar Logger.info("定位慕慕窗口"); ScreenRect mumu = jMacro.findPic("慕慕_工具栏", 0.95d); @@ -170,10 +175,6 @@ public class MainTask extends JFrame { gameScreen.setBottom(mumu.getBottom() + 951); Logger.info("应用窗口位置:" + gameScreen.toString()); Logger.info("应用窗口大小:{}x{}", gameScreen.getRight() - gameScreen.getLeft(), gameScreen.getBottom() - gameScreen.getTop()); - } - - @Override - public void run() { // 获取启动图标 Logger.info("定位启动图标"); ScreenRect launch = jMacro.waitAndFindPic(gameScreen, "启动图标", 0.8); @@ -190,7 +191,7 @@ public class MainTask extends JFrame { while (true) { jMacro.delay(); { // 定位弹框,关闭弹框 - ScreenRect rect = jMacro.findPic(gameScreen, "首页_广告关闭按钮", 0.95d); + ScreenRect rect = jMacro.matchPic(gameScreen, "L454,41-城镇_充值", 0.1d); if (rect != null) { jMacro.mouseLeftClick(rect); Logger.info("检测到广告弹框,关闭弹框"); @@ -199,7 +200,7 @@ public class MainTask extends JFrame { jMacro.delay(); { // 定位离线收益弹框,关闭弹框 - ScreenRect rect = jMacro.matchPic(gameScreen, new File("legend", "L204,734-城镇_离线收益.png"), 0.9); + ScreenRect rect = jMacro.matchPic(gameScreen, "L204,734-城镇_离线收益", 0.9); if (rect != null) { jMacro.mouseLeftClick(rect); Logger.info("检测到离线收益弹框,关闭弹框"); @@ -208,13 +209,13 @@ public class MainTask extends JFrame { jMacro.delay(); // 定位主程序 - ScreenRect rect = jMacro.matchPic(gameScreen, new File("legend", "L444,888-野外.png"), 0.9); + ScreenRect rect = jMacro.matchPic(gameScreen, "L444,888-野外", 0.9); if (rect != null) { Logger.info("程序主界面已就绪"); return rect; } } - }, 30 * 1000, TimeUnit.MILLISECONDS); + }, 30, TimeUnit.SECONDS); if (城镇 == null) { schedule.cancel(true); @@ -234,6 +235,10 @@ public class MainTask extends JFrame { jMacro.delayNormal(); new TaskMineAttack(jMacro, gameScreen).run(); + // 矿场攻击检测任务 + jMacro.delayNormal(); + new TaskRewards(jMacro, gameScreen).run(); + // 自动采矿任务 jMacro.delayNormal(); new TaskMining(jMacro, gameScreen).run(); diff --git a/src/main/java/com/example/jmacro/wjdr/task/TaskMining.java b/src/main/java/com/example/jmacro/wjdr/task/TaskMining.java index c9ae16a..571a898 100644 --- a/src/main/java/com/example/jmacro/wjdr/task/TaskMining.java +++ b/src/main/java/com/example/jmacro/wjdr/task/TaskMining.java @@ -18,20 +18,26 @@ public class TaskMining extends BaseTask { public void run() { Logger.info("》》》自动采矿开始》》》"); - Logger.info("定位【野外】"); - ScreenRect 野外 = jMacro.waitAndFindPic(screenRect, new File("legend", "城镇_野外.png"), 0.99); - if (野外 == null) { - Logger.error("定位【野外】失败,采矿终止"); - return; - } - Logger.error("定位【野外】成功,{}", 野外.toString()); + Logger.info("判断是否在野外"); + ScreenRect 城镇 = jMacro.waitAndMatchPic(this.screenRect, "L449,887-城镇", 0.9); + if (城镇 != null) { + Logger.info("当前界面【野外】"); + } else { + Logger.info("定位【野外】"); + ScreenRect 野外 = jMacro.waitAndMatchPic(this.screenRect, "城镇_野外", 0.99); + if (野外 == null) { + Logger.error("定位【野外】失败,采矿终止"); + return; + } + Logger.error("定位【野外】成功,{}", 野外.toString()); - Logger.info("点击【野外】,坐标{}", JSONUtil.toJsonStr(野外.getCenter())); - jMacro.mouseLeftClick(野外); - Logger.info("定位野外按钮成功"); + Logger.info("点击【野外】,坐标{}", JSONUtil.toJsonStr(野外.getCenter())); + jMacro.mouseLeftClick(野外); + Logger.info("定位野外按钮成功"); + } Logger.info("定位资源搜索按钮"); - ScreenRect 野外搜索 = jMacro.waitAndFindPic(screenRect, new File("legend", "野外_搜索.png"), 1); + ScreenRect 野外搜索 = jMacro.waitAndMatchPic(this.screenRect, "L15,632-野外_搜索", 0.8); if (野外搜索 == null) { Logger.error("未检测到【资源搜索按钮】,采矿终止"); return; @@ -50,18 +56,19 @@ public class TaskMining extends BaseTask { } } - ScreenRect 搜索 = jMacro.waitAndFindPic(screenRect, new File("legend", "野外_资源_搜索.png"), 0.98); + // 检测是否是搜索界面 + ScreenRect 搜索 = jMacro.waitAndMatchPic(this.screenRect, "L233,881-野外_搜索", 0.98); if (搜索 != null) { Logger.info("退出资源搜索界面"); - jMacro.mouseLeftClick(screenRect); + jMacro.mouseLeftClick(this.screenRect); } - ScreenRect 城镇 = jMacro.waitAndFindPic(screenRect, new File("legend", "城镇.png"), 0.9); - if (城镇 == null) { + ScreenRect 城1 = jMacro.waitAndMatchPic(this.screenRect, "L456,887-城镇", 0.9); + if (城1 == null) { Logger.error("未检测到【城镇】,采矿终止"); return; } - + Logger.info("返回城镇"); Logger.info("》》》自动采矿结束,返回城镇》》》"); } diff --git a/src/main/java/com/example/jmacro/wjdr/task/TaskRewards.java b/src/main/java/com/example/jmacro/wjdr/task/TaskRewards.java new file mode 100644 index 0000000..7f88572 --- /dev/null +++ b/src/main/java/com/example/jmacro/wjdr/task/TaskRewards.java @@ -0,0 +1,64 @@ +package com.example.jmacro.wjdr.task; + +import com.example.jmacro.wjdr.JMacro; +import com.example.jmacro.wjdr.base.ScreenRect; +import com.example.jmacro.wjdr.util.Logger; + +public class TaskRewards extends BaseTask { + + public TaskRewards(JMacro jMacro, ScreenRect screenRect) { + super(jMacro, screenRect); + } + + @Override + public void run() { + Logger.info("》》》探险奖励领取开始》》》"); + + Logger.info("定位【探险】按钮"); + ScreenRect TAB_探险 = jMacro.waitAndMatchPic(this.screenRect, "L35,881-TAB_探险", 0.9); + if (TAB_探险 == null) { + return; + } + + Logger.info("点击【探险】按钮"); + jMacro.mouseLeftClick(TAB_探险); + + ScreenRect 探险_按钮 = jMacro.waitAndMatchPic(this.screenRect, "L240,854-探险_按钮", 0.9); + if (探险_按钮 == null) { + Logger.info("进入探险界面失败"); + return; + } + Logger.info("进入探险界面成功"); + + Logger.info("定位领取按钮"); + ScreenRect 探险_领取 = jMacro.waitAndMatchPic(this.screenRect, "L426,667-探险_领取", 0.8); + if (探险_领取 == null) { + Logger.error("未检测到【探险_领取】,领取终止"); + return; + } + Logger.info("定位领取按钮成功,准备领取:{}", 探险_领取.toString()); + jMacro.mouseLeftClick(探险_领取); + ScreenRect 探险_领取2 = jMacro.waitAndMatchPic(this.screenRect, "L230,664-探险_领取2", 0.8); + if (探险_领取2 == null) { + Logger.error("任务终止"); + return; + } + jMacro.mouseLeftClick(探险_领取2); + + ScreenRect 探险_获得奖励 = jMacro.waitAndMatchPic(this.screenRect, "L196,218-探险_获得奖励", 0.8); + if (探险_获得奖励 == null) { + Logger.error("任务终止"); + return; + } + jMacro.mouseLeftClick(探险_获得奖励); + + ScreenRect 探险_返回 = jMacro.waitAndMatchPic(this.screenRect, "L4,4-探险_返回", 0.8); + if (探险_返回 == null) { + Logger.error("任务终止"); + return; + } + jMacro.mouseLeftClick(探险_返回); + + Logger.info("》》》探险奖励领取结束,返回城镇》》》"); + } +} diff --git a/src/main/java/com/example/jmacro/wjdr/util/Capture.java b/src/main/java/com/example/jmacro/wjdr/util/Capture.java index d987e83..6bcb3d7 100644 --- a/src/main/java/com/example/jmacro/wjdr/util/Capture.java +++ b/src/main/java/com/example/jmacro/wjdr/util/Capture.java @@ -174,11 +174,11 @@ public class Capture extends JFrame { } public int getCaptureX() { - return (int) Math.min(start.getX(), end.getX()) + originX; + return (int) Math.min(start.getX(), end.getX()); } public int getCaptureY() { - return (int) Math.min(start.getY(), end.getY()) + originY; + return (int) Math.min(start.getY(), end.getY()); } public int getCaptureWidth() { @@ -193,10 +193,9 @@ public class Capture extends JFrame { // 上一次保存目录 String lastPath = preferences.get(LAST_PATH, ""); // 默认文件名 - String prefix = "L" + getCaptureX() + "," + getCaptureY() + "-"; + String prefix = "L" + (getCaptureX() - originX) + "," + (getCaptureY() - originY) + "-"; String filename = prefix + System.currentTimeMillis() + ".png"; - JFileChooser jFileChooser = new JFileChooser(); jFileChooser.setFileFilter(new FileNameExtensionFilter("png", "png")); jFileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);