2012-09-11 4 views
5

에서 이미지를 얻기 : 나는 포토 앨범에 카메라에서 이미지에 걸었습니다MonoTouch는 : MonoTouch에서 ALAssetsLibrary.AssetForUrl

:

ALAssetsLibrary library = new ALAssetsLibrary(); 
library.WriteImageToSavedPhotosAlbum(photo.CGImage, meta, (assetUrl, error) => { 
    library.AssetForUrl(assetUrl, GotAsset, FailedGotAsset); 
}); 

Photo 모두가 잘 작동합니다.

위임자에서 GotAsset 이미지를 가져 오려고 시도했지만 미리보기 이미지 만 있습니다. 이미지는 어디에 있습니까? 여기

void GotAsset(ALAsset asset) 
    { 
     //asset has only thumbnail info??? 
    } 

이 같은 자산이 어떻게 표시되는지를 보여줍니다 : 당신은 표시되지 않는

enter image description here

답변

4

실행시, 장치의 모든 속성 은 링커가 사용 가능 기본적으로 (관리) 때문에 (링크 SDK). 그러면 응용 프로그램이 사용하지 않는 속성을 포함하여 모든 코드가 제거되고 KB와 배포 시간이 많이 절약됩니다.

시뮬레이션 도구에서 자신의 애셋을 추가하여 시뮬레이터에서 디버깅을 시도 할 수 있습니다 (기본값은 으로 연결 안 함). 또 다른 방법은 일시적으로 장치 빌드에서 링커를 비활성화하는 것입니다.

두 경우 모두 ALAsset에 모든 문서화 된 속성이 표시되어야합니다. Poupou의 도움 @를 바탕으로

+0

어떤 생각 방법을 이미지 파일 준비 File.ReadAllBytes에서와 같이()에? 이 자산 라이브러리 URL을 사용할 수 없습니다. 이 특별한 경우에는 파일을 서버에 업로드하여 실제 파일 경로에 액세스해야합니다. – nhenrique

1

는 여기에 내가 있도록 추가 된 코드는 작동 것 :

void GotAsset(ALAsset asset) 
    { 
     ALAssetRepresentation rep = asset.DefaultRepresentation; 
     var iref = rep.GetImage(); 
     if(iref!=null) 
      DoStuffWithUIImage(UIImage.FromImage(iref)); 
    } 
관련 문제