Browse Source

added resolution option

main
Stephan Richter 4 years ago
parent
commit
8751c3fdd0
  1. 2
      pom.xml
  2. 2
      resources/logback.xml
  3. 10
      src/main/java/de/srsoftware/belegscanner/gui/MainFrame.java
  4. 34
      src/main/java/de/srsoftware/belegscanner/gui/Toolbar.java

2
pom.xml

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>BelegScanner</groupId> <groupId>BelegScanner</groupId>
<artifactId>BelegScanner</artifactId> <artifactId>BelegScanner</artifactId>
<version>0.0.12</version> <version>0.0.13</version>
<name>BelegScanner</name> <name>BelegScanner</name>
<packaging>jar</packaging> <packaging>jar</packaging>

2
resources/logback.xml

@ -13,7 +13,7 @@
<appender-ref ref="CONSOLE"/> <appender-ref ref="CONSOLE"/>
</logger> </logger>
<logger name="de.srsoftware.belegscanner.gui.Toolbar" level="debug" additivity="false"> <logger name="de.srsoftware.belegscanner.gui.MainFrame" level="debug" additivity="false">
<appender-ref ref="CONSOLE"/> <appender-ref ref="CONSOLE"/>
</logger> </logger>

10
src/main/java/de/srsoftware/belegscanner/gui/MainFrame.java

@ -64,7 +64,6 @@ public class MainFrame extends JFrame {
private Configuration config; private Configuration config;
private int resoultion = 150;
private String mode = "Color"; private String mode = "Color";
private DocTable docTable; private DocTable docTable;
@ -139,6 +138,7 @@ public class MainFrame extends JFrame {
docTable.add(path); docTable.add(path);
int resolution = toolbar.getResolution();
long timestamp = new Date().getTime(); long timestamp = new Date().getTime();
String raw = timestamp+".jpg"; String raw = timestamp+".jpg";
@ -151,7 +151,7 @@ public class MainFrame extends JFrame {
cmd.add("--mode"); cmd.add("--mode");
cmd.add(mode); cmd.add(mode);
cmd.add("--resolution"); cmd.add("--resolution");
cmd.add(resoultion+""); cmd.add(resolution+"");
cmd.add("-o"); cmd.add("-o");
cmd.add(raw); cmd.add(raw);
LOG.debug("executing {}",cmd); LOG.debug("executing {}",cmd);
@ -204,10 +204,14 @@ public class MainFrame extends JFrame {
cmd.add("-lang"); cmd.add("-lang");
cmd.add("deu"); cmd.add("deu");
cmd.add("-rgb"); cmd.add("-rgb");
if (resolution>300) {
cmd.add("-resolution");
cmd.add(""+resolution);
}
cmd.add("-o"); cmd.add("-o");
cmd.add(ocr); cmd.add(ocr);
cmd.add(pdf); cmd.add(pdf);
LOG.debug("executing {}",cmd);
builder = new ProcessBuilder(cmd); builder = new ProcessBuilder(cmd);
builder.directory(folder); builder.directory(folder);
try { try {

34
src/main/java/de/srsoftware/belegscanner/gui/Toolbar.java

@ -17,10 +17,12 @@ import java.util.stream.Collectors;
import javax.swing.Box; import javax.swing.Box;
import javax.swing.BoxLayout; import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.JLabel; import javax.swing.JLabel;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField; import javax.swing.JTextField;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
@ -85,6 +87,7 @@ public class Toolbar extends JPanel {
private JTextField width; private JTextField width;
private JTextField height; private JTextField height;
private SelectComboBox catPicker; private SelectComboBox catPicker;
private int resolution = 150;
public Toolbar(Configuration config) { public Toolbar(Configuration config) {
this.config = config; this.config = config;
@ -93,12 +96,38 @@ public class Toolbar extends JPanel {
add(input("Kategorie",catPicker = categoryPicker(config))); add(input("Kategorie",catPicker = categoryPicker(config)));
add(input("Pfad",pathPicker = pathPicker())); add(input("Pfad",pathPicker = pathPicker()));
addFormatSelector(); addFormatSelector();
add(resolutionSelector());
add(scanButton()); add(scanButton());
add(Box.createGlue()); add(Box.createGlue());
Arrays.stream(getComponents()).filter(c -> c instanceof JPanel).map(JPanel.class::cast).forEach(p -> p.setBorder(BORDER)); Arrays.stream(getComponents()).filter(c -> c instanceof JPanel).map(JPanel.class::cast).forEach(p -> p.setBorder(BORDER));
} }
private JPanel resolutionSelector() {
ButtonGroup group = new ButtonGroup();
JPanel resolutionSelector = new JPanel(new BorderLayout());
JLabel label = new JLabel("aktuelle Auflösung: "+resolution+"px");
resolutionSelector.add(label, BorderLayout.NORTH);
resolutionSelector.add(resolutionButton(group,label,150),BorderLayout.WEST);
resolutionSelector.add(resolutionButton(group,label,300),BorderLayout.CENTER);
resolutionSelector.add(resolutionButton(group,label,600),BorderLayout.EAST);
resolutionSelector.setMaximumSize(new Dimension(600,200));
return resolutionSelector;
}
private JRadioButton resolutionButton(ButtonGroup group, JLabel label, int i) {
JRadioButton btn = new JRadioButton(i+" px");
btn.addActionListener(ev -> {
resolution = i;
label.setText("aktuelle Auflösung: "+resolution+"px");
});
group.add(btn);
if (i==150) btn.setSelected(true);
return btn;
}
private void addFormatSelector() { private void addFormatSelector() {
JPanel dummy = new JPanel(); JPanel dummy = new JPanel();
dummy.setLayout(new BorderLayout()); dummy.setLayout(new BorderLayout());
@ -317,4 +346,9 @@ public class Toolbar extends JPanel {
LOG.debug("updatePath({})",newPath); LOG.debug("updatePath({})",newPath);
pathListeners.forEach(l -> l.setPath(newPath)); pathListeners.forEach(l -> l.setPath(newPath));
} }
public int getResolution() {
return resolution;
}
} }

Loading…
Cancel
Save