List of usage examples for java.awt.image BufferedImage getHeight
public int getHeight()
From source file:net.cloudkit.relaxation.VerifyImage.java
public static byte[][] imgToByteArray(BufferedImage src) { int w = src.getWidth(); int h = src.getHeight(); byte[][] result = new byte[w][h]; for (int x = 0; x < w; ++x) { for (int y = 0; y < h; ++y) { int rgb = getRed(src.getRGB(x, y)); result[x][y] = (byte) (rgb == 255 ? 0 : 1); }/*from ww w . j av a2 s . c om*/ } return result; }
From source file:net.semanticmetadata.lire.utils.FileUtils.java
public static void saveImageResultsToPng(String prefix, TopDocs hits, String queryImage, IndexReader ir) throws IOException { LinkedList<BufferedImage> results = new LinkedList<BufferedImage>(); int width = 0; for (int i = 0; i < Math.min(hits.scoreDocs.length, 10); i++) { // hits.score(i) // hits.doc(i).get("descriptorImageIdentifier") BufferedImage tmp = ImageIO .read(new FileInputStream(ir.document(hits.scoreDocs[i].doc).get("descriptorImageIdentifier"))); if (tmp.getHeight() > 200) { double factor = 200d / ((double) tmp.getHeight()); tmp = ImageUtils.scaleImage(tmp, (int) (tmp.getWidth() * factor), 200); }/*w w w .j a v a 2 s .c o m*/ width += tmp.getWidth() + 5; results.add(tmp); } BufferedImage result = new BufferedImage(width, 220, BufferedImage.TYPE_INT_RGB); Graphics2D g2 = (Graphics2D) result.getGraphics(); g2.setColor(Color.black); g2.clearRect(0, 0, result.getWidth(), result.getHeight()); g2.setColor(Color.green); g2.setFont(Font.decode("\"Arial\", Font.BOLD, 12")); int offset = 0; int count = 0; for (Iterator<BufferedImage> iterator = results.iterator(); iterator.hasNext();) { BufferedImage next = iterator.next(); g2.drawImage(next, offset, 20, null); g2.drawString(hits.scoreDocs[count].score + "", offset + 5, 12); offset += next.getWidth() + 5; count++; } ImageIO.write(result, "PNG", new File(prefix + "_" + (System.currentTimeMillis() / 1000) + ".png")); }
From source file:com.actelion.research.orbit.imageAnalysis.utils.ImageUtils.java
/** * Can be used to verify impact of different encoding algorithms. Compares two BufferedImages and outputs differences between those. * * @param image/*from www . ja va 2 s . co m*/ * @param image2 * @return */ public static int[] calculateBufferedImageDifferencesPxByPx(BufferedImage image, BufferedImage image2) { int width = image.getWidth(); int height = image.getHeight(); int width2 = image2.getWidth(); int height2 = image2.getHeight(); WritableRaster raster1 = image.getRaster(); WritableRaster raster2 = image2.getRaster(); if (width != width2 || height != height2) throw new IllegalArgumentException( "Please insert two identical images that were treated with different image algorithms"); int[] diff = new int[width * height]; for (int row = 0; row < height; row++) { for (int col = 0; col < width; col++) { for (int band = 0; band < raster1.getNumBands(); band++) { int p1 = raster1.getSample(col, row, band); int p2 = raster2.getSample(col, row, band); diff[((row * width) + col)] = p2 - p1; } } } return diff; }
From source file:GraphicsUtil.java
public static void drawCentered(Graphics g, BufferedImage img, Point2D location, double newWidth, double newHeight, ImageObserver observer) { Graphics2D g2 = (Graphics2D) g; g2.drawImage(img, // what to draw (int) (location.getX() - (newWidth / 2)), // dest left (int) (location.getY() - (newHeight / 2)), // dest top (int) (location.getX() + (newWidth / 2)), // dest right (int) (location.getY() + (newHeight / 2)), // dest bottom 0, // src left 0, // src top img.getWidth(), // src right img.getHeight(), // src bottom observer // to notify of image updates );/*from w ww . j a v a 2s . c o m*/ }
From source file:de.mprengemann.intellij.plugin.androidicons.util.ImageUtils.java
public static void updateImage(JLabel imageContainer, File imageFile, Format format) { if (imageFile == null || !imageFile.exists()) { return;//from w ww . j av a 2s . co m } BufferedImage img = null; try { img = ImageIO.read(imageFile); } catch (IOException e) { e.printStackTrace(); } if (img == null) { return; } int imageWidth = img.getWidth(); int imageHeight = img.getHeight(); int imageViewWidth = (int) imageContainer.getPreferredSize().getWidth(); int imageViewHeight = (int) imageContainer.getPreferredSize().getHeight(); double factor = getScaleFactorToFit(new Dimension(imageWidth, imageHeight), new Dimension(imageViewWidth, imageViewHeight)); imageWidth = (int) (factor * imageWidth); imageHeight = (int) (factor * imageHeight); if (imageWidth <= 0 || imageHeight <= 0 || imageViewWidth <= 0 || imageViewHeight <= 0) { return; } BufferedImage tmp = UIUtil.createImage(imageViewWidth, imageViewHeight, BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = tmp.createGraphics(); g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); int x = (imageViewWidth - imageWidth) / 2; int y = (imageViewHeight - imageHeight) / 2; if (format == Format.PNG || format == Format.XML) { g2.drawImage(img, x, y, imageWidth, imageHeight, null); } else { g2.drawImage(img, x, y, imageWidth, imageHeight, Color.WHITE, null); } g2.dispose(); imageContainer.setIcon(new ImageIcon(tmp)); }
From source file:net.groupbuy.util.ImageUtils.java
/** * ?// ww w .ja v a2s . c om * * @param srcFile * ? * @param destFile * * @param watermarkFile * ? * @param watermarkPosition * ?? * @param alpha * ?? */ public static void addWatermark(File srcFile, File destFile, File watermarkFile, WatermarkPosition watermarkPosition, int alpha) { Assert.notNull(srcFile); Assert.notNull(destFile); Assert.state(alpha >= 0); Assert.state(alpha <= 100); if (watermarkFile == null || !watermarkFile.exists() || watermarkPosition == null || watermarkPosition == WatermarkPosition.no) { try { FileUtils.copyFile(srcFile, destFile); } catch (IOException e) { e.printStackTrace(); } return; } if (type == Type.jdk) { Graphics2D graphics2D = null; ImageOutputStream imageOutputStream = null; ImageWriter imageWriter = null; try { BufferedImage srcBufferedImage = ImageIO.read(srcFile); int srcWidth = srcBufferedImage.getWidth(); int srcHeight = srcBufferedImage.getHeight(); BufferedImage destBufferedImage = new BufferedImage(srcWidth, srcHeight, BufferedImage.TYPE_INT_RGB); graphics2D = destBufferedImage.createGraphics(); graphics2D.setBackground(BACKGROUND_COLOR); graphics2D.clearRect(0, 0, srcWidth, srcHeight); graphics2D.drawImage(srcBufferedImage, 0, 0, null); graphics2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha / 100F)); BufferedImage watermarkBufferedImage = ImageIO.read(watermarkFile); int watermarkImageWidth = watermarkBufferedImage.getWidth(); int watermarkImageHeight = watermarkBufferedImage.getHeight(); int x = srcWidth - watermarkImageWidth; int y = srcHeight - watermarkImageHeight; if (watermarkPosition == WatermarkPosition.topLeft) { x = 0; y = 0; } else if (watermarkPosition == WatermarkPosition.topRight) { x = srcWidth - watermarkImageWidth; y = 0; } else if (watermarkPosition == WatermarkPosition.center) { x = (srcWidth - watermarkImageWidth) / 2; y = (srcHeight - watermarkImageHeight) / 2; } else if (watermarkPosition == WatermarkPosition.bottomLeft) { x = 0; y = srcHeight - watermarkImageHeight; } else if (watermarkPosition == WatermarkPosition.bottomRight) { x = srcWidth - watermarkImageWidth; y = srcHeight - watermarkImageHeight; } graphics2D.drawImage(watermarkBufferedImage, x, y, watermarkImageWidth, watermarkImageHeight, null); imageOutputStream = ImageIO.createImageOutputStream(destFile); imageWriter = ImageIO.getImageWritersByFormatName(FilenameUtils.getExtension(destFile.getName())) .next(); imageWriter.setOutput(imageOutputStream); ImageWriteParam imageWriteParam = imageWriter.getDefaultWriteParam(); imageWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); imageWriteParam.setCompressionQuality(DEST_QUALITY / 100F); imageWriter.write(null, new IIOImage(destBufferedImage, null, null), imageWriteParam); imageOutputStream.flush(); } catch (IOException e) { e.printStackTrace(); } finally { if (graphics2D != null) { graphics2D.dispose(); } if (imageWriter != null) { imageWriter.dispose(); } if (imageOutputStream != null) { try { imageOutputStream.close(); } catch (IOException e) { } } } } else { String gravity = "SouthEast"; if (watermarkPosition == WatermarkPosition.topLeft) { gravity = "NorthWest"; } else if (watermarkPosition == WatermarkPosition.topRight) { gravity = "NorthEast"; } else if (watermarkPosition == WatermarkPosition.center) { gravity = "Center"; } else if (watermarkPosition == WatermarkPosition.bottomLeft) { gravity = "SouthWest"; } else if (watermarkPosition == WatermarkPosition.bottomRight) { gravity = "SouthEast"; } IMOperation operation = new IMOperation(); operation.gravity(gravity); operation.dissolve(alpha); operation.quality((double) DEST_QUALITY); operation.addImage(watermarkFile.getPath()); operation.addImage(srcFile.getPath()); operation.addImage(destFile.getPath()); if (type == Type.graphicsMagick) { CompositeCmd compositeCmd = new CompositeCmd(true); if (graphicsMagickPath != null) { compositeCmd.setSearchPath(graphicsMagickPath); } try { compositeCmd.run(operation); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } catch (IM4JavaException e) { e.printStackTrace(); } } else { CompositeCmd compositeCmd = new CompositeCmd(false); if (imageMagickPath != null) { compositeCmd.setSearchPath(imageMagickPath); } try { compositeCmd.run(operation); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } catch (IM4JavaException e) { e.printStackTrace(); } } } }
From source file:com.enonic.vertical.adminweb.handlers.xmlbuilders.ContentEnhancedImageXMLBuilder.java
private static String resolveFilenameForScaledImage(String originalImageName, BufferedImage image, String fileType) {/*from w w w.j a va2 s .co m*/ StringBuffer name = new StringBuffer(); name.append(originalImageName).append("_").append(image.getWidth()).append("x").append(image.getHeight()); name.append(".").append(fileType); return name.toString(); }
From source file:de.mprengemann.intellij.plugin.androidicons.util.ImageUtils.java
private static BufferedImage generateBordersImage(BufferedImage source, int trimmedWidth, int trimmedHeight) throws IOException { BufferedImage finalBorder = UIUtil.createImage(trimmedWidth + 2, trimmedHeight + 2, BufferedImage.TYPE_INT_ARGB); int cutW = source.getWidth() - 2; int cutH = source.getHeight() - 2; // left border BufferedImage leftBorder = UIUtil.createImage(1, cutH, BufferedImage.TYPE_INT_ARGB); leftBorder.setRGB(0, 0, 1, cutH, source.getRGB(0, 1, 1, cutH, null, 0, 1), 0, 1); verifyBorderImage(leftBorder);/*www. j a v a2 s . c om*/ leftBorder = resizeBorder(leftBorder, 1, trimmedHeight); finalBorder.setRGB(0, 1, 1, trimmedHeight, leftBorder.getRGB(0, 0, 1, trimmedHeight, null, 0, 1), 0, 1); // right border BufferedImage rightBorder = UIUtil.createImage(1, cutH, BufferedImage.TYPE_INT_ARGB); rightBorder.setRGB(0, 0, 1, cutH, source.getRGB(cutW + 1, 1, 1, cutH, null, 0, 1), 0, 1); verifyBorderImage(rightBorder); rightBorder = resizeBorder(rightBorder, 1, trimmedHeight); finalBorder.setRGB(trimmedWidth + 1, 1, 1, trimmedHeight, rightBorder.getRGB(0, 0, 1, trimmedHeight, null, 0, 1), 0, 1); // top border BufferedImage topBorder = UIUtil.createImage(cutW, 1, BufferedImage.TYPE_INT_ARGB); topBorder.setRGB(0, 0, cutW, 1, source.getRGB(1, 0, cutW, 1, null, 0, cutW), 0, cutW); verifyBorderImage(topBorder); topBorder = resizeBorder(topBorder, trimmedWidth, 1); finalBorder.setRGB(1, 0, trimmedWidth, 1, topBorder.getRGB(0, 0, trimmedWidth, 1, null, 0, trimmedWidth), 0, trimmedWidth); // bottom border BufferedImage bottomBorder = UIUtil.createImage(cutW, 1, BufferedImage.TYPE_INT_ARGB); bottomBorder.setRGB(0, 0, cutW, 1, source.getRGB(1, cutH + 1, cutW, 1, null, 0, cutW), 0, cutW); verifyBorderImage(bottomBorder); bottomBorder = resizeBorder(bottomBorder, trimmedWidth, 1); finalBorder.setRGB(1, trimmedHeight + 1, trimmedWidth, 1, bottomBorder.getRGB(0, 0, trimmedWidth, 1, null, 0, trimmedWidth), 0, trimmedWidth); return finalBorder; }
From source file:com.silverpeas.gallery.ImageHelper.java
private static void getDimension(final BufferedImage image, final PhotoDetail photo) { if (image == null) { photo.setSizeL(0);/*from www . j av a 2 s . c o m*/ photo.setSizeH(0); } else { photo.setSizeL(image.getWidth()); photo.setSizeH(image.getHeight()); } }
From source file:com.zacwolf.commons.email.Email.java
/** * This method crops an original image to the crop parameters provided. * * If the crop rectangle lies outside the rectangle (even if partially), * adjusts the rectangle to be included within the image area. * * @param img = Original Image To Be Cropped * @param size = Crop area rectangle//w w w . j av a2 s .co m * @param clipX = Starting X-position of crop area rectangle * @param clipY = Strating Y-position of crop area rectangle * @throws Exception */ public static Rectangle createClip(BufferedImage img, Dimension size, int clipX, int clipY) throws Exception { Rectangle clip; if ((size.width + clipX) <= img.getWidth() && (size.height + clipY) <= img.getHeight()) { clip = new Rectangle(size); clip.x = clipX; clip.y = clipY; } else { if ((size.width + clipX) > img.getWidth()) size.width = img.getWidth() - clipX; if ((size.height + clipY) > img.getHeight()) size.height = img.getHeight() - clipY; clip = new Rectangle(size); clip.x = clipX; clip.y = clipY; } return clip; }