ฉันรู้ว่าคำถามนี้ค่อนข้างเก่า แต่เมื่อมีซอฟต์แวร์ใหม่ออกมามันจะช่วยให้ได้รับลิงค์ใหม่ไปยังโครงการที่น่าสนใจสำหรับคนทั่วไป
imgscalrเป็นภาพบริสุทธิ์ Java ปรับขนาด (และปฏิบัติการง่ายๆเช่น padding, การปลูกพืช, หมุน, ปรับความสว่าง / มืดลง ฯลฯ ) ห้องสมุดที่เป็นความเจ็บปวดที่ง่ายต่อการใช้ - ชั้นเดียวประกอบด้วยชุดของการดำเนินงานกราฟิกง่ายที่กำหนดไว้ทั้งหมดเป็นแบบคงที่วิธีการที่ คุณส่งภาพและรับผลลัพธ์กลับมา
ตัวอย่างพื้นฐานที่สุดของการใช้ไลบรารีจะมีลักษณะเช่นนี้:
BufferedImage thumbnail = Scalr.resize(image, 150);
และการใช้งานทั่วไปมากขึ้นเพื่อสร้างภาพขนาดย่อของภาพโดยใช้การปรับแต่งคุณภาพเล็กน้อยและสิ่งที่คล้ายกันอาจมีลักษณะเช่นนี้:
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);
}
การประมวลผลภาพทั้งหมดใช้ขั้นตอนการดิบ Java2D (ซึ่งเป็นฮาร์ดแวร์ที่เร่งความเร็วบนแพลตฟอร์มหลัก) และจะไม่แนะนำความเจ็บปวดของการโทรออกผ่าน JNI เช่นการแย่งห้องสมุดในรหัสของคุณ
imgscalr ยังได้รับการปรับใช้ในการผลิตขนาดใหญ่ในไม่กี่แห่ง - การรวมคลาส AsyncScalr ทำให้การดรอปอินสมบูรณ์แบบสำหรับการประมวลผลภาพด้านเซิร์ฟเวอร์
มีการปรับแต่งคุณภาพของภาพมากมายที่คุณสามารถใช้เพื่อแลกเปลี่ยนระหว่างความเร็วและคุณภาพด้วยโหมด ULTRA_QUALITY ที่สูงที่สุดให้ผลลัพธ์ที่ปรับขนาดได้ซึ่งดูดีกว่าการใช้งาน Lancoz3 ของ GIMP