From 5c858db2917d787fc61f4a47ccc991af1d248085 Mon Sep 17 00:00:00 2001
From: ulrich <not disclosed>
Date: Sun, 14 Jan 2018 12:59:18 +0000
Subject: [PATCH] Erlaeuterungen zu kleiner.sh erweitert; Qualitaet bei der Bilderausgabe hinzugefuegt
---
src/kleiner.sh | 10 ++++++++++
src/bilder.groovy | 22 ++++++++++++++++++++--
2 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/src/bilder.groovy b/src/bilder.groovy
index cef6dd3..90294bd 100644
--- a/src/bilder.groovy
+++ b/src/bilder.groovy
@@ -14,6 +14,10 @@
import java.net.FileNameMap;
import java.net.URLConnection;
import javax.imageio.ImageIO;
+import javax.imageio.ImageWriter;
+import javax.imageio.ImageWriteParam;
+import javax.imageio.stream.FileImageOutputStream;
+import javax.imageio.IIOImage;
import java.lang.Integer;
/*
@@ -46,7 +50,7 @@
mediaTracker.waitForID(0);
if (!mediaTracker.isErrorAny()) {
- int quality = Integer.parseInt(args[1]);
+ float quality = Float.parseFloat(args[1]);
float factor = (float) 0.0;
BufferedImage thumbImage;
@@ -123,7 +127,21 @@
imgType = "jpg";
}
- ImageIO.write(thumbImage, imgType, outFile);
+ //ImageIO.write(thumbImage, imgType, outFile);
+
+ /* 14.1.2018 Beginn */
+ //File outfile =new File(“/opt/images/modified.jpg”);
+ ImageWriter writer = ImageIO.getImageWritersByFormatName(imgType).next();
+ //ImageWriter writer = iter.next();
+ ImageWriteParam iwp = writer.getDefaultWriteParam();
+ iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
+ iwp.setCompressionQuality(quality);
+ writer.setOutput(new FileImageOutputStream(outFile));
+ writer.write(null, new IIOImage(thumbImage, null, null),iwp);
+ writer.dispose();
+ /* 14.1.2018 Ende */
+
+
}
} catch (InterruptedException ex) {
System.out.println("Error: " + ex.getLocalizedMessage());
diff --git a/src/kleiner.sh b/src/kleiner.sh
index c6afeae..e9cc656 100644
--- a/src/kleiner.sh
+++ b/src/kleiner.sh
@@ -20,5 +20,15 @@
# Der Aufruf mit den im Beispiel oben angegebenen Parametern bewirkt, dass alle
# Bilddateien in /scripts/in auf eine Laenge von 1.200 Bildpunkten entlang
# der laengsten Kante verkleinert und in /scripts/out abgelegt werden.
+#
+# Die Option -v im docker run Kommando verbindet einen Ablageort mit einem
+# Ordnernamen nach dem Schema [Ablageort]:[Ordnername]
+#
+# Die Option -w setzt das Arbeitsverzeichnis auf einen Ordner
+#
+# Die Kombination aus -v und -w im Kommando unten tut so, als gaebe es im
+# Docker-Container einen Ordner /scripts der auf das Arbeitsverezichnis der
+# lokalen Maschine verwaist, auf der Docker laeuft. Dieses Verzeichnis wird
+# dann das Arbeitsverzeichnis fuer den Docker-Container
docker run --rm -v "$PWD":/scripts -w /scripts --name groovy groovy:alpine groovy bilder.groovy $1 $2 $3 $4
--
Gitblit v1.9.3