Java Examples for org.apache.pdfbox.pdmodel.graphics.image.ValidateXImage.validate

The following java examples will help you to understand the usage of org.apache.pdfbox.pdmodel.graphics.image.ValidateXImage.validate. These source code samples are taken from different open source projects.

Example 1
Project: pdfbox-master  File: LosslessFactoryTest.java View source code
/**
     * Tests RGB LosslessFactoryTest#createFromImage(PDDocument document,
     * BufferedImage image)
     *
     * @throws java.io.IOException
     */
public void testCreateLosslessFromImageRGB() throws IOException {
    PDDocument document = new PDDocument();
    BufferedImage image = ImageIO.read(this.getClass().getResourceAsStream("png.png"));
    PDImageXObject ximage1 = LosslessFactory.createFromImage(document, image);
    validate(ximage1, 8, image.getWidth(), image.getHeight(), "png", PDDeviceRGB.INSTANCE.getName());
    checkIdent(image, ximage1.getImage());
    // Create a grayscale image
    BufferedImage grayImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
    Graphics g = grayImage.getGraphics();
    g.drawImage(image, 0, 0, null);
    g.dispose();
    PDImageXObject ximage2 = LosslessFactory.createFromImage(document, grayImage);
    validate(ximage2, 8, grayImage.getWidth(), grayImage.getHeight(), "png", PDDeviceGray.INSTANCE.getName());
    checkIdent(grayImage, ximage2.getImage());
    // Create a bitonal image
    BufferedImage bitonalImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_BINARY);
    // avoid multiple of 8 to test padding
    assertFalse(bitonalImage.getWidth() % 8 == 0);
    g = bitonalImage.getGraphics();
    g.drawImage(image, 0, 0, null);
    g.dispose();
    PDImageXObject ximage3 = LosslessFactory.createFromImage(document, bitonalImage);
    validate(ximage3, 1, bitonalImage.getWidth(), bitonalImage.getHeight(), "png", PDDeviceGray.INSTANCE.getName());
    checkIdent(bitonalImage, ximage3.getImage());
    // This part isn't really needed because this test doesn't break
    // if the mask has the wrong colorspace (PDFBOX-2057), but it is still useful
    // if something goes wrong in the future and we want to have a PDF to open.
    PDPage page = new PDPage();
    document.addPage(page);
    PDPageContentStream contentStream = new PDPageContentStream(document, page, AppendMode.APPEND, false);
    contentStream.drawImage(ximage1, 200, 300, ximage1.getWidth() / 2, ximage1.getHeight() / 2);
    contentStream.drawImage(ximage2, 200, 450, ximage2.getWidth() / 2, ximage2.getHeight() / 2);
    contentStream.drawImage(ximage3, 200, 600, ximage3.getWidth() / 2, ximage3.getHeight() / 2);
    contentStream.close();
    File pdfFile = new File(testResultsDir, "misc.pdf");
    document.save(pdfFile);
    document.close();
    document = PDDocument.load(pdfFile, (String) null);
    new PDFRenderer(document).renderImage(0);
    document.close();
}