From aa7eec382d53c85c4e5a2d8c6ec351aba85b6136 Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed> Date: Thu, 05 Apr 2018 18:33:20 +0000 Subject: [PATCH] file content bei collectFiles hinzugenommen --- src/de/uhilger/wbx/Bild.java | 135 ++++++--------------------------------------- 1 files changed, 18 insertions(+), 117 deletions(-) diff --git a/src/de/uhilger/wbx/Bild.java b/src/de/uhilger/wbx/Bild.java index 6765204..7e58871 100644 --- a/src/de/uhilger/wbx/Bild.java +++ b/src/de/uhilger/wbx/Bild.java @@ -14,161 +14,62 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - + */ package de.uhilger.wbx; -import java.awt.Graphics2D; -import java.awt.Image; -import java.awt.RenderingHints; -import java.awt.image.BufferedImage; -import java.awt.image.ConvolveOp; -import java.awt.image.Kernel; import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; import java.net.FileNameMap; import java.net.URLConnection; -import javax.imageio.ImageIO; +import java.util.logging.Logger; /** * Methoden zur Verkleinerung von Bildern */ public class Bild { + + private static final Logger logger = Logger.getLogger(Bild.class.getName()); public static final int WINZIG = 0; public static final int KLEIN = 1; - public static final int MITTEL = 2; - public static final int GROSS = 3; - - public static final String[] GRNAME = {"-w", "-k", "-m", "-g"}; - public static final int[] GR = {120, 240, 700, 1200}; - - /** - * - * @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 { - 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)); - } + public static final int SEMI = 2; + public static final int MITTEL = 3; + public static final int GROSS = 4; - /** - * Eine in Groesse und Qualitaet verringerte Bilddatei erzeugen - * @param image Ablageort und Name der Bilddatei - * @param width neue Breite - * @param height neue hoehe - * @param quality neue Qualitaet (0 - 100) - * @param factor Faktor fuer Schaerfe / Unschaerfe (z.B. -0.15f fuer leichte Unschaerfe, 0.05f fuer leichtes Nachschaerfen) - * @param withTransparency ob Transparenz benoetigt wird - * @return neues, in Groesse und Qualitaet entsprechend verringertes Bild - * @throws java.lang.InterruptedException - * @throws java.io.FileNotFoundException - */ - public BufferedImage getReducedImage(Image image, int width, int height, int quality, float factor, boolean withTransparency) - throws InterruptedException, FileNotFoundException, IOException { - - int imageWidth = image.getWidth(null); - int imageHeight = image.getHeight(null); - - int thumbWidth = width; - int thumbHeight = height; - if(imageWidth < width) { - thumbWidth = imageWidth; - } - if(imageHeight < height) { - thumbHeight = imageHeight; - } - double thumbRatio = (double)thumbWidth / (double)thumbHeight; - double imageRatio = (double)imageWidth / (double)imageHeight; - if (thumbRatio < imageRatio) { - thumbHeight = (int)(thumbWidth / imageRatio); - } - else { - thumbWidth = (int)(thumbHeight * imageRatio); - } - - // draw original image to thumbnail image object and - // scale it to the new size on-the-fly - //BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB); - BufferedImage thumbImage; - if(withTransparency) { - thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_ARGB); - } else { - thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB); - } - Graphics2D graphics2D = thumbImage.createGraphics(); - graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); - graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null); - - // 30.7.2007: sharpening hinzugefuegt (Anfang) - //float factor = -0.15f; // minus = sharpen, plus = soften - //float[] sharpenArray = {0, -1, 0, -1, 5, -1, 0, -1, 0}; - - /* - 30.6.2013: sharpening als Weichmacher nur, wenn Bild < 400 - */ - /*if(thumbWidth < 400 || thumbHeight < 400) { - factor = 0.1f; - }*/ - - if(factor != 0.f) { - float[] array = {0, factor, 0, factor, 1-(factor*4), factor, 0, factor, 0}; - Kernel kernel = new Kernel(3, 3, array); - ConvolveOp cOp = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null); - thumbImage = cOp.filter(thumbImage, null); - } - // 30.7.2007: sharpening hinzugefuegt (Ende) - - return thumbImage; - } + public static final String[] GRNAME = {"-w", "-k", "-s", "-m", "-g"}; + public static final int[] GR = {120, 240, 500, 700, 1200}; public String imgType(String mimeType) { String imgType; - if(mimeType.contains("jpg")) { + if (mimeType.contains("jpg")) { imgType = "jpg"; - } else if(mimeType.contains("jpeg")) { + } else if (mimeType.contains("jpeg")) { imgType = "jpg"; - } else if(mimeType.contains("png")) { + } else if (mimeType.contains("png")) { imgType = "png"; - } else if(mimeType.contains("gif")) { + } else if (mimeType.contains("gif")) { imgType = "gif"; } else { imgType = "jpg"; } return imgType; } - + /** - * + * * @param v Bild.WINZIG .. Bild.GROSS * @return Länge der längsten Kante in Bildpunkten */ public int getVariantenGroesse(int v) { return GR[v]; } - + public String getVariantenName(int v) { return GRNAME[v]; } - + public String getMimeType(File file) { String absName = file.getAbsolutePath(); FileNameMap fileNameMap = URLConnection.getFileNameMap(); - return fileNameMap.getContentTypeFor("file://" + absName); + return fileNameMap.getContentTypeFor("file://" + absName); } } -- Gitblit v1.9.3