* Add missing close() on streams in ImageUtils.getImageDimension()
* Add some unit tests for CellReference git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1650070 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f912ecac92
commit
8997d8900d
@ -71,25 +71,30 @@ public class ImageUtils {
|
||||
try {
|
||||
//read the image using javax.imageio.*
|
||||
ImageInputStream iis = ImageIO.createImageInputStream( is );
|
||||
Iterator<ImageReader> i = ImageIO.getImageReaders( iis );
|
||||
ImageReader r = i.next();
|
||||
r.setInput( iis );
|
||||
BufferedImage img = r.read(0);
|
||||
try {
|
||||
Iterator<ImageReader> i = ImageIO.getImageReaders( iis );
|
||||
ImageReader r = i.next();
|
||||
try {
|
||||
r.setInput( iis );
|
||||
BufferedImage img = r.read(0);
|
||||
|
||||
int[] dpi = getResolution(r);
|
||||
int[] dpi = getResolution(r);
|
||||
|
||||
//if DPI is zero then assume standard 96 DPI
|
||||
//since cannot divide by zero
|
||||
if (dpi[0] == 0) dpi[0] = PIXEL_DPI;
|
||||
if (dpi[1] == 0) dpi[1] = PIXEL_DPI;
|
||||
//if DPI is zero then assume standard 96 DPI
|
||||
//since cannot divide by zero
|
||||
if (dpi[0] == 0) dpi[0] = PIXEL_DPI;
|
||||
if (dpi[1] == 0) dpi[1] = PIXEL_DPI;
|
||||
|
||||
size.width = img.getWidth()*PIXEL_DPI/dpi[0];
|
||||
size.height = img.getHeight()*PIXEL_DPI/dpi[1];
|
||||
size.width = img.getWidth()*PIXEL_DPI/dpi[0];
|
||||
size.height = img.getHeight()*PIXEL_DPI/dpi[1];
|
||||
} finally {
|
||||
r.dispose();
|
||||
}
|
||||
} finally {
|
||||
iis.close();
|
||||
}
|
||||
|
||||
r.dispose();
|
||||
iis.close();
|
||||
|
||||
} catch (IOException e){
|
||||
} catch (IOException e) {
|
||||
//silently return if ImageIO failed to read the image
|
||||
logger.log(POILogger.WARN, e);
|
||||
}
|
||||
|
@ -50,7 +50,6 @@ import org.apache.poi.ss.usermodel.*;
|
||||
import org.apache.poi.ss.util.AreaReference;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.poi.ss.util.CellReference;
|
||||
import org.apache.poi.ss.util.RegionUtil;
|
||||
import org.apache.poi.util.TempFile;
|
||||
import org.apache.poi.xssf.XLSBUnsupportedException;
|
||||
import org.apache.poi.xssf.XSSFITestDataProvider;
|
||||
|
@ -218,4 +218,34 @@ public final class TestCellReference extends TestCase {
|
||||
throw new AssertionFailedError("expected (c='" + colStr + "', r='" + rowStr + "' to be "
|
||||
+ (expResult ? "within" : "out of") + " bounds for version " + sv.name());
|
||||
}
|
||||
|
||||
public void testConvertColStringToIndex() {
|
||||
assertEquals(0, CellReference.convertColStringToIndex("A"));
|
||||
assertEquals(1, CellReference.convertColStringToIndex("B"));
|
||||
assertEquals(14, CellReference.convertColStringToIndex("O"));
|
||||
assertEquals(701, CellReference.convertColStringToIndex("ZZ"));
|
||||
assertEquals(18252, CellReference.convertColStringToIndex("ZZA"));
|
||||
|
||||
assertEquals(0, CellReference.convertColStringToIndex("$A"));
|
||||
assertEquals(1, CellReference.convertColStringToIndex("$B"));
|
||||
|
||||
try {
|
||||
CellReference.convertColStringToIndex("A$");
|
||||
fail("Should throw exception here");
|
||||
} catch (IllegalArgumentException e) {
|
||||
assertTrue(e.getMessage().contains("A$"));
|
||||
}
|
||||
}
|
||||
|
||||
public void testConvertNumColColString() {
|
||||
assertEquals("A", CellReference.convertNumToColString(0));
|
||||
assertEquals("AV", CellReference.convertNumToColString(47));
|
||||
assertEquals("AW", CellReference.convertNumToColString(48));
|
||||
assertEquals("BF", CellReference.convertNumToColString(57));
|
||||
|
||||
assertEquals("", CellReference.convertNumToColString(-1));
|
||||
assertEquals("", CellReference.convertNumToColString(Integer.MIN_VALUE));
|
||||
assertEquals("", CellReference.convertNumToColString(Integer.MAX_VALUE));
|
||||
assertEquals("FXSHRXW", CellReference.convertNumToColString(Integer.MAX_VALUE-1));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user