BufferedImage img = r.read(0);
int[] dpi = getResolution(r);
+
+ //if DPI is zero then assume standard 96 DPI
+ //since cannot divide by zero
+ if (dpi[0] == 0) dpi[0] = 96;
+ if (dpi[1] == 0) dpi[1] = 96;
+
size.width = img.getWidth()*96/dpi[0];
size.height = img.getHeight()*96/dpi[1];
assertEquals(848, anchor1.getDx2());\r
assertEquals(240, anchor1.getDy2());\r
}\r
+\r
+ /**\r
+ * Bug # 45829 reported ArithmeticException (/ by zero) when resizing png with zero DPI.\r
+ */\r
+ public void test45829() {\r
+ HSSFWorkbook wb = new HSSFWorkbook();\r
+ HSSFSheet sh1 = wb.createSheet();\r
+ HSSFPatriarch p1 = sh1.createDrawingPatriarch();\r
+\r
+ byte[] pictureData = HSSFTestDataSamples.getTestDataFileContent("45829.png");\r
+ int idx1 = wb.addPicture( pictureData, HSSFWorkbook.PICTURE_TYPE_PNG );\r
+ HSSFPicture pic = p1.createPicture(new HSSFClientAnchor(), idx1);\r
+ pic.resize();\r
+ }\r
}\r