Javascript ve bir tuval öğesi kullanarak istemci tarafında bir küçük resim oluşturmaya çalışıyorum, ancak görüntüyü küçültmek, korkunç görünüyor. Bicubic yerine 'En Yakın Komşu' olarak ayarlanmış yeniden örnekleme ile photoshop'ta küçültülmüş gibi görünüyor. Bunun doğru görünmesini sağlamanın mümkün olduğunu biliyorum, çünkü bu site bir tuval kullanarak da iyi yapabilir. "[Kaynak]" bağlantısında gösterildiği gibi yaptıkları aynı kodu kullanarak denedim, ama yine de korkunç görünüyor. Eksik olduğum, ayarlanması gereken bir ayar veya başka bir şey var mı?
DÜZENLE:
Bir jpg boyutunu değiştirmeye çalışıyorum. Bağlantılı sitede ve photoshop aynı jpg yeniden boyutlandırma denedim ve küçültüldüğünde iyi görünüyor.
İlgili kod:
reader.onloadend = function(e)
{
var img = new Image();
var ctx = canvas.getContext("2d");
var canvasCopy = document.createElement("canvas");
var copyContext = canvasCopy.getContext("2d");
img.onload = function()
{
var ratio = 1;
if(img.width > maxWidth)
ratio = maxWidth / img.width;
else if(img.height > maxHeight)
ratio = maxHeight / img.height;
canvasCopy.width = img.width;
canvasCopy.height = img.height;
copyContext.drawImage(img, 0, 0);
canvas.width = img.width * ratio;
canvas.height = img.height * ratio;
ctx.drawImage(canvasCopy, 0, 0, canvasCopy.width, canvasCopy.height, 0, 0, canvas.width, canvas.height);
};
img.src = reader.result;
}
EDIT2:
Yanılmışım gibi görünüyor, bağlantılı web sitesi görüntüyü küçültme işini daha iyi yapmıyordu. Önerilen diğer yöntemleri denedim ve hiçbiri daha iyi görünmüyor. Farklı yöntemlerin ortaya çıkardığı şey budur:
Photoshop:
Tuval:
Görüntü işleme özelliğine sahip görüntü: optimizeQuality seti ve genişliği / yüksekliği ile ölçeklendirme:
Görüntü işleme özellikli görüntü: optimizeMuality seti ve -moz-transform ile ölçeklendirilir:
Tuval piksel boyutunda yeniden boyutlandır:
Sanırım bu, firefox'un sözde olduğu gibi bikubik örnekleme kullanmadığı anlamına geliyor. Sadece ekleyene kadar beklemem gerekecek.
EDIT3: