-
Bug
-
Resolution: Fixed
-
P3
-
8u311, 11.0.13, 17.0.1, 18, 19, 20
-
b02
-
b11
-
generic
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8303107 | 17.0.8-oracle | Jayathirth D V | P3 | Resolved | Fixed | b01 |
JDK-8306517 | 17.0.8 | Goetz Lindenmaier | P3 | Resolved | Fixed | b01 |
JDK-8303109 | 11.0.20-oracle | Jayathirth D V | P3 | Resolved | Fixed | b01 |
JDK-8306497 | 11.0.20 | Goetz Lindenmaier | P3 | Resolved | Fixed | b01 |
JDK-8303111 | 8u381 | Jayathirth D V | P3 | Resolved | Fixed | b01 |
Windows 10, Java 19.0.2
A DESCRIPTION OF THE PROBLEM :
A black and white BMP image from multiple TWAIN scanners throws this exception:
javax.imageio.IIOException: Invalid width/height for BI_RGB image data.
at java.desktop/com.sun.imageio.plugins.bmp.BMPImageReader.readHeader(BMPImageReader.java:621)
at java.desktop/com.sun.imageio.plugins.bmp.BMPImageReader.read(BMPImageReader.java:859)
at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1466)
at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1315)
at com.usdataworks.javaplay.ReadBmpFromTwainScanner.main(ReadBmpFromTwainScanner.java:14)
REGRESSION : Last worked in version 11
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the attached source code on a bitonal (1 bit per pixel) BMP images from a TWAIN scanner.
I can provide an image if needed.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
BMP image file is read into a BufferedImage.
ACTUAL -
This exception is thrown:
javax.imageio.IIOException: Invalid width/height for BI_RGB image data.
at java.desktop/com.sun.imageio.plugins.bmp.BMPImageReader.readHeader(BMPImageReader.java:621)
at java.desktop/com.sun.imageio.plugins.bmp.BMPImageReader.read(BMPImageReader.java:859)
at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1466)
at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1315)
at com.usdataworks.javaplay.ReadBmpFromTwainScanner.main(ReadBmpFromTwainScanner.java:14)
---------- BEGIN SOURCE ----------
package com.usdataworks.javaplay;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ReadBmpFromTwainScanner {
public static void main(String[] args) {
try {
File input = new File("The Scanner Image 1675710585648.bmp");
BufferedImage theImage = ImageIO.read(input);
System.out.println("theImage width=" + theImage.getWidth() + " height=" + theImage.getHeight());
} catch (IOException e) {
e.printStackTrace();
}
}
}
---------- END SOURCE ----------
FREQUENCY : always
- backported by
-
JDK-8303107 BMPImageReader throws an exception reading BMP images
-
- Resolved
-
-
JDK-8303109 BMPImageReader throws an exception reading BMP images
-
- Resolved
-
-
JDK-8303111 BMPImageReader throws an exception reading BMP images
-
- Resolved
-
-
JDK-8306497 BMPImageReader throws an exception reading BMP images
-
- Resolved
-
-
JDK-8306517 BMPImageReader throws an exception reading BMP images
-
- Resolved
-
- links to
-
Commit openjdk/jdk11u-dev/f2186fb2
-
Commit openjdk/jdk17u-dev/17f5448c
-
Commit openjdk/jdk/aa10f0d3
-
Review openjdk/jdk11u-dev/1836
-
Review openjdk/jdk17u-dev/1263
-
Review openjdk/jdk/12573