FineUploader 按一维缩放缩略图(即 maxHeight 或 maxWidth 而不是 maxSize)
FineUploader scale thumbnails by one dimension (i.e. maxHeight or maxWidth rather than maxSize)
库采用 maxSize
缩放参数,适用于两个维度中最长的一个。似乎通过一维缩放的变通解决方案是通过计算 maxSize
应该基于原始内容的内容,在 onSubmitted
回调中手动 运行 scaleImage()
图像大小以获得所需高度或宽度的结果,但这有其自身的障碍:
在 onSubmitted
回调中使用 addFiles()
会触发另一个 onSubmitted
事件是有道理的;但是如果我使用 addFiles()
添加缩略图,缩略图会出现在 UI 列表中,这会触发另一个 onSubmitted
导致生成另一个缩略图,它会一直循环。
我需要生成一个重新训练的缩略图(最大高度为 240 像素,最大宽度为 320 像素)并在调用 uploadStoredFiles()
时将缩略图上传到单独的 S3 存储桶,而不触发另一个 onSubmitted
事件并且不将缩略图显示为 UI 文件列表中的 "duplicate" 条目。在 Fine-Uploader 中执行此操作的最佳方法是什么?
一些示例代码:
function makeThumbnail() {
// FIXME to avoid duplicate, put this in the compression success
var thumbnailPromise = uploader.scaleImage(id, {
maxSize: 123,
quality: 45,
customResizer: !qq.ios() && function (resizeInfo) {
return new Promise(function (resolve, reject) {
pica.resizeCanvas(resizeInfo.sourceCanvas, resizeInfo.targetCanvas, {}, resolve)
});
}
});
thumbnailPromise.then(
function (blob) {
console.log(URL.createObjectURL(blob));
uploader.addFiles(blob);
},
function (err) {
}
);
}
在将缩放的 Blob
传递到 addFiles
之前,只需将自定义 属性 添加到 Blob
对象,例如 blob.myScaledImage = true
。然后,在处理 onSubmitted
回调时,使用 getFile
API method 检索关联的 Blob
。如果 Blob
包含您的自定义 属性,请不要重新缩放它。
库采用 maxSize
缩放参数,适用于两个维度中最长的一个。似乎通过一维缩放的变通解决方案是通过计算 maxSize
应该基于原始内容的内容,在 onSubmitted
回调中手动 运行 scaleImage()
图像大小以获得所需高度或宽度的结果,但这有其自身的障碍:
在 onSubmitted
回调中使用 addFiles()
会触发另一个 onSubmitted
事件是有道理的;但是如果我使用 addFiles()
添加缩略图,缩略图会出现在 UI 列表中,这会触发另一个 onSubmitted
导致生成另一个缩略图,它会一直循环。
我需要生成一个重新训练的缩略图(最大高度为 240 像素,最大宽度为 320 像素)并在调用 uploadStoredFiles()
时将缩略图上传到单独的 S3 存储桶,而不触发另一个 onSubmitted
事件并且不将缩略图显示为 UI 文件列表中的 "duplicate" 条目。在 Fine-Uploader 中执行此操作的最佳方法是什么?
一些示例代码:
function makeThumbnail() {
// FIXME to avoid duplicate, put this in the compression success
var thumbnailPromise = uploader.scaleImage(id, {
maxSize: 123,
quality: 45,
customResizer: !qq.ios() && function (resizeInfo) {
return new Promise(function (resolve, reject) {
pica.resizeCanvas(resizeInfo.sourceCanvas, resizeInfo.targetCanvas, {}, resolve)
});
}
});
thumbnailPromise.then(
function (blob) {
console.log(URL.createObjectURL(blob));
uploader.addFiles(blob);
},
function (err) {
}
);
}
在将缩放的 Blob
传递到 addFiles
之前,只需将自定义 属性 添加到 Blob
对象,例如 blob.myScaledImage = true
。然后,在处理 onSubmitted
回调时,使用 getFile
API method 检索关联的 Blob
。如果 Blob
包含您的自定义 属性,请不要重新缩放它。