Я пытаюсь извлечь изображения из окна PDF точно так, как они отображаются в PDF
@Override
protected void processOperator(Operator operator, List<COSBase> operands) throws IOException {
final String operation = operator.getName();
if ("Do".equals(operation)) {
final COSName objectName = (COSName) operands.get(0);
final PDXObject element = getResources().getXObject(objectName);
if (element instanceof PDImageXObject) {
final ImageFile imageFile = buildImage(element);
images.add(imageFile);
} else if (element instanceof PDFormXObject) {
PDFormXObject form = (PDFormXObject) element;
showForm(form);
}
} else {
super.processOperator(operator, operands);
}
}
private void buildImage(final PDXObject element) throws IOException {
final PDRectangle cropBox = getCurrentPage().getCropBox();
final PDImageXObject image = (PDImageXObject) element;
final Matrix ctmNew = getGraphicsState().getCurrentTransformationMatrix();
final BufferedImage bImage = image.getImage();
transformImage(bImage, ctmNew); // please suggest what to do here???
}
Извлеченное изображение BufferedImage отображается как есть, то есть не повернуто, перевернуто и т. Д.
Я понимаю, что мне нужно применить пост-преобразование к извлеченному изображению. Но я до сих пор не уловил, могу ли я использовать матрицу преобразования для этой цели?
Пожалуйста, дайте несколько советов о том, как идти дальше.
Спасибо!