Tôi cần tạo biểu diễn chuỗi base64 của đối tượng ca cao NSImage. Cách tốt nhất để xử lý này là gì, tài liệu hướng dẫn của apple có vẻ hơi ngắn về chủ đề (hoặc tôi không thể tìm thấy nó). Mã hóa Base64 có vẻ khá phức tạp từ bên ngoài.NSImage to Base64
Mọi trợ giúp sẽ được đánh giá rất nhiều.
Cheers Alex
EDIT
NSArray *keys = [NSArray arrayWithObject:@"NSImageCompressionFactor"];
NSArray *objects = [NSArray arrayWithObject:@"1.0"];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
NSImage *image = [[NSImage alloc] initWithContentsOfFile:[imageField stringValue]];
NSBitmapImageRep *imageRep = [[NSBitmapImageRep alloc] initWithData:[image TIFFRepresentation]];
NSData *tiff_data = [imageRep representationUsingType:NSPNGFileType properties:dictionary];
NSString *base64 = [tiff_data encodeBase64WithNewlines:NO];
Tôi đoán rằng Alex không muốn base64 mã hóa hình ảnh cho mục đích riêng của mình, nhưng để đáp ứng hợp đồng của một số người nhận, ví dụ một dịch vụ web. Trong trường hợp đó, anh ta sẽ cần phải căn cứ chính xác những gì dịch vụ web mong đợi (có thể là dữ liệu JPG hoặc PNG). Tôi nghi ngờ có nhiều nhu cầu đầu cơ về nhiều cách để mã hóa một hình ảnh, nhưng có lẽ Alex sẽ xác nhận một cách này hay cách khác. – danielpunkass
Hey Guys, tôi nghĩ rằng tôi có mã hóa base64 hoạt động chính xác bằng cách sử dụng mã từ dribin.org nhưng trong khi wordpress chấp nhận và tạo tệp, nó không phải là hình ảnh. http://alexmillsdesign.files.wordpress.com/2009/06/quickicon5.jpg Tôi tin rằng tôi không nhận được dữ liệu phù hợp từ đối tượng NSImage vì vậy tôi đã thay đổi mã của mình trong phần chỉnh sửa câu hỏi ban đầu của tôi. Tôi mới lập trình hình ảnh, tôi đang đi sai ở đâu? –
1. Sử dụng hằng số có tên (NSImageCompressionFactor, không phải @ "NSImageCompressionFactor"). 2. Sử dụng một thể hiện NSNumber, không phải là một chuỗi có chứa một biểu diễn thập phân. 3. Không phải là nó quan trọng, bởi vì PNG không hỗ trợ NSImageCompressionFactor anyway. 4. Bạn đang tạo và tải lên dữ liệu PNG, chứ không phải JPEG. Hoặc sử dụng .png làm đuôi tệp, hoặc tạo và tải lên dữ liệu JPEG chứ không phải PNG. 5. Nếu bạn tải xuống, bạn sẽ thấy rằng đó là dữ liệu base64. Có lẽ bạn không thực sự cần phải mã hóa base64? –