2009-08-09 7 views
0

Ich habe ein int-Array mit Graustufen von 0-254, ich habe auch die x- und y-Größe des Bildes. Es ist eine einfache Sache, ein PGM-Bild zu erstellen, aber ich möchte es in einem JSP anzeigen, also muss ich es irgendwie in ein JPEG- oder PNG-Bild konvertieren. Wenn du Jai vorschlägst, sag mir bitte, in welchen Klassen du suchen sollst oder wie du es in Jai machen sollst. Vielen Dank im Voraus.java pgm 2 jpeg/png

Antwort

2

Vielleicht überspringen Sie das PGM vollständig?

int[] myImage = getGreyscaleIntArray(); 

BufferedImage im = new BufferedImage(width,height,BufferedImage.TYPE_BYTE_GRAY); 
WritableRaster raster = im.getRaster(); 
for(int h=0;h<height;h++) 
{ 
    for(int w=0;w<width;w++) 
    { 
     raster.setSample(w,h,0, myImage[h * width + w]); 
    } 
} 

ByteArrayOutputStream myJpg = new ByteArrayOutputStream(); 
javax.imageio.ImageIO.write(im, "jpg", myJpg); 

verwendet die JAI ImageIO api, speziell die ImageIO utility class

WriteableRaster Probe von the Java Image Processing cookbook

+0

Dies war das erste, worüber man nachdenken musste. Aber es funktioniert nicht. Versuchen Sie eine pgm-Datei zu lesen. ImageIO.read() gibt immer null zurück, wenn es im pgm-Format ist. – Red33mer

+0

danke, das ist es – Red33mer

0

ImageMagick funktioniert gut für die Umwandlung von Bildern und Jmagick stellt eine Schnittstelle direkt von Java-Programmen zu nennen.

+0

Ich müsste ImageMagick installieren. Ich möchte das nicht tun, da ich die App nicht auf einem Server mit Tomcat bereitstellen könnte. – Red33mer