List of usage examples for java.awt Graphics2D setRenderingHint
public abstract void setRenderingHint(Key hintKey, Object hintValue);
From source file:ImageOps.java
public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); int w = getSize().width; int h = getSize().height; g2.setColor(Color.black);/*w ww. j av a2 s . c o m*/ float[][] data = { { 0.1f, 0.1f, 0.1f, // low-pass filter 0.1f, 0.2f, 0.1f, 0.1f, 0.1f, 0.1f }, SHARPEN3x3_3 }; String theDesc[] = { "Convolve LowPass", "Convolve Sharpen", "LookupOp", "RescaleOp" }; for (int i = 0; i < bi.length; i++) { int iw = bi[i].getWidth(this); int ih = bi[i].getHeight(this); int x = 0, y = 0; AffineTransform at = new AffineTransform(); at.scale((w - 14) / 2.0 / iw, (h - 34) / 2.0 / ih); BufferedImageOp biop = null; BufferedImage bimg = new BufferedImage(iw, ih, BufferedImage.TYPE_INT_RGB); switch (i) { case 0: case 1: x = i == 0 ? 5 : w / 2 + 3; y = 15; Kernel kernel = new Kernel(3, 3, data[i]); ConvolveOp cop = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null); cop.filter(bi[i], bimg); biop = new AffineTransformOp(at, AffineTransformOp.TYPE_NEAREST_NEIGHBOR); break; case 2: x = 5; y = h / 2 + 15; byte chlut[] = new byte[256]; for (int j = 0; j < 200; j++) chlut[j] = (byte) (256 - j); ByteLookupTable blut = new ByteLookupTable(0, chlut); LookupOp lop = new LookupOp(blut, null); lop.filter(bi[i], bimg); biop = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR); break; case 3: x = w / 2 + 3; y = h / 2 + 15; RescaleOp rop = new RescaleOp(1.1f, 20.0f, null); rop.filter(bi[i], bimg); biop = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR); } g2.drawImage(bimg, biop, x, y); TextLayout tl = new TextLayout(theDesc[i], g2.getFont(), g2.getFontRenderContext()); tl.draw(g2, (float) x, (float) y - 4); } }
From source file:com.us.servlet.AuthCode.java
protected void service(HttpServletRequest request, HttpServletResponse response) { final CodeAuth bean = AppHelper.CODE_AUTH; int width = NumberUtils.toInt(request.getParameter("width"), bean.getWidth()); int height = NumberUtils.toInt(request.getParameter("height"), bean.getHeight()); int x = width / (bean.getLength() + 1); int codeY = height - 4; int fontHeight = height - 2; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR); Graphics2D graphics = image.createGraphics(); graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); if (StringUtil.hasText(request.getParameter("bgcolor"))) { graphics.setBackground(ColorHelper.hex2RGB(request.getParameter("bgcolor"))); }//from w w w . ja va 2 s .co m graphics.fillRect(0, 0, width, height); graphics.setFont(new Font(bean.getFont(), Font.BOLD, fontHeight)); graphics.drawRect(0, 0, width - 1, height - 1); // if (bean.isBreakLine()) { for (int i = 0; i < 15; i++) { int x1 = RandomUtils.nextInt(width); int y1 = RandomUtils.nextInt(height); int x2 = RandomUtils.nextInt(12); int y2 = RandomUtils.nextInt(12); graphics.drawLine(x1, y1, x + x2, y1 + y2); } } char[] CHARSET_AREA = null; if (bean.getType().charAt(0) == '1') { CHARSET_AREA = ArrayUtils.addAll(CHARSET_AREA, BIG_LETTERS); } if (bean.getType().charAt(1) == '1') { CHARSET_AREA = ArrayUtils.addAll(CHARSET_AREA, SMALL_LETTER); } if (bean.getType().charAt(2) == '1') { CHARSET_AREA = ArrayUtils.addAll(CHARSET_AREA, NUMBERS); } StringBuilder randomCode = new StringBuilder(); for (int i = 0; i < bean.getLength(); i++) { String rand = String.valueOf(CHARSET_AREA[RandomUtils.nextInt(CHARSET_AREA.length)]); graphics.setColor(ColorHelper.color(RandomUtils.nextInt(255), RandomUtils.nextInt(255), RandomUtils.nextInt(255))); graphics.drawString(rand, (i + 1) * x, codeY); randomCode.append(rand); } HttpSession session = request.getSession(); session.setAttribute(bean.getSessionKey(), randomCode.toString()); // ? response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); response.setContentType("image/png"); try { // Servlet? ServletOutputStream sos = response.getOutputStream(); ImageIO.write(image, "png", sos); sos.close(); } catch (Exception e) { e.printStackTrace(); } }
From source file:com.t3.image.ThumbnailManager.java
private Image createThumbnail(File file) throws IOException { // Gather info File thumbnailFile = getThumbnailFile(file); if (thumbnailFile.exists()) { return ImageUtil.getImage(thumbnailFile); }/* w w w . ja v a2 s. c o m*/ Image image = ImageUtil.getImage(file); // Should we bother making a thumbnail ? if (file.length() < 30 * 1024) { return image; } // Transform the image Dimension imgSize = new Dimension(image.getWidth(null), image.getHeight(null)); SwingUtil.constrainTo(imgSize, thumbnailSize.width, thumbnailSize.height); BufferedImage thumbnailImage = new BufferedImage(imgSize.width, imgSize.height, ImageUtil.pickBestTransparency(image)); Graphics2D g = thumbnailImage.createGraphics(); g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g.drawImage(image, 0, 0, imgSize.width, imgSize.height, null); g.dispose(); // Ensure path exists if (thumbnailFile.exists()) thumbnailFile.delete(); else thumbnailFile.getParentFile().mkdirs(); try (OutputStream os = new FileOutputStream(thumbnailFile)) { IOUtils.write(ImageUtil.imageToBytes(thumbnailImage, "png"), os); } return thumbnailImage; }
From source file:doge.photo.DogePhotoManipulator.java
private void setGraphicsHints(Graphics2D graphics) { graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP); }
From source file:peakml.util.swt.widget.IPeakGraph.java
public java.awt.image.BufferedImage getGraphImage(int width, int height) { java.awt.image.BufferedImage img = new java.awt.image.BufferedImage(width, height, java.awt.image.BufferedImage.TYPE_INT_ARGB); java.awt.Graphics2D g = img.createGraphics(); g.setRenderingHint(java.awt.RenderingHints.KEY_ANTIALIASING, java.awt.RenderingHints.VALUE_ANTIALIAS_ON); linechart.draw(g, new java.awt.Rectangle(0, 0, width, height)); return img;/* ww w.j a va 2s .c om*/ }
From source file:org.springframework.cloud.stream.app.image.recognition.processor.ImageRecognitionOutputMessageBuilder.java
/** * Augment the input image by adding the recognized classes. * * @param imageBytes input image as byte array * @param result computed recognition labels * @return the image augmented with recognized labels. *//*from ww w . j a v a 2 s . co m*/ private byte[] drawLabels(byte[] imageBytes, Object result) { try { if (result != null) { BufferedImage originalImage = ImageIO.read(new ByteArrayInputStream(imageBytes)); Graphics2D g = originalImage.createGraphics(); g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); FontMetrics fm = g.getFontMetrics(); Tuple resultTuple = new JsonStringToTupleConverter().convert(result.toString()); ArrayList<Tuple> labels = (ArrayList) resultTuple.getValues().get(0); int x = 1; int y = 1; for (Tuple l : labels) { String labelName = l.getFieldNames().get(0); int probability = (int) (100 * l.getFloat(0)); String title = labelName + ": " + probability + "%"; Rectangle2D rect = fm.getStringBounds(title, g); g.setColor(bgColor); g.fillRect(x, y, (int) rect.getWidth() + 6, (int) rect.getHeight()); g.setColor(textColor); g.drawString(title, x + 3, (int) (y + rect.getHeight() - 3)); y = (int) (y + rect.getHeight() + 1); } ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(originalImage, IMAGE_FORMAT, baos); baos.flush(); imageBytes = baos.toByteArray(); baos.close(); } } catch (IOException e) { logger.error("Failed to draw labels in the input image", e); } return imageBytes; }
From source file:org.lnicholls.galleon.util.Tools.java
public static Image getImage(URL url, int width, int height) { if (url != null) { // System.out.println(url); try {//from ww w. j ava2 s . co m Image internetImage = null; if (log.isDebugEnabled()) log.debug("Downloading internet image=" + url.toExternalForm()); class TimedThread implements Callable { private URL mUrl; public TimedThread(URL url) { mUrl = url; } public synchronized java.lang.Object call() throws java.lang.Exception { return new ImageTracker(mUrl).load(); } } TimedCallable timedCallable = new TimedCallable(new TimedThread(url), 2000 * 60); internetImage = (Image) timedCallable.call(); // System.out.println("internetImage="+internetImage); if (internetImage == null) { log.error("Invalid internet image: " + url.getPath()); } else { // System.out.println("width="+width); // System.out.println("height="+height); if (width == -1) width = internetImage.getWidth(null); if (height == -1) height = internetImage.getHeight(null); // System.out.println("width="+width); // System.out.println("height="+height); Image image = null; if (internetImage instanceof BufferedImage) { image = ImageManipulator.getScaledImage((BufferedImage) internetImage, width, height); // System.out.println("image1="+image); } else { try { image = createBufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D graphics2D = ((BufferedImage) image).createGraphics(); graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); graphics2D.drawImage(internetImage, 0, 0, width, height, null); graphics2D.dispose(); graphics2D = null; // System.out.println("image2="+image); } catch (Throwable ex) { // ex.printStackTrace(); image = internetImage.getScaledInstance(width, height, Image.SCALE_SMOOTH); // System.out.println("image3="+image); } } internetImage.flush(); internetImage = null; return image; } } catch (Throwable ex) { // ex.printStackTrace(); Tools.logException(Tools.class, ex, url.toExternalForm()); } } return null; }
From source file:pl.datamatica.traccar.api.providers.ImageProvider.java
public byte[] getMarker(String name) throws IOException { if (!markerCache.containsKey(name)) { Image icon = getImage(name + ".png"); if (icon == null) return null; float l = 30f / 141, t = 28f / 189, r = 110f / 141, b = 108f / 189; int w = emptyMarker.getWidth(null), h = emptyMarker.getHeight(null); int tw = (int) Math.round((r - l) * w), th = (int) Math.round((b - t) * h); //https://stackoverflow.com/a/7951324 int wi = icon.getWidth(null), hi = icon.getHeight(null); while (wi >= 2 * tw || hi >= 2 * th) { if (wi >= 2 * tw) wi /= 2;/*from w w w .j ava2 s . co m*/ if (hi >= 2 * th) hi /= 2; BufferedImage tmp = new BufferedImage(wi, hi, BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = tmp.createGraphics(); g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g2.drawImage(icon, 0, 0, wi, hi, null); g2.dispose(); icon = tmp; } BufferedImage marker = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); Graphics2D g = marker.createGraphics(); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g.drawImage(emptyMarker, 0, 0, null); g.drawImage(icon, (int) Math.round(l * w), (int) Math.round(t * h), tw, th, null); g.dispose(); ByteArrayOutputStream boss = new ByteArrayOutputStream(); ImageIO.write((RenderedImage) marker, "png", boss); markerCache.put(name, boss.toByteArray()); } return markerCache.get(name); }
From source file:bachelorthesis.ocr.domain.DomainFacade.java
private Captcha createCaptcha(String buildString, int width, int height) throws RuntimeException { try {/* www . j a va 2s . c om*/ CaptchaBuilder captchaBuilder = new CaptchaBuilder(40, 50, buildString); Captcha c = captchaBuilder.buildCaptcha(); BufferedImage img = c.getImage(); // check if size == the default size (40*50) if not scale if (width != 40 || height != 50) { BufferedImage resized = new BufferedImage(width, height, img.getType()); Graphics2D g = resized.createGraphics(); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g.drawImage(img, 0, 0, width, height, 0, 0, img.getWidth(), img.getHeight(), null); g.dispose(); //build new CAPTCHA WITH THE NEW IMAGE SIZE c = new Captcha(c.getBuildSequence(), c.getAnswer(), c.isCaseSensative(), img, new Date()); } return c; } catch (ParseException ex) { Logger.getLogger(DomainFacade.class.getName()).log(Level.SEVERE, null, ex); throw new RuntimeException("error creating CAPTCHA"); } }
From source file:domainhealth.frontend.graphics.JFreeChartGraphImpl.java
/** * Gets handle on the 2D graphics image object for the graph ready to * change (eg. add text to)./*from w w w . j av a2 s . co m*/ * * @param graphImage The current graph image * @return The 2D object handle */ private Graphics2D get2DGraphics(BufferedImage graphImage) { Graphics2D graphics2D = (Graphics2D) graphImage.getGraphics(); graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); graphics2D.setColor(Color.BLACK); return graphics2D; }