2014-09-18 46 views
0

我正在开发一个应用程序在phonegap中,并具有使用Ipad相机捕获照片的功能,它的工作原理和所有照片在服务器上正确保存。唯一的问题是它们在服务器上保存时旋转了90度。从Ipad捕获的照片将被倒置在服务器上

现在,我试图存储在图书馆的照片相同的事情,他们上传,因为它是在服务器上,所以我认为问题是与ipad照片捕捉过程。任何人都可以帮助我找到解决这个问题的方法。是Ipad的正常行为还是我在代码中弄错了?

我已经使用以下功能照片功能

//Capture Photo either from camera or IPAD library 
    function capturePhoto(source){ 

    var deferred = $q.defer(); 
    //When source == 1 than from Photo Library 
    var cameraOptions = { quality: 70, destinationType: Camera.DestinationType.FILE_URI }; 
    if(source == 1){ cameraOptions = { quality: 70, destinationType: Camera.DestinationType.FILE_URI, sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY,targetWidth: 600,targetHeight: 600 }; } 

    navigator.camera.getPicture(function (imageURI) { 
     window.resolveLocalFileSystemURI(imageURI, function (fileEntry) { 

      window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSys) { 

        fileSys.root.getDirectory("auditPhotos", {create: true, exclusive: false}, function(dir) { 

         fileEntry.copyTo(dir,generateRandomID()+".jpg",function (entry) { 
             deferred.resolve(entry.fullPath) 
         }, null); 
        }, null); 
      }, null); 
     },null); 
     }, 
     function (message) { 
     deferred.reject(message); 
     }, 
     cameraOptions 
    ); 
    //deferred.resolve(generateRandomID()+".jpg"); 
    return deferred.promise; 
    } 

回答

3

如你节省jpg格式服务器捕捉到的图像(使用上述功能)。 JPG & JPEG有一个存储图像方向的EXIF属性。当您通过IPAD拍摄图像时,此exif数据存储相机方向和其他位置相关的东西。但这只能通过ipad来理解,而不能通过浏览器来理解,这就是为什么在浏览器中看到图像旋转的原因。由于EXIF的可用性,当您在IPAD中查看时,由IPAD将其设置在适当的位置。

要解决这个问题,只需保存您的图像在PNG格式而不是JPG和所有工作正常:-)

0

我的朋友最近也有类似的问题,虽然我也不太清楚如何具体解决您的问题,我知道的是EXIF数据图像应该存储关于它如何定向的内容。

您可以尝试实现这个图书馆获得的EXIF数据,并根据需要在上传前旋转图像:https://code.google.com/p/iphone-exif/