Tôi gặp vấn đề lạ, về cơ bản trong Java Graphics.drawImage() cực kỳ chậm trên một số máy tính và nhanh hơn trên các máy tính khác. Điều này không liên quan đến sức mạnh của máy tính, một số máy tính yếu hơn chạy nó tốt trong khi một số máy tính mạnh hơn dường như bị nghẹt thở ở cuộc gọi drawImage.Graphics.drawImage() trong Java cực kỳ chậm chạp trên một số máy tính nhưng nhanh hơn nhiều trên các máy khác
Nó có thể hoặc không liên quan đến chiều rộng và chiều cao, tôi có chiều rộng và chiều cao rất, rất lớn được xác định (khoảng 5000 x 2500). Tôi sẽ không nghĩ rằng đó là vấn đề ngoại trừ như tôi đã nói nó chạy trong thời gian thực tốc độ trên một số máy tính và chậm hơn trên những người khác và dường như không được gắn liền với sức mạnh tương đối của máy tính.
Cả hai máy tính đều có cùng phiên bản Java, cả hai đều sử dụng Vista. Một có 1.83ghz Core 2 Duo với RAM 1GB và đồ họa onboard (chạy mọi thứ tốt), bộ kia có bộ vi xử lý 2.53 ghz core 2 với 9600GS (driver nVidia mới nhất) và 4GB RAM và nó có nghĩa là chugs trên cuộc gọi drawImage.
Bất kỳ ý tưởng nào?
chỉnh sửa: ok điều này thực sự là khủng khiếp, tôi vẽ hình ảnh vào cửa sổ trong Swing, bây giờ khi tôi thay đổi kích thước cửa sổ và làm cho nó thực sự nhỏ hình ảnh được thu nhỏ quá và nó trở nên nhỏ. Đột nhiên tất cả mọi thứ diễn ra suôn sẻ, khi tôi mở rộng nó trở lại kích thước nó đã được trước khi nó vẫn chạy trơn tru!
Nó cũng có nhiều vấn đề về màn hình, nếu tôi thực hiện thủ thuật thay đổi kích thước để nó chạy nhanh hơn trên một màn hình, sau đó di chuyển sang màn hình khác khi hơn một nửa cửa sổ đang ở màn hình mới, nó bắt đầu chugging lại. Tôi phải thay đổi kích thước cửa sổ một lần nữa để nhỏ sau đó trở lại kích thước ban đầu của nó để lấy lại tốc độ.
Nếu tôi làm các trick thay đổi kích thước trên một màn hình, di chuyển nó qua cho người khác nó của chugs tất nhiên, nhưng nếu tôi trở lại nó trở lại màn hình ban đầu mà tôi đã làm các trick thay đổi kích thước nó hoạt động 100%
Nếu tôi có hai cửa sổ swing mở (hiển thị cùng một hình ảnh) cả hai đều chạy chậm, nhưng nếu tôi làm thủ thuật thay đổi kích thước trên một cửa sổ cả hai đều bắt đầu chạy trơn tru (tuy nhiên điều này không phải luôn luôn như vậy).
* khi tôi nói thay đổi kích thước cửa sổ, tôi có nghĩa là làm cho nó càng nhỏ càng tốt đến điểm hình ảnh không thể thực sự được nhìn thấy.
Đây có phải là lỗi trong Java không?
Những loại hình ảnh là nó, và những gì phiên bản của JDK là trên các máy tính? –
Tôi nghĩ rằng tôi thấy cùng một vấn đề.Đây là JDK 8 trên XP (vâng tôi biết) và màn hình Hi-Color. Phải mất một vài giây để render BufferedImage chứa một ảnh toàn màn hình - nhưng chỉ có lần thứ hai (!) Thành phần được vẽ. Các cuộc gọi tiếp theo để drawImage là ngay lập tức một lần nữa. Có thể một số chuyển đổi diễn ra trong nội bộ? Khá khó hiểu tất cả trong tất cả, và không thực sự chấp nhận được rằng một chuyển đổi màu sắc đơn giản mất nhiều thời gian (nếu đó là lý do). –