Tôi biết câu hỏi này khá cũ, nhưng khi phần mềm mới xuất hiện, sẽ giúp có được một số liên kết mới đến các dự án có thể thú vị cho mọi người.
imgscalr là thay đổi kích thước hình ảnh thuần Java (và các op đơn giản như đệm, cắt, xoay, làm sáng / làm mờ, v.v.) rất đơn giản để sử dụng - một lớp duy nhất bao gồm một tập hợp các hoạt động đồ họa đơn giản được định nghĩa là các phương thức tĩnh bạn vượt qua một hình ảnh và nhận lại một kết quả.
Ví dụ cơ bản nhất về việc sử dụng thư viện sẽ như thế này:
BufferedImage thumbnail = Scalr.resize(image, 150);
Và một cách sử dụng điển hình hơn để tạo hình thu nhỏ hình ảnh bằng cách sử dụng một vài điều chỉnh chất lượng và tương tự có thể trông như thế này:
import static org.imgscalr.Scalr.*;
public static BufferedImage createThumbnail(BufferedImage img) {
// Create quickly, then smooth and brighten it.
img = resize(img, Method.SPEED, 125, OP_ANTIALIAS, OP_BRIGHTER);
// Let's add a little border before we return result.
return pad(img, 4);
}
Tất cả các hoạt động xử lý hình ảnh đều sử dụng đường ống Java2D thô (được tăng tốc phần cứng trên các nền tảng chính) và sẽ không gây ra nỗi đau khi gọi ra thông qua JNI như tranh chấp thư viện trong mã của bạn.
imgscalr cũng đã được triển khai trong các sản phẩm quy mô lớn ở một vài nơi - việc bao gồm lớp AsyncScalr làm cho nó trở thành một trình duyệt hoàn hảo cho mọi xử lý hình ảnh phía máy chủ.
Có rất nhiều điều chỉnh về chất lượng hình ảnh mà bạn có thể sử dụng để đánh đổi giữa tốc độ và chất lượng với chế độ ULTRA_QUALITY cao nhất mang lại kết quả thu nhỏ trông tốt hơn so với triển khai Lancoz3 của GIMP.