我有一个包含 0-254 灰度值的 int 数组,我还有图像的 x 和 y 大小。创建 pgm 图像是一件容易的事情,但我想在 jsp 中显示它,所以我需要以某种方式将其转换为 jpeg 或 png 图像。 如果您建议 jai,请告诉我要查看哪些类(class),或者如何在 jai 中实际进行操作。 非常感谢,提前。
最佳答案
也许完全跳过 PGM?
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);
使用JAI ImageIO api ,特别是 ImageIO utility class
WriteableRaster 示例来自 the Java Image Processing cookbook
关于java pgm 2 jpeg/png,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1251329/