public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) { checkNoCopyActive(); AffineTransform tf = new AffineTransform(); tf.concatenate(baseTransform); tf.concatenate(transform); // Sometimes the xform can be null if (xform != null) tf.concatenate((AffineTransform) xform.clone()); PDImageXObject pdImage = imageEncoder.encodeImage(document, contentStream, img); try { contentStreamSaveState(); int imgHeight = img.getHeight(obs); tf.translate(0, imgHeight); tf.scale(1, -1); contentStream.transform(new Matrix(tf)); Object keyInterpolation = renderingHints.get(RenderingHints.KEY_INTERPOLATION); if (RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR.equals(keyInterpolation)) pdImage.setInterpolate(false); contentStream.drawImage(pdImage, 0, 0, img.getWidth(obs), imgHeight); contentStreamRestoreState(); } catch (IOException e) { throwException(e); } return true; }
xobject.setInterpolate(true); } else { xobject.getWidth(), xobject.getHeight(), xobject.getBitsPerComponent(), xobject.getColorSpace()); cloneImage.setInterpolate(false); if (xobject.getSoftMask() != null) cloneImage.getCOSObject().setItem(COSName.SMASK, xobject.getSoftMask());
xobject.setInterpolate(true); } else { xobject.getWidth(), xobject.getHeight(), xobject.getBitsPerComponent(), xobject.getColorSpace()); cloneImage.setInterpolate(false); if (xobject.getSoftMask() != null) cloneImage.getCOSObject().setItem(COSName.SMASK, xobject.getSoftMask());
xobject.setInterpolate(true); } else { xobject.getWidth(), xobject.getHeight(), xobject.getBitsPerComponent(), xobject.getColorSpace()); cloneImage.setInterpolate(false); if (xobject.getSoftMask() != null) cloneImage.getCOSObject().setItem(COSName.SMASK, xobject.getSoftMask());
xobject.setInterpolate(true); } else { xobject.getWidth(), xobject.getHeight(), xobject.getBitsPerComponent(), xobject.getColorSpace()); cloneImage.setInterpolate(false); if (xobject.getSoftMask() != null) cloneImage.getCOSObject().setItem(COSName.SMASK, xobject.getSoftMask());