簡體   English   中英

如何將 UIImage 轉換為 NSData 或 CFDataRef?

[英]How do I convert a UIImage to NSData or CFDataRef?

如何將UIImage轉換為NSDataCFDataRef 我需要將CFDataRef傳遞給ABPersonSetImageData

這對我有用,對於 PNG 圖像。 對於其他圖像類型,我假設您只需要找到相應的 UIImage...Representation 方法。

UIImage *image = [UIImage imageNamed:@"imageName.png"];
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(image)];

如果你需要一個 UIImage 的 CFDataRef,它只是多一行。

CFDataRef imgDataRef = (CFDataRef)imageData;

你可以用這個

NSData *imageData = UIImageJPEGRepresentation(image, 1.0);

並簡單地將 imageData 轉換為CFDataRef

CFDataRef = (CFDataRef) imageData;
CFDataRef cfdata = CFDataCreate(NULL, [imageData bytes], [imageData length]);

有關工作示例,請單擊此處

謝謝你。

對於那些想知道NSDataCFData之間有什么區別的CFData ,這里是Apple Docs的解釋:

CFData 與其 Cocoa Foundation 的對應方 NSData “免費橋接”。 這意味着 Core Foundation 類型在函數或方法調用中可以與橋接的 Foundation 對象互換。 換句話說,在一個方法中,你看到一個 NSData * 參數,你可以傳入一個 CFDataRef,而在一個函數中,你看到一個 CFDataRef 參數,你可以傳入一個 NSData 實例。 這也適用於 NSData 的具體子類。 有關免費橋接的更多信息,請參閱免費橋接類型。

這解釋了為什么將NSDataCFData有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM