From 61b6598d15a7400bed909a15a9af61a3925262a8 Mon Sep 17 00:00:00 2001
From: ulrich <not disclosed>
Date: Sat, 11 Mar 2017 12:47:44 +0000
Subject: [PATCH] Bildausgabe Miniaturansicht (in Arbeit)

---
 src/logging.properties                |   68 ++++++++++++++++++++++++++++++++++
 src/de/uhilger/wbx/Bild.java          |   17 ++++++--
 src/de/uhilger/wbx/web/TNServlet.java |   17 +++++++-
 3 files changed, 95 insertions(+), 7 deletions(-)

diff --git a/src/de/uhilger/wbx/Bild.java b/src/de/uhilger/wbx/Bild.java
index 6765204..d53b8ad 100644
--- a/src/de/uhilger/wbx/Bild.java
+++ b/src/de/uhilger/wbx/Bild.java
@@ -27,6 +27,7 @@
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.io.OutputStream;
 import java.net.FileNameMap;
 import java.net.URLConnection;
 import javax.imageio.ImageIO;
@@ -44,27 +45,33 @@
   public static final String[] GRNAME = {"-w", "-k", "-m", "-g"};
   public static final int[] GR = {120, 240, 700, 1200};
   
+  public void writeImageStream(Image image, int gr, String mimeType, OutputStream out) throws InterruptedException, IOException {
+    ImageIO.write(getReducedImage(image, gr, mimeType), imgType(mimeType), out);
+  }
+  
   /**
    * 
    * @param image
    * @param gr
    * @param mimeType
-   * @param oName Name der Originaldatei
    * @param vName Name der verkleinerten Datei
    * @throws InterruptedException
    * @throws IOException 
    */
-  public void writeImageFile(Image image, int gr, String mimeType, String oName, String vName) throws InterruptedException, IOException {
+  public void writeImageFile(Image image, int gr, String mimeType, String vName) throws InterruptedException, IOException {
+    ImageIO.write(getReducedImage(image, gr, mimeType), imgType(mimeType), new File(vName));
+  }
+  
+  private BufferedImage getReducedImage(Image image, int gr, String mimeType) throws InterruptedException, IOException {
+    BufferedImage img;
     int q = 90;
     float sh = 0.f;
-    //String mimeType = photo.getMimetype();
-    BufferedImage img;
     if(mimeType.contains("jpeg")) {
       img = getReducedImage(image, gr, gr, q, sh, false);
     } else {
       img = getReducedImage(image, gr, gr, q, sh, true);
     }
-    ImageIO.write(img, imgType(mimeType), new File(vName));
+    return img;
   }
 
   /**
diff --git a/src/de/uhilger/wbx/web/TNServlet.java b/src/de/uhilger/wbx/web/TNServlet.java
index 198bced..2d4e744 100644
--- a/src/de/uhilger/wbx/web/TNServlet.java
+++ b/src/de/uhilger/wbx/web/TNServlet.java
@@ -17,7 +17,11 @@
  */
 package de.uhilger.wbx.web;
 
+import java.awt.Image;
+import java.io.File;
 import java.io.IOException;
+import java.io.OutputStream;
+import java.util.logging.Logger;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -30,6 +34,8 @@
  * 
  */
 public class TNServlet extends DefaultServlet {
+  
+  private static final Logger logger = Logger.getLogger(TNServlet.class.getName());
   
   /**
    * Diese String-Konstanten noetigenfalls in eine 
@@ -52,12 +58,19 @@
   protected void doGet(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {
     
-    String urlStr = request.getRequestURI();
-    if(urlStr.contains(TN) && (urlStr.endsWith(JPG) || urlStr.endsWith(JPEG) || urlStr.endsWith(PNG))) {
+    String uriStr = request.getRequestURI();
+    File imgfile = new File(uriStr);
+    
+    logger.fine("realpath of /: " + request.getServletContext().getRealPath("/"));
+    
+    logger.fine("imgfile: " + imgfile.getAbsolutePath());
+    
+    if(uriStr.contains(TN) && (uriStr.endsWith(JPG) || uriStr.endsWith(JPEG) || uriStr.endsWith(PNG))) {
       /*
       TODO: hier mit Hilfe der Klasse Bild eine Miniaturansicht erzeugen  
       und in die Antwort schreiben
       */      
+      //writeImageStream(Image image, int gr, String mimeType, response.getOutputStream());
     } else {
       super.doGet(request, response);
     }
diff --git a/src/logging.properties b/src/logging.properties
new file mode 100644
index 0000000..e64a0a7
--- /dev/null
+++ b/src/logging.properties
@@ -0,0 +1,68 @@
+############################################################
+#      Default Logging Configuration File
+#
+# You can use a different file by specifying a filename
+# with the java.util.logging.config.file system property.  
+# For example java -Djava.util.logging.config.file=myfile
+############################################################
+
+############################################################
+#  	Global properties
+############################################################
+
+# "handlers" specifies a comma separated list of log Handler 
+# classes.  These handlers will be installed during VM startup.
+# Note that these classes must be on the system classpath.
+# By default we only configure a ConsoleHandler, which will only
+# show messages at the INFO and above levels.
+# handlers= java.util.logging.ConsoleHandler
+
+# To also add the FileHandler, use the following line instead.
+handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
+
+# Default global logging level.
+# This specifies which kinds of events are logged across
+# all loggers.  For any given facility this global level
+# can be overriden by a facility specific level
+# Note that the ConsoleHandler also has a separate level
+# setting to limit messages printed to the console.
+# .level= FINE
+.level = OFF
+
+############################################################
+# Handler specific properties.
+# Describes specific configuration info for Handlers.
+############################################################
+
+# default file output is in user's home directory.
+# java.util.logging.FileHandler.pattern = %h/java%u.log
+# java.util.logging.FileHandler.pattern = /media/extmirror/tomcat747/logs/tv_%u.log
+# java.util.logging.FileHandler.pattern = ${catalina.base}/logs/file-cms_%u.log
+java.util.logging.FileHandler.limit = 50000
+# java.util.logging.FileHandler.count = 1
+java.util.logging.FileHandler.count = 2
+# java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
+java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
+java.util.logging.FileHandler.level = FINER
+
+# Limit the message that are printed on the console to INFO and above.
+# java.util.logging.ConsoleHandler.level = INFO
+java.util.logging.ConsoleHandler.level = FINER
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+
+# Example to customize the SimpleFormatter output format 
+# to print one-line log message like this:
+#     <level>: <log message> [<date/time>]
+#
+# java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n
+
+############################################################
+# Facility specific properties.
+# Provides extra control for each logger.
+############################################################
+
+# For example, set the com.xyz.foo logger to only log SEVERE
+# messages:
+# com.xyz.foo.level = SEVERE
+de.uhilger.wbx.handlers = java.util.logging.ConsoleHandler
+de.uhilger.wbx.level = FINER
\ No newline at end of file

--
Gitblit v1.9.3