Estou trabalhando com a biblioteca JAI, eu consigo ler o arquivo(.tif) e criar um visualizador para ele…
package com.gempi.paulo.main;import java.awt.Frame; import java.awt.image.DataBuffer; import java.awt.image.renderable.ParameterBlock; import java.io.IOException; import javax.media.jai.JAI; import javax.media.jai.LookupTableJAI; import javax.media.jai.RenderedOp; import com.sun.media.jai.codec.FileSeekableStream; import com.sun.media.jai.codec.TIFFDecodeParam;import java.io.File;
import javax.media.jai.widget.ScrollingImagePanel;
public class LookupSampleProgram {
public static void main(String[] args) { File file = new File("D:\\Shapes_LFPR\\Lote 02\\naturatins1.tif"); FileSeekableStream stream = null; try { stream = new FileSeekableStream(file); } catch (IOException e) { e.printStackTrace(); System.exit(0); } ParameterBlock params = new ParameterBlock(); params.add(stream); TIFFDecodeParam decodeParam = new TIFFDecodeParam(); decodeParam.setDecodePaletteAsShorts(true); RenderedOp image1 = JAI.create("tiff", params, null); int dataType = image1.getSampleModel().getDataType(); RenderedOp image2 = null; if (dataType == DataBuffer.TYPE_BYTE) { System.out.println("TIFF image is type byte."); image2 = image1; } else { System.out.println("TIFF image is type " + dataType + ", and will not be displayed."); System.exit(0); } int width = image2.getWidth(); int height = image2.getHeight(); ScrollingImagePanel panel = new ScrollingImagePanel(image2, width, height); Frame window = new Frame("Lookup Sample Program"); window.add(panel); window.pack(); window.show(); }}
mas oque eu preciso é converter essa imagem para o tipo binario dela, que seria byte[], para poder converter para outros formatos ou mesmo enviar os dados para o banco…Pelo oque eu achei na internet eu precisaria fazer alguma coisa com outputstream e depois esse objeto out.toArrayByte() eu acho… mas com a biblioteca JAI não estou conseguindo criar esse array de bytes…alguem ja fez isso alguma vez???
Grato