Вопрос

У меня есть массив 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top