비트 맵을 병합하는 방법을 많이 찾았습니다. 이제는 똑같은 것을 시도하고 있지만, 전에 보았던 모든 시도처럼 Android jars가 없기 때문입니다.표준 Java로 비트 맵을 병합하십시오.
나는 128 * 128 픽셀의 16 비트 이미지를 가지고 있습니다.
필자가 수직으로 병합해야하는 이유는 완전히 검은 색 bmp 128x128 * 16입니다 ... 작동하지 않습니다. 여기
BufferedImage[] input = new BufferedImage[16];
int counter = 0;
for(File f: new File(fixBmpPathFolder).listFiles()){
System.out.println(f.getAbsolutePath() + " loaded!");
int type = BufferedImage.TYPE_BYTE_BINARY;
input[counter] = new BufferedImage(ImageIO.read(f).getWidth(null), ImageIO.read(f).getHeight(null), type);
counter++;
}
mergeAndSave(input);
그리고 mergeAndSave 방법 :
128 개 * 128 픽셀 타일이 BufferedImage의 배열에있는 모든 BMPS 읽기 :
이
내가 지금까지 한 일이다public static void mergeAndSave(BufferedImage input[]) throws IOException {
BufferedImage bimage = new BufferedImage(128, 128*input.length, BufferedImage.TYPE_BYTE_BINARY);
Graphics g = bimage.createGraphics();
int y = 0;
for (int i = 0; i < input.length; i++) { //replaced by input.length
g.drawImage(input[i],0,y,null);
y += 128;
}
g.dispose();
ImageIO.write(bimage, "BMP", new FileOutputStream(getFileResultAbsoluteName()));
}
이제는 png에 대해 비슷한 시도를했습니다. 일부 연구에서는 bmps에서도 작동 할 수 있음을 알게되었습니다. 버퍼링 된 형식의 정수 열거 형을 올바르게 설정 한 것입니다. 결과 이미지.
나는이 코드를 하나의 bmp로 실행 했으므로 다른 곳에서 읽고 저장하면됩니다.
내 필요에 따라 파일은 바이너리 형식이어야합니다.
감사합니다.
편집 : 죄송합니다 얘들 아, 나는 싱글 루프에서 마지막 실험 값을 떠나지 만 이미지의 완전한 루프를 사용하여 분명히 노력했습니다. 이제이 코드가 환상적이지는 않다는 것을 알았지 만 목표를 달성하는 것은 간단한 흠집입니다. 이들을 수직으로 병합한다는 것은 동일한 크기 (128 * 128)의 16 비트 맵을 얻었으며 결과 비트 맵을 얻고 싶습니다. 시작 비트 16이 합쳐져서 서로 겹치는 부분이됩니다.
그래서 질문은 무엇입니까?) – Divers
* 수직으로 병합하는 것은 무엇을 의미합니까? –