Bu sorunun oldukça eski olduğunu biliyorum, ancak yeni yazılım çıktıkça, insanlar için ilginç olabilecek projelere yeni bağlantılar elde etmeye yardımcı oluyor.
imgscalr , kullanımı oldukça basit olan saf Java görüntü yeniden boyutlandırma (ve dolgu, kırpma, döndürme, parlaklaştırma / karartma vb. gibi basit ops) kütüphanesidir - tek bir sınıf, tümü statik yöntemler olarak tanımlanan bir dizi basit grafik işleminden oluşur bir görüntü iletir ve bir sonuç elde edersiniz.
Kütüphaneyi kullanmanın en temel örneği şöyle görünecektir:
BufferedImage thumbnail = Scalr.resize(image, 150);
Ve birkaç kaliteli ince ayar ve benzeri kullanarak küçük resimler oluşturmak için daha tipik bir kullanım şöyle görünebilir:
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üm görüntü işleme işlemleri ham Java2D boru hattını (büyük platformlarda hızlandırılmış donanım) kullanır ve kodunuzdaki JNI gibi kitaplık çekişmesi yoluyla çağrı yapmanın acısını getirmez.
imgscalr, birkaç yerde büyük ölçekli üretimlerde de kullanıldı - AsyncScalr sınıfının dahil edilmesi, onu herhangi bir sunucu tarafı görüntü işleme için mükemmel bir bırakma haline getiriyor.
GIMP'nin Lancoz3 uygulamasından daha iyi görünen ölçekli bir sonuç sağlayan en yüksek ULTRA_QUALITY moduyla hız ve kalite arasında değiş tokuş yapmak için kullanabileceğiniz görüntü kalitesinde çok sayıda ince ayar var.