public static BufferedImage combine2Images(BufferedImage imageLeft, BufferedImage imageRight) {
        Logger.getLogger(ImageReader.class.getName()).entering(ImageReader.class.getName(), "combine2Images", new Object[] {imageLeft, imageRight});
        if (imageLeft == null || imageRight == null) {
            Logger.getLogger(ImageReader.class.getName()).exiting(ImageReader.class.getName(), "combine2Images", null);
            return null;
        }
        int totalWidth = imageLeft.getWidth() + imageRight.getWidth();
        int totalHeigh = (imageLeft.getHeight() < imageRight.getHeight()) ? imageRight.getHeight() : imageLeft.getHeight();
        BufferedImage imageCombined = new BufferedImage(totalWidth, totalHeigh, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2d = imageCombined.createGraphics();
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
        g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
        g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
        g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
        g2d.setColor(findColor(imageLeft));
        g2d.fillRect(0, 0, totalWidth, totalHeigh);
        g2d.drawImage(imageLeft, 0, 0, imageLeft.getWidth(), imageLeft.getHeight(), null);
        g2d.drawImage(imageRight, imageLeft.getWidth(), 0, imageRight.getWidth(), imageRight.getHeight(), null);
        g2d.dispose();
        imageRight.flush();
        imageLeft.flush();
        Logger.getLogger(ImageReader.class.getName()).exiting(ImageReader.class.getName(), "combine2Images", imageCombined);
        return imageCombined;
    }