2013-07-02 69 views
-2

我想在我的函數中獲取exif方向變量,但我可以將它抓到另一個函數...我怎麼能得到它(var orientat) ?如何從javascript中的其他函數調用var

$(function() { 
     $('#takePictureField').change(function(e) { 
      $("#canvas_captimg").show(); 
      $("#imgcaptmobile").empty(); 
      $("#imgcaptmobile").hide(); 

      var file = e.target.files[0], 
       imageType = /image.*/; 

      if (!file.type.match(imageType)) 
       return; 
        var fr = new FileReader(); 
        fr.onload = function() { 
       var exif = EXIF.readFromBinaryFile(new BinaryFile(this.result)); 
        // console.log(exif.Orientation); 
        var orientat = exif.Orientation; 
       }; 
       fr.readAsBinaryString(file); 

      var reader = new FileReader(); 
      reader.onloadend = fileOnload; 
      reader.readAsDataURL(file); 
     }); 

     function fileOnload(e) { 
      var $img = $('<img>', { src: e.target.result }); 
      var canvas = $('#canvas_captimg')[0]; 
      var context = canvas.getContext('2d'); 

      $img.load(function() { 
       var MAX_WIDTH = 487; 
        var MAX_HEIGHT = 1800; 
        var width = this.width; 
        var height = this.height; 

        var moit_width_2 = 0; 
        var moit_height_2 = 0; 
console.log(orientat); 
        if (orientat > 1) { 
        if (orientat == 3 || orientat == 4) { 
         var rotation = 180; 
        } 
        if (orientat == 6 || orientat == 5) { 
         var rotation = 90; 
        } 
        if (orientat == 8 || orientat == 7) { 
         var rotation = 270; 
        } 
        var moit_width = width/2; 
         var moit_height = height/2; 
         var moit_width_2 = 0 - moit_width; 
         var moit_height_2 = 0 - moit_height; 

         context.translate(moit_width, moit_height); 
          context.rotate(rotation * Math.PI/180); 
        } 

        if (width > height) { 
        if (width > MAX_WIDTH) { 
         height *= MAX_WIDTH/width; 
         width = MAX_WIDTH; 
        } 
        } else { 
        if (height > MAX_HEIGHT) { 
         width *= MAX_HEIGHT/height; 
         height = MAX_HEIGHT; 
        } 
        } 

       context.drawImage(this, moit_width_2, moit_height_2, width, height); 
       $("#imgcaptmobile").append('<img id="imagecaptmobile" src="' + canvas.toDataURL("image/png") + '" style="display:hidden">'); 
      }); 
     } 
     }); 
+0

爲什麼不把它推向全球? – Anubhab

回答

1

你應該檢查出的答案 - What is the scope of variables in JavaScript?如何變量的作用域在JavaScript中的作品,以獲得您所要求的東西有所瞭解。

要回答您的問題,請創建變量global或將其作爲參數傳遞給該函數。

爲了讓全球的請嘗試以下操作:

在開始添加以下行。

var orientat; 

更新分配給

orientat = exif.Orientation; 
+0

多數民衆贊成多說,我在評論中提到:) – Anubhab

+0

是的,事實上,我已經做到了,但我更新變量「var orient = ....」現在我把「東方=」,它的作品,謝謝! – Recif

相關問題