Вопрос
У меня есть массив int, содержащий значения шкалы серого от 0 до 254, у меня также есть размер изображения x и y.Создать изображение в формате pgm несложно, но я хочу отобразить его в формате jsp, поэтому мне нужно каким-то образом преобразовать его в изображение в формате jpeg или png.Если вы предлагаете jai, пожалуйста, скажите мне, на какие классы обратить внимание или как на самом деле это сделать в 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
Записываемый образец из кулинарная книга по обработке изображений Java
Другие советы
Магия изображений хорошо работает для преобразования изображений и Джмагик предоставляет интерфейс для вызова непосредственно из программ Java.