Tôi đang cố gắng gửi nhiều hình ảnh qua ổ cắm bằng java nhưng tôi cần một cách nhanh hơn để chuyển đổi hình ảnh thành mảng byte để tôi có thể gửi chúng. Tôi đã thử đoạn mã sau nhưng nó đã viết khoảng 10.000 hình ảnh vào ổ C: \ của tôi. Có cách nào để thực hiện chuyển đổi này mà không cần ghi vào đĩa không? Cảm ơn!Java- Chuyển đổi bufferedimage thành byte [] mà không cần ghi vào đĩa
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//ImageIO.setUseCache(false);
ImageIO.write(bi.getImage(), "jpg", outputStream);
byte[] imageBytes = outputStream.toByteArray();
Lưu ý rằng thêm một ít thời gian làm nén hình ảnh bằng cách sử dụng nén cao hơn (chất lượng thấp) JPEG có thể tiết kiệm rất nhiều thời gian mạng. Tôi nghĩ rằng bạn cần phải xem xét kích thước byte thực sự được gửi, mà sẽ lớn hơn đáng kể với một 'BufferedImage' thuần túy. BTW - nguồn gốc của những hình ảnh này là gì? Nếu đó là ảnh chụp màn hình ví dụ: thường PNG có thể cung cấp kích thước byte nhỏ hơn JPEG nén mặc định. Nếu đó là ảnh chụp màn hình liên tục, có lẽ ngay cả một luồng video. –
Nguồn là ảnh chụp màn hình liên tục mà tôi chủ yếu tạo thành một luồng. Nhưng có, tôi cần phải tìm ra cách để nén các hình ảnh mà không cần ghi chúng vào đĩa. Đó là mục tiêu tối thượng của tôi – tier1