簡體   English   中英

Java 無法使用 javax.imageio 或 Sanselan 讀取圖像

[英]Java can't read an image with javax.imageio or Sanselan

我想讀取圖像以使用 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.

無需外部庫即可完成圖像縮放。

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

請參閱 文檔以獲取更多靈感。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM