2011-10-31 4 views

Trả lời

17

Điều này đã hiệu quả đối với tôi, đối với hình ảnh PNG. Đối với các loại hình ảnh khác, tôi giả sử bạn chỉ cần tìm UIImage tương ứng ... Phương thức đại diện.

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

Nếu bạn cần CFDataRef cho UIImage, đó chỉ là một dòng nữa.

CFDataRef imgDataRef = (CFDataRef)imageData; 
+2

Tại sao bạn sử dụng '+ [dữ liệu NSDataWithData:]'? –

+5

Touché. Tôi cho rằng bạn chỉ có thể làm 'NSData * imageData = UIImagePNGRepresentation (hình ảnh);' –

6

bạn có thể sử dụng

NSData *imageData = UIImageJPEGRepresentation(image, 1.0); 

và chỉ cần đúc imageData này để CFDataRef

CFDataRef = (CFDataRef) imageData; 
+0

NSData * imageData = UIImageJPEGĐại diện (hình ảnh, 1.0); phương pháp png rất chậm cũng tương đương. Có cách nào nhanh không ??????? – user2128531

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

Đối với một ví dụ làm việc nhấp here.

Cảm ơn bạn.