2008-09-23 34 views
5

Tôi đọc tập tin hình ảnh trong Java sử dụngLàm thế nào để bạn đọc một hình ảnh trong Java khi Toolkit.getDefaultToolkit() ném AWTError?

java.awt.Image img = Toolkit.getDefaultToolkit().createImage(filePath); 

Trên một số hệ thống này không hoạt động, nó thay vì ném một AWTError phàn nàn về mặt trời/AWT/motif/MToolkit.

Bạn có thể tạo đối tượng java.awt.Image khác từ tệp hình ảnh bằng cách nào?

Trả lời

5

Tôi đã đọc hình ảnh bằng cách sử dụng ImageIO.

Image i = ImageIO.read(InputStream in); 

Javadoc cũng sẽ cung cấp thêm thông tin.

+0

yay! Mừng vì tôi có thể giúp. – jjnguy

1

Có một số phương pháp tĩnh trong ImageIO cho phép đọc hình ảnh từ các nguồn khác nhau. Điều thú vị nhất trong trường hợp của bạn là:

BufferedImage read(ImageInputStream stream) 
BufferedImage read(File input) 
BufferedImage read(InputStream input) 

Tôi đã kiểm tra bên trong mã. Nó sử dụng lớp trừu tượng ImageReader và có ba trình triển khai: JPEGReader. PNGReader và GIFReader. Các lớp này và BufferedImage không sử dụng bất kỳ phương thức gốc nào rõ ràng, vì vậy nó luôn luôn hoạt động.

Dường như AWTError bạn có là vì bạn đang chạy java trong cấu hình không đầu hoặc bộ công cụ cửa sổ có một số vấn đề. Nếu không nhìn vào lỗi cụ thể thì khó nói. Giải pháp này sẽ cho phép bạn đọc hình ảnh (có thể), nhưng tùy thuộc vào những gì bạn muốn làm với nó, AWTError có thể được ném sau khi bạn cố gắng để hiển thị nó.

0

Trên một số hệ thống thêm "-Djava.awt.headless = true" làm thông số java có thể giúp ích.

Các vấn đề liên quan