Puedo crear UIImage
de NSData
usar [UIImage imageWithData:]
o [UIImage initWithData:]
métodos.
Me pregunto si puedo NSData
recuperarme de un existente UIImage
. Algo en la linea deNSData *myData = [myImage getData];
cocoa-touch
uiimage
nsdata
Eugenio
fuente
fuente
UIImageJPEGRepresentation
oUIImagePNGRepresentation
va a alterar los datos y hacer una reconversión. ¿Existe alguna forma de lograr realmente lo que se pidió?Al inicializar un
UIImage
objeto coninit(data: originalData)
, esooriginalData
se convertirá en datos sin procesar en algún tipo de formato interno. Estos datos se pueden recuperar más tarde conSin embargo, debido a que
rawData
está crudo, será incluso más grande que cuando se usaUIImagePNGRepresentation
.fuente
Puede esperar que un UIImage sea un objeto formateado para su visualización y, por lo tanto, no utilizará los datos originales (que probablemente estén en formato PNG o JPEG), sino más bien una matriz de píxeles o algún otro formato interno. En otras palabras,
UIImage(data: foo)
no retendráfoo
.Si solo desea usarlo en otra parte de su programa, el UIImage original funcionará bien (supongo que ese no es el caso aquí)
Si desea serializar,
UIImagePNGRepresentation(...)
funcionará pero será demasiado grande si el original era un JPEG;UIImageJPEGRepresentation(...)
a menudo resultará en datos ligeramente sobredimensionados y con pérdidas si el original era PNG. Debería estar bien elegir uno según la forma en que se mostrará la imagen y el formato que espera que se le proporcione. Si está usando PNG dentro y quiere PNG fuera, debe obtener un buen tamaño de archivo y datos casi idénticos, aparte de los fragmentos especiales de PNG.Si desea obtener una copia exacta de los datos originales (tal vez para guardar un archivo después de la miniatura o para SHA1), debe conservarlo por separado. Podrías hacer algo como:
fuente
Solo porque me topé con esto y me gusta Swift :)
Aquí está la rápida traducción de la publicación de Caroiline.
O
fuente
Rápido 4.2
fuente
Las cosas han cambiado desde que se dio la respuesta anterior, para aquellos que todavía buscan porque comparten la preocupación de CipherCom: iOS 5 ha agregado la propiedad CIImage .
fuente
CIImage
solo se establece si se inicializó conimageWithCIImage:
. Además, estos no son directamente los datos utilizados, sino otro objeto de representación de imágenes.