Saya mencoba membuat gambar mini di sisi klien menggunakan javascript dan elemen kanvas, tetapi ketika saya mengecilkan gambar, itu tampak mengerikan. Sepertinya itu dirampingkan di photoshop dengan resampling diatur ke 'Nearest Neighbor' alih-alih Bicubic. Saya tahu ini mungkin untuk membuat ini terlihat benar, karena situs ini dapat melakukannya dengan baik menggunakan kanvas juga. Saya sudah mencoba menggunakan kode yang sama seperti yang ditunjukkan pada tautan "[Sumber]", tetapi masih terlihat mengerikan. Apakah ada sesuatu yang saya lewatkan, beberapa pengaturan yang perlu diatur atau sesuatu?
EDIT:
Saya mencoba mengubah ukuran jpg. Saya telah mencoba mengubah ukuran jpg yang sama di situs yang ditautkan dan di photoshop, dan itu terlihat baik-baik saja ketika dirampingkan.
Ini kode yang relevan:
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:
Sepertinya saya salah, situs web tertaut tidak melakukan pekerjaan yang lebih baik dari perampingan gambar. Saya mencoba metode lain yang disarankan dan tidak ada yang terlihat lebih baik. Inilah yang menghasilkan berbagai metode:
Photoshop:
Kanvas:
Gambar dengan rendering gambar: optimalkan set kualitas dan diskalakan dengan lebar / tinggi:
Gambar dengan rendering gambar: optimalkan set kualitas dan diskalakan dengan -moz-transform:
Ubah ukuran kanvas di pixastic:
Saya kira ini berarti firefox tidak menggunakan pengambilan sampel bikubik seperti yang seharusnya. Saya hanya harus menunggu sampai mereka benar-benar menambahkannya.
EDIT3: