Browse Source

added resolution option

main
Stephan Richter 2 years ago
parent
commit
8751c3fdd0
  1. 2
      pom.xml
  2. 2
      resources/logback.xml
  3. 12
      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 @@ @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>BelegScanner</groupId>
<artifactId>BelegScanner</artifactId>
<version>0.0.12</version>
<version>0.0.13</version>
<name>BelegScanner</name>
<packaging>jar</packaging>

2
resources/logback.xml

@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
<appender-ref ref="CONSOLE"/>
</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"/>
</logger>

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

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

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

@ -17,10 +17,12 @@ import java.util.stream.Collectors; @@ -17,10 +17,12 @@ import java.util.stream.Collectors;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
@ -85,6 +87,7 @@ public class Toolbar extends JPanel { @@ -85,6 +87,7 @@ public class Toolbar extends JPanel {
private JTextField width;
private JTextField height;
private SelectComboBox catPicker;
private int resolution = 150;
public Toolbar(Configuration config) {
this.config = config;
@ -93,12 +96,38 @@ public class Toolbar extends JPanel { @@ -93,12 +96,38 @@ public class Toolbar extends JPanel {
add(input("Kategorie",catPicker = categoryPicker(config)));
add(input("Pfad",pathPicker = pathPicker()));
addFormatSelector();
add(resolutionSelector());
add(scanButton());
add(Box.createGlue());
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() {
JPanel dummy = new JPanel();
dummy.setLayout(new BorderLayout());
@ -317,4 +346,9 @@ public class Toolbar extends JPanel { @@ -317,4 +346,9 @@ public class Toolbar extends JPanel {
LOG.debug("updatePath({})",newPath);
pathListeners.forEach(l -> l.setPath(newPath));
}
public int getResolution() {
return resolution;
}
}

Loading…
Cancel
Save