2012-03-01 36 views
7

Tôi muốn tải hình ảnh GIF từ mạng nhưng tôi thấy rằng nếu tôi tải xuống toàn bộ hình ảnh GIF, nó sẽ gây ra nhiều lưu lượng mạng.Nhận khung hình đầu tiên của hình ảnh GIF mà không cần tải xuống tất cả các khung khác

Tôi chỉ có thể nhận được khung hình ảnh GIF đầu tiên mà không cần tải xuống tất cả các khung hình khác không?

+0

Tôi rất muốn biết lý do bỏ phiếu xuống một câu hỏi hoàn toàn hợp lệ. –

+0

Sử dụng thư viện từ liên kết này: https://github.com/dragon66/icafe, nó sẽ dễ dàng như một cuộc gọi đường truyền: ImageIO.getReader (ImageType.GIF) .getFrameAsBufferedImage (InputStream là) hoặc ImageIO.getReader (ImageType. GIF) .read (InputStream là). Kiểu trả về sẽ là một Java BufferedImage. – dragon66

Trả lời

0

Vâng, tôi đã không tìm thấy sẵn sàng để sử dụng giải pháp, nhưng bạn có thể làm theo cách này (nó sẽ dẫn đến một số thủ thuật "cấp thấp"):

Sau wiki about GIFs, các file gif động có thể được chia thành các khung và cuối khung có thể dễ dàng nhận ra. Vì vậy, bạn sẽ cần phải đọc tiêu đề GIF, thông tin màn hình, thông tin về hoạt hình vào bộ đệm, tải xuống khung hình đầu tiên và nối thêm thông tin như GIF được kết thúc ("3B" theo bài viết wiki). Và, nếu bạn sao chép dữ liệu này vào bộ chia riêng biệt, bạn sẽ có thể tiếp tục tải xuống toàn bộ tệp mà không cần tải lại khung hình đầu tiên.

Ngoài ra, bạn có thể chỉnh sửa thông tin tiêu đề để định dạng khung hình đầu tiên thành gif tĩnh.

+0

cảm ơn rất nhiều. Tôi đang làm đây. – ctsu

+0

hi mọi cập nhật về điều này –

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