Ho un UIImageView con un UIImage. Voglio assegnare una copia di queste immagini a due variabili. Sulla base di ciò che l'utente sta facendo l'immagine dovrebbe essere manipolata. Il problema è che l'immagine è la stessa in ogni variabile. Immagino, perché sono passati per riferimento.Come copiare un UIImage?
let image1 = imageView.image!
let image2 = imageView.image!
Come ottengo due copie separate di questa immagine?
Grazie!
Edit:
Quello che voglio raggiungere: basta ritagliare l'immagine uno, mantenere l'altro come l'originale.
let imageLeft = googleImageView.image!
let imageRef = CGImageCreateCopy(googleImageView.image!.CGImage)
let imageRight = UIImage(CGImage: imageRef!, scale: googleImageView.image!.scale, orientation: googleImageView.image!.imageOrientation)
if translation.x < 0 {
let scale = imageLeft.scale
let newRect = CGRectMake(0, 0, (imageLeft.size.width + translation.x) * scale, imageLeft.size.height * scale)
let imageRef = CGImageCreateWithImageInRect(imageLeft.CGImage, newRect)
if let croppedImage = imageRef {
googleImageView.image = UIImage(CGImage: croppedImage, scale: scale, orientation: imageLeft.imageOrientation)
}
}
print("left image: \(imageLeft) right image \(imageRight)")
Il codice di cui sopra stampa alla console:
left image: <UIImage: 0x7fd020dca070>, {111, 167}
right image <UIImage: 0x7fd020dda430>, {111, 167}
left image: <UIImage: 0x7fd020df9ba0>, {110, 167}
right image <UIImage: 0x7fd020d45670>, {110, 167}
... e così via. Quindi, ENTRAMBI le immagini hanno una nuova dimensione. Solo l'immagine a sinistra dovrebbe essere ritagliata.
http://stackoverflow.com/a/6770387/3324388 – Aggressor