List of usage examples for java.awt.image AffineTransformOp TYPE_BILINEAR
int TYPE_BILINEAR
To view the source code for java.awt.image AffineTransformOp TYPE_BILINEAR.
Click Source Link
From source file:Main.java
public static void main(String[] argv) throws Exception { BufferedImage bufferedImage = new BufferedImage(200, 200, BufferedImage.TYPE_BYTE_INDEXED); AffineTransform tx = new AffineTransform(); tx.shear(2, 3);/*from w ww .ja v a2s. c o m*/ AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR); bufferedImage = op.filter(bufferedImage, null); }
From source file:Main.java
public static void main(String[] argv) throws Exception { BufferedImage bufferedImage = new BufferedImage(200, 200, BufferedImage.TYPE_BYTE_INDEXED); AffineTransform tx = new AffineTransform(); tx.scale(1, 2);//from w w w . j av a 2s. com AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR); bufferedImage = op.filter(bufferedImage, null); }
From source file:Main.java
public static void main(String[] argv) throws Exception { BufferedImage bufferedImage = new BufferedImage(200, 200, BufferedImage.TYPE_BYTE_INDEXED); AffineTransform tx = new AffineTransform(); tx.translate(2, 1);/*from w ww . ja v a2 s . c o m*/ AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR); bufferedImage = op.filter(bufferedImage, null); }
From source file:Main.java
public static void main(String[] argv) throws Exception { BufferedImage bufferedImage = new BufferedImage(200, 200, BufferedImage.TYPE_BYTE_INDEXED); AffineTransform tx = new AffineTransform(); tx.rotate(0.5, bufferedImage.getWidth() / 2, bufferedImage.getHeight() / 2); AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR); bufferedImage = op.filter(bufferedImage, null); }
From source file:Main.java
public static void main(String[] args) throws java.io.IOException { BufferedImage img = ImageIO.read(new File("input-image.png")); BufferedImage rotated = new AffineTransformOp( AffineTransform.getQuadrantRotateInstance(3, img.getWidth() / 2, img.getHeight() / 2), AffineTransformOp.TYPE_BILINEAR).filter(img, null); ImageIO.write(rotated, "PNG", new File("output-image.png")); }
From source file:RotateImage45Degrees.java
public RotateImage45Degrees(String imageFile) { addNotify();/* w w w . j ava2 s . com*/ frameInsets = getInsets(); inputImage = Toolkit.getDefaultToolkit().getImage(imageFile); MediaTracker mt = new MediaTracker(this); mt.addImage(inputImage, 0); try { mt.waitForID(0); } catch (InterruptedException ie) { } sourceBI = new BufferedImage(inputImage.getWidth(null), inputImage.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics2D g = (Graphics2D) sourceBI.getGraphics(); g.drawImage(inputImage, 0, 0, null); AffineTransform at = new AffineTransform(); // scale image at.scale(2.0, 2.0); // rotate 45 degrees around image center at.rotate(45.0 * Math.PI / 180.0, sourceBI.getWidth() / 2.0, sourceBI.getHeight() / 2.0); /* * translate to make sure the rotation doesn't cut off any image data */ AffineTransform translationTransform; translationTransform = findTranslation(at, sourceBI); at.preConcatenate(translationTransform); // instantiate and apply affine transformation filter BufferedImageOp bio; bio = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR); destinationBI = bio.filter(sourceBI, null); int frameInsetsHorizontal = frameInsets.right + frameInsets.left; int frameInsetsVertical = frameInsets.top + frameInsets.bottom; setSize(destinationBI.getWidth() + frameInsetsHorizontal, destinationBI.getHeight() + frameInsetsVertical); show(); }
From source file:org.apache.hadoop.chukwa.hicc.ImageSlicer.java
public BufferedImage prepare(String filename) { try {// www . ja v a 2 s. c o m src = ImageIO.read(new File(filename)); } catch (IOException e) { log.error("Image file does not exist:" + filename + ", can not render image."); } XYData fullSize = new XYData(1, 1); while (fullSize.getX() < src.getWidth() || fullSize.getY() < src.getHeight()) { fullSize.set(fullSize.getX() * 2, fullSize.getY() * 2); } float scaleX = (float) fullSize.getX() / src.getWidth(); float scaleY = (float) fullSize.getY() / src.getHeight(); log.info("Image size: (" + src.getWidth() + "," + src.getHeight() + ")"); log.info("Scale size: (" + scaleX + "," + scaleY + ")"); AffineTransform at = AffineTransform.getScaleInstance(scaleX, scaleY); // AffineTransform.getScaleInstance((fullSize.getX()-src.getWidth())/2,(fullSize.getY()-src.getHeight())/2); AffineTransformOp op = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR); BufferedImage dest = op.filter(src, null); return dest; }
From source file:org.github.jipsg.sanselan.BaseSanselanTest.java
/** * Some quick and dirty image scaling - please note that for best performance * and quality you should use image rescaling libraries. *///from ww w. jav a 2s .c o m @Override public BufferedImage resample(BufferedImage bufferedImage, int width, int height) { Dimension imageDimension = new Dimension(bufferedImage.getWidth(), bufferedImage.getHeight()); Dimension boundaryDimension = new Dimension(width, height); Dimension scaledDimension = BufferedImageUtils.getScaledDimension(imageDimension, boundaryDimension); double scaleX = scaledDimension.getWidth() / bufferedImage.getWidth(); double scaleY = scaledDimension.getHeight() / bufferedImage.getHeight(); AffineTransform scaleTransform = AffineTransform.getScaleInstance(scaleX, scaleY); AffineTransformOp biLinearScaleOp = new AffineTransformOp(scaleTransform, AffineTransformOp.TYPE_BILINEAR); return biLinearScaleOp.filter(bufferedImage, new BufferedImage(scaledDimension.width, scaledDimension.height, bufferedImage.getType())); }
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);/*from w w w. java2s. 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:org.apache.hadoop.chukwa.hicc.ImageSlicer.java
public BufferedImage tile(BufferedImage image, int level, XYData quadrant, XYData size, boolean efficient) throws Exception { double scale = Math.pow(2, level); if (efficient) { /* efficient: crop out the area of interest first, then scale and copy it */ XYData inverSize = new XYData((int) (image.getWidth(null) / (size.getX() * scale)), (int) (image.getHeight(null) / (size.getY() * scale))); XYData topLeft = new XYData(quadrant.getX() * size.getX() * inverSize.getX(), quadrant.getY() * size.getY() * inverSize.getY()); XYData newSize = new XYData((size.getX() * inverSize.getX()), (size.getY() * inverSize.getY())); if (inverSize.getX() < 1.0 || inverSize.getY() < 1.0) { throw new Exception("Requested zoom level (" + level + ") is too high."); }/*from w ww .jav a2 s . c o m*/ image = image.getSubimage(topLeft.getX(), topLeft.getY(), newSize.getX(), newSize.getY()); BufferedImage zoomed = new BufferedImage(size.getX(), size.getY(), BufferedImage.TYPE_INT_RGB); zoomed.getGraphics().drawImage(image, 0, 0, size.getX(), size.getY(), null); if (level > maxLevel) { maxLevel = level; } return zoomed; } else { /* inefficient: copy the whole image, scale it and then crop out the area of interest */ XYData newSize = new XYData((int) (size.getX() * scale), (int) (size.getY() * scale)); XYData topLeft = new XYData(quadrant.getX() * size.getX(), quadrant.getY() * size.getY()); if (newSize.getX() > image.getWidth(null) || newSize.getY() > image.getHeight(null)) { throw new Exception("Requested zoom level (" + level + ") is too high."); } AffineTransform tx = new AffineTransform(); AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR); tx.scale(scale, scale); image = op.filter(image, null); BufferedImage zoomed = image.getSubimage(topLeft.getX(), topLeft.getY(), newSize.getX(), newSize.getY()); if (level > maxLevel) { maxLevel = level; } return zoomed; } }