2012-09-11 11 views
5

के बाहर एक छवि हो रही है:MonoTouch: MonoTouch में ALAssetsLibrary.AssetForUrl

मैं PhotoAlbum में कैमरा से एक छवि में डाल रहा हूँ:

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

आप नहीं देख रहे हैं, कार्यावधि में, उपकरणों पर हर गुण क्योंकि डिफ़ॉल्ट रूप से, (प्रबंधित) लिंकर सक्षम किया गया है (लिंक एसडीके)। यह गुणों सहित किसी भी कोड को हटा देगा, आपका एप्लिकेशन उपयोग नहीं कर रहा है (और केबी और तैनाती के समय बचाता है)।

आप सिम्युलेटर पर इसे डीबग करने का प्रयास कर सकते हैं (जो पर अपनी डिफ़ॉल्ट संपत्ति (सिम्युलेटर में) जोड़कर लिंक न करें)। एक और तरीका है, अस्थायी रूप से, आपके डिवाइस पर लिंकर को अक्षम करें।

किसी भी मामले में आपके ALAsset सभी दस्तावेज गुण दिखाना चाहिए।

+0

किसी भी विचार कैसे File.ReadAllBytes में के रूप में तैयार छवि फ़ाइल() पर? मैं इसके लिए इस संपत्ति-पुस्तकालय यूआरएल का उपयोग नहीं कर सकता। इस विशिष्ट मामले में मैं फ़ाइल को सर्वर पर अपलोड करना चाहता हूं इसलिए मुझे वास्तविक फ़ाइल पथ तक पहुंचने की आवश्यकता है। – nhenrique

1

@ Poupou की मदद के आधार पर यहाँ कोड मैं बनाने के लिए जोड़ा यह काम कर रहा है:

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