Java pgm 2 JPEG / PNG
Frage
Ich habe ein int array Graustufenwerte von 0 bis 254 enthält, i haben auch die X und Y-Größe des Bildes. Es ist eine einfache Sache, ein pgm Bild zu schaffen, aber ich will es in einer jsp angezeigt werden, so muß ich es irgendwie zu einem JPEG oder PNG-Bild konvertieren. Wenn Sie Jai vorschlagen, als sagen Sie mir bitte an, welche Klassen zu suchen, oder wie man tatsächlich tun es in Jai. Vielen Dank im Voraus.
Lösung
Vielleicht die PGM ganz überspringen?
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 das JAI ImageIO api , insbesondere die ImageIO Utility-Klasse
WriteableRaster Probe von dem Java-Bild Verarbeitung Kochbuch
Andere Tipps
ImageMagick funktioniert gut für Bilder und JMagick eine Schnittstelle von Java-Programme direkt aufrufen bereitstellt.