Class PdfVisualTester


  • public class PdfVisualTester
    extends java.lang.Object
    • Constructor Summary

      Constructors 
      Constructor Description
      PdfVisualTester()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static int calcCombinedIntensity​(int element)
      Calculate the combined intensity of a pixel and normalizes it to a value of at most 255.
      private static int color​(int r, int g, int b)  
      static java.util.List<PdfVisualTester.PdfCompareResult> comparePdfDocuments​(byte[] expected, byte[] actual, java.lang.String testName, boolean keepSameImages)
      Compares two PDF documents by rendering each page to an image and comparing pixel by pixel.
      static java.awt.image.BufferedImage createDiffImage​(java.awt.image.BufferedImage img1, java.awt.image.BufferedImage img2)  
      private static int fade​(int i)  
      private static int fadeElement​(int i)  
      private static int getActualPixel​(java.awt.image.BufferedImage img, int x, int y)  
      private static int getElement​(int expectedElement, int actualElement)  
      private static int getExpectedPixel​(java.awt.image.BufferedImage img, int x, int y)  
      private static boolean isImageDifferent​(java.awt.image.BufferedImage imgExpected, java.awt.image.BufferedImage imgActual)
      Gets the data buffer of each image and compares.
      private static int levelIntensity​(int darkness, int maxIntensity)
      Levels the color intensity to at least 50 and at most maxIntensity.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ONE_PX_IMAGE

        private static final java.awt.image.BufferedImage ONE_PX_IMAGE
    • Constructor Detail

      • PdfVisualTester

        public PdfVisualTester()
    • Method Detail

      • comparePdfDocuments

        public static java.util.List<PdfVisualTester.PdfCompareResult> comparePdfDocuments​(byte[] expected,
                                                                                           byte[] actual,
                                                                                           java.lang.String testName,
                                                                                           boolean keepSameImages)
                                                                                    throws java.io.IOException
        Compares two PDF documents by rendering each page to an image and comparing pixel by pixel.
        Parameters:
        expected -
        actual -
        testName -
        keepSameImages - Whether to return the images in the case they are good (ie. the same).
        Returns:
        A list of PdfVisualTester.PdfCompareResult instances describing differences.
        Throws:
        java.lang.Exception
        java.io.IOException
      • isImageDifferent

        private static boolean isImageDifferent​(java.awt.image.BufferedImage imgExpected,
                                                java.awt.image.BufferedImage imgActual)
        Gets the data buffer of each image and compares. NOTE: May be an expensive (memory and CPU) operation for large images.
        Parameters:
        imgExpected -
        imgActual -
        Returns:
        whether imgExpected is different image compared to imgActual
      • createDiffImage

        public static java.awt.image.BufferedImage createDiffImage​(java.awt.image.BufferedImage img1,
                                                                   java.awt.image.BufferedImage img2)
      • getExpectedPixel

        private static int getExpectedPixel​(java.awt.image.BufferedImage img,
                                            int x,
                                            int y)
      • getActualPixel

        private static int getActualPixel​(java.awt.image.BufferedImage img,
                                          int x,
                                          int y)
      • getElement

        private static int getElement​(int expectedElement,
                                      int actualElement)
      • levelIntensity

        private static int levelIntensity​(int darkness,
                                          int maxIntensity)
        Levels the color intensity to at least 50 and at most maxIntensity.
        Parameters:
        darkness - color component to level
        maxIntensity - highest possible intensity cut off
        Returns:
        A value that is at least 50 and at most maxIntensity
      • calcCombinedIntensity

        private static int calcCombinedIntensity​(int element)
        Calculate the combined intensity of a pixel and normalizes it to a value of at most 255.
        Parameters:
        element -
        Returns:
      • color

        private static int color​(int r,
                                 int g,
                                 int b)
      • fadeElement

        private static int fadeElement​(int i)
      • fade

        private static int fade​(int i)