2009-08-09 4 views
0

나는 0-254의 그레이 스케일 값을 포함하는 int 배열을 가지고 있고, 또한 이미지의 x와 y 크기를 가지고있다. pgm 이미지를 만드는 것은 쉬운 일이지만 jsp에서 표시하고 싶습니다. 그래서 어떻게 든 jpeg 또는 png 이미지로 변환해야합니다. jai를 제안하는 경우, 보길 원하는 수업 또는 실제로 jai에서 수행하는 방법을 알려주십시오. 미리 감사드립니다.java pgm 2 jpeg/png

답변

2

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); 

은 이미지 변환 잘 the Java Image Processing cookbook

+0

이것은 처음으로 생각한 것입니다. 그러나 그것은 작동하지 않습니다. pgm 파일을 읽으십시오. ImageIO.read()는 pgm 형식 인 경우 항상 null을 반환합니다. – Red33mer

+0

고마워, 저것 – Red33mer

0

ImageMagick 작품에서 구체적 ImageIO utility class

WriteableRaster 샘플을 JAI ImageIO api 사용하고 Jmagick는 자바 프로그램에서 직접 호출하기위한 인터페이스를 제공한다.

+0

ImageMagick을 설치해야 할 것이다. 내가 바람둥이를 실행하는 서버에 응용 프로그램을 배포 할 수 없기 때문에 나는 그것을하고 싶지 않습니다. – Red33mer

관련 문제