SEGUINTE ..
Dessa vez ta foda -.-.
- tenho um pdf;
- o pdf tem imagens;
- eu uso a api iText pra pegar as imagens;
- a api me retorna os bytes das imagens;
com jpeg a coisa flui normal..
PROBLEMA:
para jpegs o iText nao faz nenhum tratamento.. nenhum encode..
MAS ..
para outros tipos como PNG .. ele faz um FlateEncode ... um tipo de zip do proprio java ..
entao.. quando me volta os bytes da imagem.. ele ta compactado..
eu to pegando o proprio método da api .. pra fazer o decod..
byte[] bytesDecod = PdfReader.FlateDecode(bytes);
ele me retorno os bytes descompactados..
esses bytes representam uma imagen ..
MAS EU NÃO SEI O TIPO DELA...
pode ser em P&B pode ser colorido ..
pode ser png..
pode ser BMP ..
até entao.. pelo que eu sei esses bytes tao como imagem pura..
acho que bmp mesmo..
a principio a primeira coisa q eu quero fazer é pegar esse meu array de byte e conseguir gerar um arquivo de imagem.
simples assim..
tipo..
pra jpeg.. eu apenas faço isso ..
}else{
Image image = Toolkit.getDefaultToolkit().createImage(bytes);
images.add(ImageUtils.toBufferedImage(image,
Integer.parseInt(pdfStrem.get(PdfName.WIDTH).toString()),
Integer.parseInt(pdfStrem.get(PdfName.HEIGHT).toString())));
e funciona..
ele me retorna uma bufferedImage valida.. que eu serializo e posso visualizar..
mas para aqueles bytes decodados nao..
HELP URGENTE.
String colorSpace = pdfStrem.get(PdfName.COLORSPACE).toString();
String filter = pdfStrem.get(PdfName.FILTER).toString();
int bits = Integer.valueOf(pdfStrem.get(PdfName.BITSPERCOMPONENT).toString());
int width = Integer.valueOf(pdfStrem.get(PdfName.WIDTH).toString());
int height = Integer.valueOf(pdfStrem.get(PdfName.HEIGHT).toString());
PdfDictionary param = (PdfDictionary)pdfStrem.get(PdfName.DECODEPARMS);
int colors = Integer.valueOf(param.get(PdfName.COLORS).toString());
int predictor = Integer.valueOf(param.get(PdfName.PREDICTOR).toString());
int colums = Integer.valueOf(param.get(PdfName.COLUMNS).toString());
if(filter.equals("/FlateDecode"))
{
byte[] bytesDecod = PdfReader.FlateDecode(bytes);
Bom isso é tudo as informações que eu consigo pegar do meu pdf sobre a imagem..
alguem poderia me explicar o que é .. e como eu pego ou calculo o band offSet da imagem ?
------------------
RESOLVIDO USANDO ITEXT+PDF RENDERER USEI UMA MISTURA DE CLASSES ...