Necesito crear una representación de cadena base64 de un objeto de cacao de NSImage. Cuál es la mejor manera de manejar esto, la documentación de Apple parece ser un poco corta sobre el tema (o simplemente no puedo encontrarlo). La codificación de Base64 parece bastante compleja desde el exterior.NSImage a Base64
Cualquier ayuda sería muy apreciada.
Saludos Alex
EDITAR
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];
supongo que Alex no quiere base64 codificar la imagen para sus propios fines, pero para cumplir el contrato de algún receptor, por ejemplo un servicio web. Siendo ese el caso, tendrá que basar64 exactamente en lo que espera el servicio web (probablemente datos JPG o PNG). Dudo que haya mucha necesidad de especular sobre la variedad de formas de codificar una imagen, pero tal vez Alex confirme de una forma u otra. – danielpunkass
Hola chicos, creo que la codificación base64 funciona correctamente con el código de dribin.org, pero mientras wordpress acepta y crea el archivo, no es una imagen. http://alexmillsdesign.files.wordpress.com/2009/06/quickicon5.jpg Creo que no obtengo los datos correctos del objeto NSImage así que cambié mi código que está en la edición de mi pregunta original. Soy nuevo en la programación de imágenes, ¿dónde me estoy equivocando? –
1. Use constantes con nombre (NSImageCompressionFactor, no @ "NSImageCompressionFactor"). 2. Use una instancia de NSNumber, no una cadena que contenga una representación decimal. 3. No es que importe, porque PNG no es compatible con NSImageCompressionFactor de todos modos. 4. Está creando y cargando datos PNG, no JPEG. Utilice .png como la extensión de nombre de archivo, o cree y cargue datos JPEG, no PNG. 5. Si descarga eso, encontrará que se trata de datos de base64. ¿Tal vez no necesites codificarlo en base64? –