Skip to content

Commit 01bd29a

Browse files
committed
add image file recognize
1 parent 09b52ad commit 01bd29a

File tree

5 files changed

+38
-8
lines changed

5 files changed

+38
-8
lines changed

pom.xml

+4-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<dependency>
2424
<groupId>cn.hutool</groupId>
2525
<artifactId>hutool-all</artifactId>
26-
<version>4.5.1</version>
26+
<version>4.5.16</version>
2727
</dependency>
2828

2929
<dependency>
@@ -77,7 +77,7 @@
7777
<version>8.8.3</version>
7878
<configuration>
7979
<mainClass>com.luooqi.ocr.MainFm</mainClass>
80-
<bundler>dmg</bundler>
80+
<bundler>exe</bundler>
8181
<jfxAppOutputDir>${project.build.directory}/app</jfxAppOutputDir>
8282
<nativeOutputDir>${project.build.directory}/native</nativeOutputDir>
8383
<appName>treehole</appName>
@@ -86,6 +86,8 @@
8686
<needShortcut>true</needShortcut>
8787
<bundleArguments>
8888
<runtime />
89+
<copyright>luooqi@2019</copyright>
90+
<installdirChooser>true</installdirChooser>
8991
</bundleArguments>
9092
<nativeReleaseVersion>${soft.version}</nativeReleaseVersion>
9193
</configuration>

src/main/java/com/luooqi/ocr/MainFm.java

+25
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.luooqi.ocr;
22

33
import cn.hutool.core.util.StrUtil;
4+
import cn.hutool.log.StaticLog;
45
import com.luooqi.ocr.controller.ProcessController;
56
import com.luooqi.ocr.model.CaptureInfo;
67
import com.luooqi.ocr.model.StageInfo;
@@ -22,10 +23,14 @@
2223
import javafx.scene.paint.Color;
2324
import javafx.scene.text.Font;
2425
import javafx.scene.text.FontPosture;
26+
import javafx.stage.FileChooser;
2527
import javafx.stage.Stage;
2628
import org.jnativehook.GlobalScreen;
2729

30+
import javax.imageio.ImageIO;
2831
import java.awt.image.BufferedImage;
32+
import java.io.File;
33+
import java.io.IOException;
2934
import java.util.HashMap;
3035
import java.util.Map;
3136
import java.util.logging.Level;
@@ -68,6 +73,7 @@ public void start(Stage primaryStage) {
6873

6974
HBox topBar = new HBox(
7075
CommUtils.createButton("snapBtn", MainFm::doSnap, "截图"),
76+
CommUtils.createButton("openImageBtn", MainFm::recImage, "打开"),
7177
CommUtils.createButton("copyBtn", this::copyText, "复制"),
7278
CommUtils.createButton("pasteBtn", this::pasteText, "粘贴"),
7379
CommUtils.createButton("clearBtn", this::clearText, "清空"),
@@ -147,6 +153,25 @@ public static void doSnap() {
147153
runLater(screenCapture::prepareForCapture);
148154
}
149155

156+
private static void recImage() {
157+
FileChooser fileChooser = new FileChooser();
158+
fileChooser.setTitle("Please Select Image File");
159+
fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("Image Files", "*.png", "*.jpg"));
160+
File selectedFile = fileChooser.showOpenDialog(stage);
161+
if (selectedFile == null || !selectedFile.isFile()) {
162+
return;
163+
}
164+
stageInfo = new StageInfo(stage.getX(), stage.getY(),
165+
stage.getWidth(), stage.getHeight(), stage.isFullScreen());
166+
MainFm.stage.close();
167+
try {
168+
BufferedImage image = ImageIO.read(selectedFile);
169+
doOcr(image);
170+
} catch (IOException e) {
171+
StaticLog.error(e);
172+
}
173+
}
174+
150175
public static void cancelSnap() {
151176
runLater(screenCapture::cancelSnap);
152177
}

src/main/java/com/luooqi/ocr/utils/CommUtils.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.luooqi.ocr.utils;
22

3-
import cn.hutool.core.swing.RobotUtil;
4-
import cn.hutool.core.swing.ScreenUtil;
53
import cn.hutool.core.util.CharUtil;
64
import cn.hutool.core.util.StrUtil;
75
import cn.hutool.http.HttpRequest;
@@ -13,9 +11,8 @@
1311
import javafx.geometry.Insets;
1412
import javafx.geometry.Orientation;
1513
import javafx.geometry.Rectangle2D;
16-
import javafx.scene.Scene;
17-
import javafx.scene.control.*;
1814
import javafx.scene.control.Button;
15+
import javafx.scene.control.*;
1916
import javafx.scene.layout.Background;
2017
import javafx.scene.layout.BackgroundFill;
2118
import javafx.scene.layout.CornerRadii;
@@ -36,8 +33,10 @@
3633
import java.io.IOException;
3734
import java.lang.reflect.Method;
3835
import java.net.URL;
36+
import java.util.ArrayList;
37+
import java.util.Comparator;
38+
import java.util.Iterator;
3939
import java.util.List;
40-
import java.util.*;
4140
import java.util.regex.Pattern;
4241

4342
public class CommUtils {
@@ -96,7 +95,7 @@ static String combineTextBlocks(List<TextBlock> textBlocks, boolean isEng) {
9695
int maxX = -1;
9796
double maxAngle = -100;
9897
for (TextBlock textBlock : textBlocks) {
99-
System.out.println(textBlock.getAngle()+ "\t" + textBlock.getFontSize());
98+
//System.out.println(textBlock.getAngle()+ "\t" + textBlock.getFontSize());
10099
if (textBlock.getTopLeft().x < minX) {
101100
minX = textBlock.getTopLeft().x;
102101
minBlock = textBlock;

src/main/resources/css/main.css

+4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
-fx-background-image: url(/img/screenshot.png);
1212
}
1313

14+
#openImageBtn{
15+
-fx-background-image: url(/img/add-image.png);
16+
}
17+
1418
#clearBtn{
1519
-fx-background-image: url(/img/clear.png);
1620
}

src/main/resources/img/add-image.png

650 Bytes
Loading

0 commit comments

Comments
 (0)