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