javascript裁剪(croppie)图像质量差
我正在尝试使用Croppie在上传到服务器之前用Javascript裁剪图像。它工作得很好,用户界面也很好。然而,在玩演示时,我注意到结果图像的质量比原始图像差得多——我使用的是1920x1080图像 有解决办法吗javascript裁剪(croppie)图像质量差,javascript,canvas,Javascript,Canvas,我正在尝试使用Croppie在上传到服务器之前用Javascript裁剪图像。它工作得很好,用户界面也很好。然而,在玩演示时,我注意到结果图像的质量比原始图像差得多——我使用的是1920x1080图像 有解决办法吗 我也会接受其他库的建议:)如果您正在缩放或旋转图像,可能会出现一些退化,这是不可避免的 但是如果你只是从原始图像中裁剪一块 默认情况下,将以视口大小保存裁剪后的图像 对于较大的1920x1080图像,视口大小(可能)小于原始图像大小,因此Croppie会降低导出图像的像素密度。像素越
我也会接受其他库的建议:)如果您正在缩放或旋转图像,可能会出现一些退化,这是不可避免的 但是如果你只是从原始图像中裁剪一块 默认情况下,将以视口大小保存裁剪后的图像 对于较大的1920x1080图像,视口大小(可能)小于原始图像大小,因此Croppie会降低导出图像的像素密度。像素越少=质量越差 修复方法是使用Croppie的方法以原始(更大)大小保存裁剪后的图像:
为我工作
另外,该库非常酷,但需要重写。默认情况下,使用视口大小裁剪,以减少生成图像的像素。 有两种方法可以解决这个问题
var imageSize = {
width: 900,
height: 900,
type: 'square'
};
并将此结果用于裁剪结果
$uploadCrop.croppie('result', {
type: "canvas",
size: imageSize,
format: "png",
quality: 1
}).then(function (resp) { )};
$uploadCrop.croppie('result', {
type: "canvas",
size: "original",
format: "png",
quality: 1
}).then(function (resp) { )};
您可以调整画布输出的质量,但不确定crappie是否允许。。。每次压缩jpeg时都会有一些损失,尽管每次100%不会损失太多…嘿,如果我必须将图像保存在原始尺寸中,那么裁剪图像有什么意义?@ITSagar您也可以将“原始”替换为{宽度:960,高度:540}或任何您想要的尺寸
$uploadCrop.croppie('result', {
type: "canvas",
size: imageSize,
format: "png",
quality: 1
}).then(function (resp) { )};
$uploadCrop.croppie('result', {
type: "canvas",
size: "original",
format: "png",
quality: 1
}).then(function (resp) { )};