You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tika.apache.org by "Hendy Irawan (JIRA)" <ji...@apache.org> on 2015/06/30 16:48:04 UTC
[jira] [Created] (TIKA-1670) Metadata.IMAGE_WIDTH and
Metadata.IMAGE_LENGTH is not given for PNG files.
Hendy Irawan created TIKA-1670:
----------------------------------
Summary: Metadata.IMAGE_WIDTH and Metadata.IMAGE_LENGTH is not given for PNG files.
Key: TIKA-1670
URL: https://issues.apache.org/jira/browse/TIKA-1670
Project: Tika
Issue Type: Bug
Components: parser
Affects Versions: 1.9
Environment: Linux Mint 17.1 KDE 64bit, Oracle Java 8
Reporter: Hendy Irawan
Metadata.IMAGE_WIDTH and Metadata.IMAGE_LENGTH is not given for PNG files.
{noformat}
21:40:16.057 [main] DEBUG com.hendyirawan.AppTest - Image image/png metadata:
21:40:16.301 [main] INFO com.hendyirawan.AppTest - ImageIO returns: 600×844
java.lang.AssertionError:
Expected :600
Actual :null
<Click to see difference>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:834)
at org.junit.Assert.assertEquals(Assert.java:118)
at org.junit.Assert.assertEquals(Assert.java:144)
at com.hendyirawan.AppTest.parsePng(AppTest.java:47)
{noformat}
Test case: https://github.com/ceefour/tika-png-bug
{code:java}
@Test
public void parsePng() throws IOException, TikaException, SAXException {
final byte[] origImage = FileUtils.readFileToByteArray(new File("festival-anak-bertanya-2015_o.png"));
final String contentType = "image/png";
final Metadata metadata = new Metadata();
final Parser parser = new ImageParser();
final ParseContext parseContext = new ParseContext();
final DefaultHandler handler = new DefaultHandler();
try (final ByteArrayInputStream stream = new ByteArrayInputStream(origImage)) {
parser.parse(stream, handler, metadata, parseContext);
log.debug("Image {} metadata: {}", contentType, metadata);
stream.reset();
final BufferedImage image = ImageIO.read(stream);
final int imageIoWidth = image.getWidth();
final int imageIoHeight = image.getHeight();
log.info("ImageIO returns: {}×{}", imageIoWidth, imageIoHeight);
Assert.assertEquals((Integer) imageIoWidth, metadata.getInt(Metadata.IMAGE_WIDTH));
Assert.assertEquals((Integer) imageIoHeight, metadata.getInt(Metadata.IMAGE_LENGTH));
}
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)