Refine search
public BufferedImage applyFilters(BufferedImage source) { BufferedImage dest = source; for (BufferedImageOp filter : getFilters()) { dest = filter.filter(dest, null); } int x = (source.getWidth() - dest.getWidth()) / 2; int y = (source.getHeight() - dest.getHeight()) / 2; source = new BufferedImage(source.getWidth(), source.getHeight(), source.getType()); source.getGraphics().drawImage(dest, x, y, null); return source; }
throw new IllegalArgumentException("ops cannot be null or empty"); int type = src.getType(); Rectangle2D resultBounds = op.getBounds2D(src); BufferedImage result = op.filter(src, dest); src.flush(); log(1, "Applied BufferedImageOp in %d ms, result [width=%d, height=%d]", System.currentTimeMillis() - subT, result.getWidth(), result.getHeight());
BufferedImage cache = cachedImage == null ? null : cachedImage.get(); boolean invalidCache = null == cache || cache.getWidth() != width || cache.getHeight() != height; cache = GraphicsUtilities.createCompatibleTranslucentImage(width, height); Graphics2D gfx = cache.createGraphics(); gfx.setClip(0, 0, width, height); Composite composite = gfx.getComposite(); gfx.setComposite(AlphaComposite.Clear); gfx.fillRect(0, 0, width, height); gfx.setComposite(composite); cache = f.filter(cache, null);
public void actionPerformed(ActionEvent evt) { Image img = getImage(); BufferedImage src = new BufferedImage( img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB); BufferedImage dst = new BufferedImage( img.getHeight(null), img.getWidth(null), BufferedImage.TYPE_INT_ARGB); Graphics2D g = (Graphics2D)src.getGraphics(); try { // smooth scaling g.drawImage(img, 0, 0, null); } finally { g.dispose(); } AffineTransform trans = AffineTransform.getRotateInstance(-Math.PI/2,0,0); trans.translate(-src.getWidth(),0); BufferedImageOp op = new AffineTransformOp(trans, AffineTransformOp.TYPE_NEAREST_NEIGHBOR); op.filter(src,dst); setImage(dst); } };
public void actionPerformed(ActionEvent evt) { Image img = getImage(); BufferedImage src = new BufferedImage( img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB); BufferedImage dst = new BufferedImage( img.getHeight(null), img.getWidth(null), BufferedImage.TYPE_INT_ARGB); Graphics2D g = (Graphics2D)src.getGraphics(); try { // smooth scaling g.drawImage(img, 0, 0, null); } finally { g.dispose(); } AffineTransform trans = AffineTransform.getRotateInstance(Math.PI/2,0,0); trans.translate(0,-src.getHeight()); BufferedImageOp op = new AffineTransformOp(trans, AffineTransformOp.TYPE_NEAREST_NEIGHBOR); op.filter(src,dst); setImage(dst); } };
image = new BufferedImage(temp.getWidth(), temp.getHeight(), BufferedImage.TYPE_BYTE_BINARY, cm); Graphics2D g = image.createGraphics(); try { g.setComposite(AlphaComposite.Clear); g.fillRect(0, 0, temp.getWidth(), temp.getHeight()); g.dispose(); op.filter(temp, image);
@Test public void testFilterRotateBIStandard() { BufferedImageOp jreOp = new java.awt.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, Math.min(width, height) / 2, Math.min(width, height) / 2), null); BufferedImageOp tmOp = new com.twelvemonkeys.image.AffineTransformOp(AffineTransform.getQuadrantRotateInstance(1, Math.min(width, height) / 2, Math.min(width, height) / 2), null); for (Integer type : TYPES) { BufferedImage image = new BufferedImage(width, height, type); BufferedImage jreResult = jreOp.filter(image, null); BufferedImage tmResult = tmOp.filter(image, null); assertNotNull("No result!", tmResult); assertEquals("Bad type", jreResult.getType(), tmResult.getType()); assertEquals("Incorrect color model", jreResult.getColorModel(), tmResult.getColorModel()); assertEquals("Incorrect width", jreResult.getWidth(), tmResult.getWidth()); assertEquals("Incorrect height", jreResult.getHeight(), tmResult.getHeight()); } }
private BufferedImage applyInvertFilter(BufferedImage src) { final BufferedImage newSrc; if (src.getColorModel() instanceof IndexColorModel) { newSrc = new BufferedImage(src.getWidth(), src.getHeight(), src.getColorModel().getNumComponents() == 3 ? BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = newSrc.createGraphics(); g2.drawImage(src, 0, 0, null); g2.dispose(); } else { newSrc = src; } BufferedImage dest = new BufferedImage(newSrc.getWidth(), newSrc.getHeight(), newSrc.getType()); switch (newSrc.getColorModel().getNumComponents()) { case 3: this.invertOp.filter(newSrc, dest); break; case 4: this.invertOp4.filter(newSrc, dest); break; } return dest; }
BufferedImage bufferedImage = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB); Graphics2D g2D = bufferedImage.createGraphics(); g2D.drawImage(awtImage, 0, 0, null); bufferedImage = op.filter(bufferedImage, null); bufferedImage = op.filter(bufferedImage, null); g2D = bufferedImage.createGraphics(); g2D.setColor(new Color(0x3300FF)); Font font = new Font("Sans", Font.BOLD, 60); g2D.setFont(font); g2D.drawString("ImageJ", 20, 220); bufferedImage = op.filter(bufferedImage, null); bufferedImage = op.filter(bufferedImage, null); g2D.dispose();
if (inputImage.getTransparency() == Transparency.TRANSLUCENT) { Graphics2D graphics = inputImage.createGraphics(); try { graphics.setComposite(AlphaComposite.DstOver); // Set composite rules to paint "behind" graphics.setPaint(Color.WHITE); graphics.fillRect(0, 0, inputImage.getWidth(), inputImage.getHeight()); BufferedImage resizedImg = resampler.filter(inputImage, new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB));
Graphics2D g = (Graphics2D) inputImage.getGraphics(); g.drawImage(inputImage, 0, 0, null); AffineTransform at = new AffineTransform(); at.rotate(degrees * Math.PI / 180.0, inputImage.getWidth() / 2.0, inputImage.getHeight() / 2.0); at.preConcatenate(translationTransform); BufferedImage destinationBI = bio.filter(inputImage, null);
double sx = at.getScaleX(); double sy = at.getScaleY(); double shx = at.getShearX(); double shy = at.getShearY(); srcBI = new BufferedImage(cm, wr, cm.isAlphaPremultiplied(), null); destBI = op.filter(srcBI, null); srcBI = new BufferedImage(cm, wr, cm.isAlphaPremultiplied(), null); BufferedImage tmpSrcBI = new BufferedImage (cm, cm.createCompatibleWritableRaster(wr.getWidth(), wr.getHeight()), tmpDstBI = op.filter(tmpSrcBI, tmpDstBI);
/** * Copy and merge part of an image */ public static boolean imagecopymerge(QuercusImage dest, QuercusImage src, int dx, int dy, int sx, int sy, int w, int h, int pct) { BufferedImage rgba = new BufferedImage(dest.getWidth(), dest.getHeight(), BufferedImage.TYPE_INT_ARGB); rgba.getGraphics().drawImage(src.getBufferedImage(), 0, 0, null); BufferedImageOp rescaleOp = new RescaleOp(new float[] { 1, 1, 1, ((float)pct) / 100 }, new float[] { 0, 0, 0, 0 }, null); BufferedImage rescaledImage = rescaleOp.filter(rgba, null); Graphics2D g = (Graphics2D)dest.getGraphics().create(); g.setComposite(AlphaComposite.SrcOver); g.drawImage(rescaledImage, dx, dy, dx + w, dy + h, sx, sy, sx + w, sy + h, null); return true; }
public Image rotateImage(Image img, float degrees){ BufferedImage sourceBI = new BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.TYPE_INT_ARGB); sourceBI.getGraphics().drawImage(img,0,0,null); AffineTransform at = new AffineTransform(); at.rotate(degrees*Math.PI/180, sourceBI.getWidth()/2, sourceBI.getHeight()/2); BufferedImageOp bio = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR); return bio.filter(sourceBI, null); }
private BufferedImage getRotateImage(BufferedImage img){ AffineTransform at = new AffineTransform(); // scale image at.scale(1.0, 1.0); // -- rotation 90 deg --// at.rotate( Math.PI / 2.0, img.getWidth() / 2.0, img .getHeight() / 2.0); /* * translate to make sure the rotation doesn't cut off any image data */ AffineTransform translationTransform; translationTransform = findTranslation(at, img); at.preConcatenate(translationTransform); // instantiate and apply affine transformation filter BufferedImageOp bio; bio = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR); BufferedImage res = bio.filter(img, null); return res; }
JLabel label = new JLabel(new ImageIcon(image)); add(label); BufferedImage tile = image.getSubimage(0, 0, 61, 61); add(new JButton(new RotateAction(tile, label))); pack(); BufferedImage tmpImage = op.filter(image, null); image.setData(tmpImage.getRaster()); component.repaint(); double y = 0.5 * image.getHeight(); AffineTransform xfrm = AffineTransform.getQuadrantRotateInstance(1, x, y); op = new AffineTransformOp( xfrm, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
@Override public Rectangle2D getBounds2D(BufferedImage src) { if (opHor != null && opVer != null) { return opHor.getBounds2D(src).createIntersection(opVer.getBounds2D(src)); } else if (opVer != null) { return opVer.getBounds2D(src); } else if (opHor != null) { return opHor.getBounds2D(src); } else return new Rectangle2D.Float(src.getMinX(), src.getMinY(), src.getWidth(), src.getHeight()); }
@Override protected RenderedImage render(int minimumSize, Dimension imageSize) throws IOException { if (imageSize.width == 1 && imageSize.height == 1) { return ONE_BY_ONE_IMAGE; } double sx = divide(imageSize.width, seedImage.getWidth()); double sy = divide(imageSize.height, seedImage.getHeight()); AffineTransform xform = AffineTransform.getScaleInstance(sx, sy); BufferedImageOp op = new AffineTransformOp(xform, AffineTransformOp.TYPE_NEAREST_NEIGHBOR); return op.filter(seedImage, null); }