2012-07-14 4 views
1

나는 PC에 쓰고있는 응용 프로그램에 대한 눈으로 this phone app를 사용하고 있습니다. 웹캠 응용 프로그램을 사용하면 jpeg 형식의 인스턴트 샷을 다운로드 할 수 있습니다. 나는 그 장면의 이미지 프로세싱을 할 필요가 있고 그것을하기 위해서 원시 데이터 배열, 즉 이미지를 기술하는 픽셀의 행렬에 손을 넣고 싶다. 어떻게 할 수 있습니까?Java에서 jpeg 이미지의 원시 데이터를 쉽고 빠르게 얻을 수 있습니까?

답변

6

가장 쉬운 방법은

ImageIO.read(new File("Image.jpeg"))

BufferedImage를 얻기 위해하는 것입니다. BufferedImage을 사용하면 더 나은 성능을 위해 getRGB(int x, int y) 또는 getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)을 사용할 수 있습니다. 또한 getRaster()은 옵션으로, 가장 빠른 것으로 나타났습니다 (조금 더 노력했지만).

픽셀을 설정하는 경우 비슷한 setRGB 방법이 있습니다.

편집 : ImageIOjavax.​imageio.​ImageIO입니다.

0

아마도 가장 좋은 점은 이미지 형식 사양에 대한 몇 가지 단어를 읽는 것입니다. 데이터가 다른 형식으로 저장되는 방법을 설명해야합니다. 그 지식으로 당신이 정말 기분이 좋다면 당신은 파서를 쓸 수 있습니다.

하지만 이전에 생각해보십시오. jpeg는 픽셀의 래스터 매트릭스가 아니라 예를 들어 비트 맵 이미지입니다.

대부분 원시 데이터로 작업하는 대신 이미지 처리 라이브러리를 사용하게 될 것입니다. 이 방법은 훨씬 편리하고 오류가 발생하기 쉽습니다.

관련 문제