2013-06-26 5 views
3
나는 그것이 IMG_DATA이 오류를 제공하지 않습니다와 함께있을 때 이미지 크기를 조정하는 문제 오류를 가지고 있지만있어

는 IMG_URIIOS imageResizer NSInvalidArgumentException

오류 때 호출 resizeImage이 예외를 제공 할 때 :

2013-06-26 19:44:30.306 cascalho[13689:15b03] [LOG] Image Resizer Registered under window.imageResizer 
2013-06-26 19:44:45.685 cascalho[13689:15b03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSDictionary initWithObjects:forKeys:]: count of objects (0) differs from count of keys (3)' 
*** First throw call stack: 
(0x171012 0x25c7e7e 0x17c737 0x19d8c2 0x627c 0x7563b 0x74d8c 0x7493d 0x74ad5 0x749f3 0x25db6b0 0x114a765 0xf4f3f 0xf496f 0x117734 0x116f44 0x116e1b 0x33f87e3 0x33f8668 0x3acffc 0x305c 0x2fb5) 
libc++abi.dylib: terminate called throwing an exception 

코드 캡처를 : 콜 resizeImage의

// capture either new or existing photo: 
function capture(sourceType) { 
    navigator.camera.getPicture(onCaptureSuccess, onCaptureFail, { quality: 40, 
           destinationType: Camera.DestinationType.FILE_URI , 
           sourceType: sourceType, 
           correctOrientation: true 
           } 
           ); 
}; 

var _imageURI =null; 
// if photo is captured successfully, then upload to server: 
function onCaptureSuccess(imageURI) { 
    _imageURI = imageURI; 
    var largeImage = document.getElementById('largeImage'); 
    largeImage.style.display = 'block'; 
    largeImage.src = imageURI; 
}; 

코드

window.imageResizer.resizeImage(
      function(data) { 
       console.log("ah meu parana: "); 

      }, function (error) { 
       console.log("Error : \r\n" + error); 
      }, _imageURI,331 , 245, { 

             imageDataType: ImageResizer.IMAGE_DATA_TYPE_URL, 
             resizeType:ImageResizer.RESIZE_TYPE_PIXEL , 
             format:'jpg' 
            } 
     ); 

답변

3

해결할 수있는 현재 프로젝트에서 비슷한 문제가 발생했습니다. 문제는 iOS 기기, 특히 iPad에서만 발생했으며 Galaxy S3 또는 Android 에뮬레이터에서는 발생하지 않았습니다. 그래서 많은 시간 동안 디버깅을 한 후에 나는 미디어 캡처 플러그인이 작동했지만 카메라 플러그인은 작동하지 않는다는 것을 알아 차렸고 카메라 플러그인이 미디어 캡처 플러그인이 파일 경로를 제공하면서 카메라 플러그인이 "file : //"로 시작하는 URI를 반환했다는 사실을 알아 냈습니다 "/ var/..."과 같습니다. resizeImage에 전달하기 전에 경로에서 "file : //"을 제거하고 모든 것이 작동했습니다.

window.imageResizer.resizeImage(success, failure, imageURI.replace('file://',''), 300, 0, {}); 

이 대답은 아마도 당신을 도울 너무 늦기 그러나 희망은이 문제로 실행 다른 사람을 도움 : iOS에서 이것에

window.imageResizer.resizeImage(success, failure, imageURI, 300, 0, {}); 

을 :

요약하면,이를 변경.

+0

감사합니다. 이것은 축복이었고 몇 시간은 크게 줄어 들었습니다. 감사합니다. 감사합니다. – jeffreynolte

+0

힌트를 보내 주셔서 감사합니다! – Alex