Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用libheif将Heic转换为jpg_Javascript_Php_Ajax - Fatal编程技术网

Javascript 使用libheif将Heic转换为jpg

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(/\.[^/.]

我正在尝试使用libheif将.HEIC图像转换为.JPG

libheif仅在客户端浏览器窗口上转换图像。因此,为了保存图像,我将图像转换为base64,然后执行ajax以使用文件内容保存图像

 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;//data
libheif
有一个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();