| | |
| | | import java.awt.Toolkit; |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.net.URLDecoder; |
| | | import java.util.logging.Level; |
| | | import java.util.logging.Logger; |
| | |
| | | * Miniaturansicht erzeugt werden, wie sie im Dateimanager |
| | | * der WebBox verwendet wird. |
| | | * |
| | | * Unterstuetzt werden die Varianten |
| | | * 120 (_tn), 240 (_kl), 500 (_dd), 700 (_mt), 1200 (_gr) |
| | | */ |
| | | public class TNServlet extends DefaultServlet { |
| | | |
| | |
| | | * Konfigurationsdatei auslagern |
| | | */ |
| | | public static final String TN = "_tn"; |
| | | public static final String KL = "_kl"; |
| | | public static final String SM = "_sm"; |
| | | public static final String MT = "_mt"; |
| | | public static final String GR = "_gr"; |
| | | public static final String JPG = ".jpg"; |
| | | public static final String JPEG = ".jpeg"; |
| | | public static final String PNG = ".png"; |
| | |
| | | logger.fine(buf.toString()); |
| | | // --- Logausgabe Ende |
| | | |
| | | if(uriStr.contains(TN) && (uriStr.endsWith(JPG) || uriStr.endsWith(JPEG) || uriStr.endsWith(PNG))) { |
| | | File dir = new File(request.getServletContext().getRealPath("/")); |
| | | relname = relname.replace(TN, ""); |
| | | File imgfile = new File(dir, URLDecoder.decode(relname, "utf-8")); |
| | | Image image = Toolkit.getDefaultToolkit().getImage(imgfile.getAbsolutePath()); |
| | | MediaTracker mediaTracker = new MediaTracker(new Container()); |
| | | mediaTracker.addImage(image, 0); |
| | | try { |
| | | mediaTracker.waitForID(0); |
| | | |
| | | if (!mediaTracker.isErrorAny()) { |
| | | Bild bild = new Bild(); |
| | | bild.writeImageStream(image, bild.getVariantenGroesse(Bild.WINZIG), bild.getMimeType(imgfile), response.getOutputStream()); |
| | | } |
| | | } catch (InterruptedException ex) { |
| | | logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex); |
| | | } |
| | | if(uriStr.endsWith(JPG) || uriStr.endsWith(JPEG) || uriStr.endsWith(PNG)) { |
| | | if(uriStr.contains(TN)) { |
| | | bildAusgeben(request, response, relname, TN, Bild.WINZIG); |
| | | } else if(uriStr.contains(KL)) { |
| | | bildAusgeben(request, response, relname, KL, Bild.KLEIN); |
| | | } else if(uriStr.contains(SM)) { |
| | | bildAusgeben(request, response, relname, SM, Bild.SEMI); |
| | | } else if(uriStr.contains(MT)) { |
| | | bildAusgeben(request, response, relname, MT, Bild.MITTEL); |
| | | } else if(uriStr.contains(GR)) { |
| | | bildAusgeben(request, response, relname, GR, Bild.GROSS); |
| | | } else { |
| | | super.doGet(request, response); |
| | | } |
| | | } else { |
| | | super.doGet(request, response); |
| | | } |
| | | } |
| | | |
| | | private void bildAusgeben(HttpServletRequest request, HttpServletResponse response, String relname, String indicator, int bildTyp) throws UnsupportedEncodingException, IOException { |
| | | File dir = new File(request.getServletContext().getRealPath("/")); |
| | | relname = relname.replace(indicator, ""); |
| | | File imgfile = new File(dir, URLDecoder.decode(relname, "utf-8")); |
| | | Image image = Toolkit.getDefaultToolkit().getImage(imgfile.getAbsolutePath()); |
| | | MediaTracker mediaTracker = new MediaTracker(new Container()); |
| | | mediaTracker.addImage(image, 0); |
| | | try { |
| | | mediaTracker.waitForID(0); |
| | | |
| | | if (!mediaTracker.isErrorAny()) { |
| | | Bild bild = new Bild(); |
| | | bild.writeImageStream(image, bild.getVariantenGroesse(bildTyp), bild.getMimeType(imgfile), response.getOutputStream()); |
| | | } |
| | | } catch (InterruptedException ex) { |
| | | logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex); |
| | | } |
| | | } |
| | | } |