2015-04-19 20 views

risposta

16

Si può effettivamente utilizzare una singola linea per farlo

guard let image = UIImage(named: "someImage") else { return } // BAIL 
let data = UIImageJPEGRepresentation(image, 1.0) 

Il numero dovrebbe variare da 0.0 a 1.0 e imposta la qualità jpeg

--- update ---

valido a partire da Swift 3.1

+0

Does unpackedImage si riferisce a image image? O c'è un altro processo che deve essere implementato tra la creazione di 'immagine' e la creazione di' dati'? – Danoram

+0

Ci scusiamo per questo, l'inizializzatore 'UIImage()' di solito restituisce un opzionale, ovviamente deve essere scartato poiché il metodo 'UIImageJPEGRepresentation' accetta solo oggetti scartati – Benzy

5

È possibile convertire UIImage-NSData e passarlo a questo metodo

func getArrayOfBytesFromImage(imageData:NSData) -> NSMutableArray 
{ 

    // the number of elements: 
    let count = imageData.length/sizeof(UInt8) 

    // create array of appropriate length: 
    var bytes = [UInt8](count: count, repeatedValue: 0) 

    // copy bytes into array 
    imageData.getBytes(&bytes, length:count * sizeof(UInt8)) 

    var byteArray:NSMutableArray = NSMutableArray() 

    for (var i = 0; i < count; i++) { 
     byteArray.addObject(NSNumber(unsignedChar: bytes[i])) 
    } 

    return byteArray 


} 
+0

come posso eseguire il reverse ... come posso ottenere l'immagine dai byte –