List of usage examples for java.awt.image Raster createPackedRaster
public static WritableRaster createPackedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bandMasks, Point location)
From source file:image.text.CreateTifAndAnnotate.java
public void createAnnotatedTif(String[] args, OutputStream out) throws Exception { byte[] byteArray = new byte[] { -1, 0 }; ColorModel colorModel = new IndexColorModel(1, 2, byteArray, byteArray, byteArray); WritableRaster writeableRaster = Raster.createPackedRaster(DataBuffer.TYPE_BYTE, 1700, 2200, 1, 1, null); BufferedImage bufImg = new BufferedImage(colorModel, writeableRaster, false, null); // ------------------------------------------------------------------- Graphics2D g2d = bufImg.createGraphics(); g2d.setColor(Color.black);/* w ww .j a va2 s. c o m*/ Font font = new Font("Arial Bold", Font.PLAIN, 36); g2d.setFont(font); int vertPos = 200; for (int i = 0; i < args.length; i++) { g2d.drawString(args[i], 75, vertPos); vertPos += 48; } PlanarImage planarImage = PlanarImage.wrapRenderedImage(bufImg); TIFFEncodeParam encodeParam = new TIFFEncodeParam(); encodeParam.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4); encodeParam.setWriteTiled(false); // false means use strips. encodeParam.setTileSize(0, 0); // tiling will make the file size much larger. encodeParam.setLittleEndian(true); // create an Intel (II) format image String SoftwareVersion[] = new String[] { "TIFF by Joe, " + this.getClass().getName() }; String docName[] = new String[] { "JoesTifAnnotator" }; // Create a new TIFF fields including a new TIFF ASCII TIFF tag. TIFFField tiffFields[] = new TIFFField[5]; tiffFields[0] = new TIFFField(269, TIFFField.TIFF_ASCII, docName.length, docName); tiffFields[1] = new TIFFField(282, TIFFField.TIFF_RATIONAL, 1, new long[][] { { 200, 1 } }); tiffFields[2] = new TIFFField(283, TIFFField.TIFF_RATIONAL, 1, new long[][] { { 200, 1 } }); // resolution unit tiffFields[3] = new TIFFField(296, TIFFField.TIFF_SHORT, 1, new char[] { 2 }); tiffFields[4] = new TIFFField(305, TIFFField.TIFF_ASCII, SoftwareVersion.length, SoftwareVersion); encodeParam.setExtraFields(tiffFields); TIFFImageEncoder encoder = new TIFFImageEncoder(out, encodeParam); encoder.encode(planarImage); }
From source file:org.apache.fop.render.pcl.PCLGenerator.java
private RenderedImage getMask(RenderedImage img, Dimension targetDim) { ColorModel cm = img.getColorModel(); if (cm.hasAlpha()) { BufferedImage alpha = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_BYTE_GRAY); Raster raster = img.getData(); GraphicsUtil.copyBand(raster, cm.getNumColorComponents(), alpha.getRaster(), 0); BufferedImageOp op1 = new LookupOp(new ByteLookupTable(0, THRESHOLD_TABLE), null); BufferedImage alphat = op1.filter(alpha, null); BufferedImage mask;// ww w . j ava 2 s .c om if (true) { mask = new BufferedImage(targetDim.width, targetDim.height, BufferedImage.TYPE_BYTE_BINARY); } else { byte[] arr = { (byte) 0, (byte) 0xff }; ColorModel colorModel = new IndexColorModel(1, 2, arr, arr, arr); WritableRaster wraster = Raster.createPackedRaster(DataBuffer.TYPE_BYTE, targetDim.width, targetDim.height, 1, 1, null); mask = new BufferedImage(colorModel, wraster, false, null); } Graphics2D g2d = mask.createGraphics(); try { AffineTransform at = new AffineTransform(); double sx = targetDim.getWidth() / img.getWidth(); double sy = targetDim.getHeight() / img.getHeight(); at.scale(sx, sy); g2d.drawRenderedImage(alphat, at); } finally { g2d.dispose(); } /* try { BatchDiffer.saveAsPNG(alpha, new java.io.File("D:/out-alpha.png")); BatchDiffer.saveAsPNG(mask, new java.io.File("D:/out-mask.png")); } catch (IOException e) { e.printStackTrace(); }*/ return mask; } else { return null; } }