在FineUploader插件比例中,如何定义高度和宽度而不是全宽度(最大宽度选项)

时间:2016-11-16 14:48:07

标签: fine-uploader

如何在缩放中设置高度和宽度,是否可以依赖于生成的图像(质量和专业比例生成)。

1 个答案:

答案 0 :(得分:0)

  

如何在缩放中设置高度和宽度

你做不到。为每个scaling.sizes entry指定maxSize,精细上传器将按比例缩放图像。

  

我可以依赖于生成的图像(质量

如果您仅依赖浏览器,质量将受到限制。有一个entire section in the documentation that explains how you can generate higher-quality resizes by integrating a third-party resize library。我还讨论了为什么你可能会或可能不想这样做。来自文档:

  

Fine Uploader的内部图像调整大小代码委托给drawImage   浏览器的本机CanvasRenderingContext2D对象上的方法。这个   object用于操作表示a的元素   提交的图像文件或Blob。大多数浏览器使用线性插值   调整图像大小时。这可能导致极端混叠和波纹   模式,这是任何人调整图像的交易破坏者   艺术/照片画廊,专辑等。这些文物是   事后不可能删除。

     

如果速度最重要,则精确缩放图像生成不是   最重要的是,你应该继续使用Fine Uploader的内部缩放   实现。但是,如果要生成更高质量的缩放   要上传的图片,您应该使用第三方库   调整提交的图像文件的大小,例如pica或limby-resize。作为   Fine Uploader的5.10版本,它非常容易集成   这个库的插件。事实上,Fine Uploader将继续   正确定位提交的图像文件,然后正确传递   大小适合您选择接收的图像缩放库   已调整大小的图像文件以及原始的全尺寸图像文件   吸引参考。唯一需要注意的是,由于   在iOS中扩展较大图像的问题,您可能需要继续   对该特定操作系统使用Fine Uploader的内部缩放算法,   正如其他第三方扩展库最有可能不包含的那样   处理这种复杂案例的逻辑。幸运的是,这很容易解释   同样。

     

例如,如果您愿意使用异食癖来产生更高质量的产品   缩放图像,只需将异食癖拉入您的项目,并贡献一个   scaling.customResizer函数,如下所示:

scaling: {
    customResizer: !qq.ios() && function(resizeInfo) {
        return new Promise(function(resolve, reject) {
            pica.resizeCanvas(resizeInfo.sourceCanvas, resizeInfo.targetCanvas, {}, resolve)
        })
    },
    ...
}