2010-03-31 47 views
0

我想直接加我的UIImage到文件,而不是轉換成UIImagePNGRepresentation或UIImageJPGRepresentation(因爲它需要時間),如: -要添加的UIImage直接提交

UIImage *im = [UIImage imageWithCGImage:ref]; 
[array addObject:im]; 
NSData *data = [array objectAtIndex:i]; 
[data writeToFile:path atomically:YES]; 

但它顯示錯誤。 所以我有辦法做到這一點。 在此先感謝。

回答

1

您的array的使用只混淆,你基本上做:

NSData *data = im; 

這不可能工作,因爲imUIImage,而不是NSData也不是一個子類。

你想要做的是創建一個新的NSData並初始化它與圖像的內容。既然你得到了CGImageRef,我建議直接使用它,而不要使用它們之間的UIImage

CGDataProviderRef imageDataProvider = CGImageGetDataProvider(ref); 
CFDataRef imageData = CGDataProviderCopyData(imageDataProvider); 
NSData *data = (NSData*) imageData; 

請注意,這是確定的CFDataRef轉換爲NSData*因爲CFData是「免費橋接」,其可可基金會對口的NSData。

我希望有幫助。

(不要忘記完成後發佈data