From 8a8152eebc30f4efe8e8e40ba51f46b775476674 Mon Sep 17 00:00:00 2001
From: ulrich <not disclosed>
Date: Sun, 04 Mar 2018 14:16:25 +0000
Subject: [PATCH] Bildqualitaet hinzugefuegt

---
 src/java/de/uhilger/filecms/api/FileMgr.java |   79 +++++++++++++++++++++++++++------------
 1 files changed, 54 insertions(+), 25 deletions(-)

diff --git a/src/java/de/uhilger/filecms/api/FileMgr.java b/src/java/de/uhilger/filecms/api/FileMgr.java
index 8e63002..77a2d69 100644
--- a/src/java/de/uhilger/filecms/api/FileMgr.java
+++ b/src/java/de/uhilger/filecms/api/FileMgr.java
@@ -18,14 +18,10 @@
 
 package de.uhilger.filecms.api;
 
-import de.uhilger.filecms.data.Bild;
 import de.uhilger.filecms.data.FileRef;
 import de.uhilger.filecms.pub.AbstractComparator;
 import de.uhilger.filecms.pub.FileNameComparator;
-import java.awt.Container;
-import java.awt.Image;
-import java.awt.MediaTracker;
-import java.awt.Toolkit;
+import de.uhilger.wbx.Bild;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
@@ -44,6 +40,7 @@
 import java.util.logging.Logger;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
+import net.coobird.thumbnailator.Thumbnails;
 import org.apache.commons.io.FileUtils;
 
 /**
@@ -385,28 +382,24 @@
         nurname = bildName.substring(0, dotpos);
       }
 
-      Image image = Toolkit.getDefaultToolkit().getImage(original.getAbsolutePath());
-      MediaTracker mediaTracker = new MediaTracker(new Container());
-      mediaTracker.addImage(image, 0);
-      try {
-        mediaTracker.waitForID(0);
+          // 120, 240, 500, 700, 1200
 
-        if (!mediaTracker.isErrorAny()) {
-          for (int i = 0; i < Bild.GR.length; i++) {
-            StringBuffer buf = new StringBuffer();
-            buf.append(nurname);
-            buf.append(bild.getVariantenName(i));
-            buf.append(ext);
-            File newImgFile = new File(dir, buf.toString());
-            if (!newImgFile.exists()) {
-              logger.fine(original.getAbsolutePath() + " " + newImgFile.getAbsolutePath());
-              bild.writeImageFile(image, bild.getVariantenGroesse(i), bild.getMimeType(original), newImgFile.getAbsolutePath());
-              //bild.writeImageFile(image, photo.getVariantenGroesse(i), photo.getMimetype(), photo.getAbsolutePath(basisPfad), photo.getVariantenName(basisPfad, i));
-            }
-          }
+      
+      for (int i = 0; i < Bild.GR.length; i++) {
+        StringBuffer buf = new StringBuffer();
+        buf.append(nurname);
+        buf.append(bild.getVariantenName(i));
+        buf.append(ext);
+        File newImgFile = new File(dir, buf.toString());
+        try {
+          Thumbnails.of(original)
+                  .size(bild.getVariantenGroesse(i), bild.getVariantenGroesse(i))
+                  .keepAspectRatio(true)
+                  .outputQuality(0.7)
+                  .toFile(newImgFile);
+        } catch (IOException ex) {
+          logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
         }
-      } catch (IOException | InterruptedException ex) {
-        logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
       }
       return "ok";
     } else {
@@ -414,6 +407,42 @@
     }
   }
   
+  public String bildRotieren(String relPath, String bildName) {
+    if (!relPath.startsWith(".")) {
+      File dir = getTargetDir(relPath);
+      File original = new File(dir, bildName);
+
+      String ext = "";
+      String nurname = bildName;
+      int dotpos = bildName.indexOf(".");
+      if (dotpos > -1) {
+        ext = bildName.substring(dotpos);
+        nurname = bildName.substring(0, dotpos);
+      }
+
+      StringBuffer buf = new StringBuffer();
+      buf.append(nurname);
+      buf.append("-rot");
+      buf.append(ext);
+      File newImgFile = new File(dir, buf.toString());
+      
+      logger.fine("original: " + original.getAbsolutePath() + " newImgFile: " + newImgFile.getAbsolutePath());
+
+      try {
+        Thumbnails.of(original)
+                .scale(1)
+                .rotate(90)
+                .toFile(newImgFile);
+      } catch (IOException ex) {
+        logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
+      }
+
+
+      return "ok";
+    } else {
+      return "Pfad micht erlaubt.";
+    }
+  }
   public String extractZipfile(String relPath, String filename) {
     String result = null;
     if (!relPath.startsWith(".")) {    

--
Gitblit v1.9.3