2014-11-21 4 views
0

나는 원시 비트 맵 데이터를 받아들이는 GetInstance() 변형 사용할 필요가 :Image.GetInstance()로 고유 한 이미지를 만드는 방법은 무엇입니까?

Image.GetInstance(int width, int height, int components, int bpc, byte[] data); 

를하지만 반복적으로 호출하는 경우, 비트 맵 데이터가 실제로 다른 경우에도, 나는 첫 번째 인스턴스 다시 대신 새로운 하나를 얻을. 예를 들어, 경로 기반 고정 이미지는 매우 좋은 기능이지만, 즉석 이미지 생성에는 적합하지 않습니다. 매번 새로운 비트 맵을 보장하려면 어떻게해야합니까?

버전 5.5.3.

답변

1

예를 들어 RawImages을 살펴보십시오. 당신이 볼 수 있듯이, 각각의 이미지가 하나 개의 픽셀이 정확히

Image gray = Image.getInstance(1, 1, 1, 8, new byte[] { (byte)0x80 }); 
gray.scaleAbsolute(30, 30); 
Image red = Image.getInstance(1, 1, 3, 8, new byte[] { (byte)255, (byte)0, (byte)0 }); 
red.scaleAbsolute(30, 30); 
Image green = Image.getInstance(1, 1, 3, 8, new byte[] { (byte)0, (byte)255, (byte)0 }); 
green.scaleAbsolute(30, 30); 
Image blue = Image.getInstance(1, 1, 3, 8, new byte[] { (byte)0, (byte)0, (byte)255, }); 
blue.scaleAbsolute(30, 30); 
Image cyan = Image.getInstance(1, 1, 4, 8, new byte[] { (byte)255, (byte)0, (byte)0, (byte)0 }); 
cyan.scaleAbsolute(30, 30); 
Image magenta = Image.getInstance(1, 1, 4, 8, new byte[] { (byte)0, (byte)255, (byte)0, (byte)0 }); 
magenta.scaleAbsolute(30, 30); 
Image yellow = Image.getInstance(1, 1, 4, 8, new byte[] { (byte)0, (byte)0, (byte)255, (byte)0 }); 
yellow.scaleAbsolute(30, 30); 
Image black = Image.getInstance(1, 1, 4, 8, new byte[] { (byte)0, (byte)0, (byte)0, (byte)255 }); 
black.scaleAbsolute(30, 30); 

:이 예제에서, 나는 당신이 언급하는 방법, 색 공간 CMYK 색 공간 회색 하나, 색 공간 RGB에서 셋, 넷을 사용하여 8 개 이미지를 만들 크기가 같고 회색, 빨강, 초록, 파랑, 녹청, 자홍, 노랑 및 검정의 픽셀을 얻을 수 있도록 다른 byte[] 값을 선택했습니다. 또한이 이미지를 더 큰 크기로 확대합니다 (그렇지 않으면 볼 수 없을 것입니다).

지금 나는이 같은 이미지를 추가 :

document.add(gray); 
document.add(red); 
document.add(green); 
document.add(blue); 
document.add(cyan); 
document.add(magenta); 
document.add(yellow); 
document.add(black); 
document.close(); 

결과는 당신이 당신의 질문에 주장 것과 일치하지 않습니다 raw_images.pdf

enter image description here

코드에서 다른 오류가 있어야합니다 하지만 코드를 공유하지 않으므로 아무도 질문에 답변 할 수 없습니다.

+0

예, 수정되었습니다. 나는이 이미지들을 부드러운 마스크로 사용했는데 원본 이미지가 복제되었고 온 - 더 - 플라이 생성 된 마스크 자체가 아니라 동일한 마스크를 강제로 많이 찾은 후에 밝혀졌습니다. Mea culpa and thanks ... .-) –