Java无法使用javax.imageio或Sanselan读取图像

时间:2016-11-03 12:12:31

标签: java image image-processing javax.imageio

我想阅读一个图像,使用awt和Apache Commons Imaging(以前称为Apache Commons Sanselan)进行扩展 我无法缩放图像,但我可以在浏览器中正确地看到它 jpg 没有任何问题。 使用

获取图像信息

Sanselan.getMetadata(fileData)

我收到此信息:

No Exif metadata.
Photoshop (IPTC) metadata:

代码

public static byte[] scale(byte[] fileData, int width, int height) {

        ByteArrayInputStream in = new ByteArrayInputStream(fileData);

        try {

            BufferedImage img = javax.imageio.ImageIO.read(in);

            ....

            return buffer.toByteArray();

        } catch (IOException e1) {

            System.out.println  ("e1 -> " + e1.getMessage());

            try {

                BufferedImage img = Sanselan.getBufferedImage(in);

            } catch (ImageReadException | IOException e2) {

                System.out.println  ("e2 -> " + e2.getMessage());
            }

        }

        return fileData;
    }

但我有例外:

e1 -> Unsupported Image Type
e2 -> Can't parse this format.

1 个答案:

答案 0 :(得分:1)

图像缩放可以在没有外部库的情况下完成。

Image img = ImageIO.read(URL);
Image scaledImg = img.getScaledInstance(IMG_WIDTH, IMG_HEIGHT, Image.SCALE_DEFAULT);

请参阅docs获取更多灵感。