Javascript 使用libheif将Heic转换为jpg
我正在尝试使用libheif将.HEIC图像转换为.JPG libheif仅在客户端浏览器窗口上转换图像。因此,为了保存图像,我将图像转换为base64,然后执行ajax以使用文件内容保存图像Javascript 使用libheif将Heic转换为jpg,javascript,php,ajax,Javascript,Php,Ajax,我正在尝试使用libheif将.HEIC图像转换为.JPG libheif仅在客户端浏览器窗口上转换图像。因此,为了保存图像,我将图像转换为base64,然后执行ajax以使用文件内容保存图像 this.canvas.toBlob(function(blob) { var extension = FILE_EXTENSIONS[blob.type] || ".bin"; var basename = this.filename.replace(/\.[^/.]
this.canvas.toBlob(function(blob) {
var extension = FILE_EXTENSIONS[blob.type] || ".bin";
var basename = this.filename.replace(/\.[^/.]+$/, "");
if (navigator.msSaveOrOpenBlob) {
navigator.msSaveOrOpenBlob(blob, basename + extension);
return;
}
var readers = new FileReader();
var base64image;
readers.readAsDataURL(blob);
readers.onload = function () {
var base64image = readers.result; // data <-- in this var you have the file data in Base64 format
// console.log(base64image);
// call ajax
var formData = new FormData();
formData.append('filename', basename);
formData.append('avatar', readers.result);
$.ajax('upload.php', {
method: "POST",
data: formData,
processData: false,
contentType: false,
success: function (response) {
console.log(response);
},
error: function () {
}
});
};
return;
// this.downloads.appendChild(dlink);
// dlink.click();
// URL.revokeObjectURL(url);
}.bind(this), format);
this.canvas.toBlob(函数(blob){
变量扩展名=文件扩展名[blob.type]| |“.bin”;
var basename=this.filename.replace(/\.[^/]+$/,“”);
if(navigator.msSaveOrOpenBlob){
msSaveOrOpenBlob(blob,basename+扩展名);
返回;
}
var readers=newfilereader();
var-base64image;
readers.readAsDataURL(blob);
readers.onload=函数(){
var base64image=readers.result;//datalibheif
有一个C API,为什么您声称“libheif仅在客户端浏览器窗口上转换图像”?它使用libheif.js,我不知道libheif也有C API。-该库有一个C API,便于集成和广泛的语言支持。libheif
有一个C API,为什么您声称“libheif仅在客户端浏览器窗口上转换图像”?它使用libheif.js,我不知道libheif也有C API。-该库有C API,便于集成和广泛的语言支持。
(function() {
var demo = new HeifDemo(libheif);
<?php $img_array = array('demo/1.heic', 'demo/2.heic', 'demo/3.heic');
foreach ($img_array as $img) : ?>
function saveImage(subject, callback) {
demo.loadUrl(subject);
callback();
}
saveImage('<?php echo $img; ?>', function() {
// demo.saveImage();
setTimeout( function(){
demo.saveImage();
}, 2500 );
});
//});
<?php sleep(4); endforeach; ?> }).call();