나는 excel (xls, xlsx) 파일을 html로 변환 중입니다. 그러나 이미지가있을 때 엑셀 파일에있는 이미지 크기 (치수)를 얻을 수 없습니다. 나는 아파치 포이를 사용하고 있습니다. 해당 파일의 이미지 크기를 얻는 방법은 무엇입니까? 그걸 도와주세요.엑셀 파일을 읽을 때 그림 크기를 얻는 방법은 무엇입니까?
답변
이 소스는 엑셀 파일에서 그림 데이터를 얻는 방법을 설명합니다 : http://poi.apache.org/spreadsheet/quick-guide.html#Images.
는 루프 내에서
byte[] data = pict.getData();
당신은, 그 바이트 배열을 사용하십시오있는 ByteArrayOutputStream 객체에 작성하고 OutputStream에 기록 된 파일의 크기를 검색 할 크기() 메소드를 호출 할 수있다.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write(data);
int fileSizeInBytes = baos.size();
이 정보가 도움이되기를 바랍니다.
이것은 단지 이미지의 총 바이트 크기를 반환합니다. 치수를 얻으려면 이미지 유형을 알아 내고 바이트 배열에서 이미지 헤더를 디코딩해야합니다. –
오, 나는 그가 그림의 파일 크기가 아니라 크기를 알아 내려고 노력하고 있다고 생각했습니다. 내 사과. –
예 마이클 저는 그림의 차원을 얻으려고합니다. – Meastro
과도 할 수도 있지만 바이트 배열에서 이미지를 만들고 크기를 확인할 수 있습니다. 예 :
for (HSSFPictureData pic : workbook.getAllPictures()) {
InputStream in = new ByteArrayInputStream(pic.getData());
BufferedImage image = ImageIO.read(in);
System.out.println(image.getWidth() + ":" + image.getHeight());
}
어떤 크기를 원하십니까? 이미지 크기 (바이트)? 이미지의 네이티브 크기 (픽셀 단위)? 일부 단위로 Excel에 표시된 크기 조정? 다른 것? – Gagravarr