2014-03-12 34 views
1

我正在構建iOS應用程序,我需要使用相機並將其中的圖像保存到App文件夾中。UIImage.AsJPEG()返回「無法從源類型轉換爲目標類型」。

當我嘗試將圖像從相機轉換爲JPEG或PNG格式時,出現「無法從源類型轉換爲目標類型」。

這裏是代碼我使用:

using (NSData imageData = image.AsJPEG(0.2f)) 

任何想法:當我打電話時

public class ImagePickerDelegate : UIImagePickerControllerDelegate 
{ 
    public ImagePickerDelegate() 
    { 
    } 

    public override void FinishedPickingImage(UIImagePickerController picker, UIImage image, NSDictionary editingInfo) 
    { 
     var documentsDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal); 
     string jpgFilename = System.IO.Path.Combine(documentsDirectory, string.Format("{0}.jpg", Guid.NewGuid())); 

     using (NSData imageData = image.AsJPEG(0.2f)) 
     { 
      NSError err; 
      if (!imageData.Save(jpgFilename, false, out err)) 
      { 
       Console.WriteLine("Saving of file failed: " + err.Description); 
      } 
     } 
    } 
} 

的錯誤?

這裏是堆棧跟蹤:

System.InvalidCastException: Cannot cast from source type to destination type. 
at MonoTouch.UIKit.UIImage.AsJPEG() [0x00006] in /Developer/MonoTouch/Source/monotouch/src/UIKit/.pmcs-compat.UIImage.cs:53 
at App.ImagePickerDelegate.FinishedPickingImage (MonoTouch.UIKit.UIImagePickerController picker, MonoTouch.UIKit.UIImage image, MonoTouch.Foundation.NSDictionary editingInfo) [0x00024] in  /Users/giusepecasagrande/Dropbox/SoftwareDev/AppName/AppName/AppName/ImagePickerDelegate.cs:37 
at at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr) 
at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0004c] in /Developer/MonoTouch/Source/monotouch/src/UIKit/.pmcs-compat.UIApplication.cs:38 
at BeBabby.Application.Main (System.String[] args) [0x00008] in /Users/giusepecasagrande/Dropbox/SoftwareDev/AppName/AppName/AppName/Main.cs:16 

這裏是我創建了一個樣本項目: https://github.com/GiusepeCasagrande/XamarinSimpleCameraSample/tree/master

如果您輸入這部分代碼在機械手的委託,你可以看到這個問題。

+1

你可以發佈堆棧跟蹤嗎? – jonathanpeppers

+0

@jonathanpeppers,我只是將堆棧跟蹤添加到原始問題。 – Giusepe

+0

它看起來像UIImageJPEGRepresentation正在返回不是NSData的東西。這是發生在任何圖像上,還是隻有一個? –

回答

1

我在回答這個問題,因爲問題似乎以某種方式解決了。示例項目正在運行。

粘貼我剛纔提出的意見:

在我看來,這是崩潰了相同的代碼,我貼在這裏,然後再複製回項目,現在其工作。

魔法? :)

我現在可以確定發生了什麼,但我知道的是:該項目現在運行,工作完美無瑕。感謝大家的努力和幫助。

+1

具有相同的問題。這似乎是間歇性的,很難追查。這裏有一個錯誤報告https://bugzilla.xamarin.com/show_bug.cgi?id=16269 – Scott

1

您是否嘗試覆寫方法FinidPickingMedia而不是Finishpickingimage?

+0

是的,我結束了他們兩個,似乎總是調用FinidPickingMedia。我的意思是,只有在使用圖書館時才能調用它? – Giusepe

相關問題