UIImage ile bir UIImageView sahibim. Bu resmin bir kopyasını iki değişkene atamak istiyorum. Kullanıcının yaptıklarına göre görüntü manipüle edilmelidir. Sorun şu ki, görüntü her değişkende aynı. Sanırım, çünkü referans olarak geçiyorlar.Bir UIImage nasıl kopyalanır?
let image1 = imageView.image!
let image2 = imageView.image!
Bu resmin iki ayrı kopyasını nasıl alabilirim?
Teşekkür ederiz!
Düzenleme: Sadece bir resmi kesmek orijinali gibi başka tutun: Ben başarmak istiyorum ne
.
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)")
konsola baskılar Yukarıdaki kod:
left image: <UIImage: 0x7fd020dca070>, {111, 167}
right image <UIImage: 0x7fd020dda430>, {111, 167}
left image: <UIImage: 0x7fd020df9ba0>, {110, 167}
right image <UIImage: 0x7fd020d45670>, {110, 167}
... vb. Yani, BOTH görüntüleri yeni bir boyut alır. Sadece sol Görüntü kırpılmış olmalıdır.
http://stackoverflow.com/a/6770387/3324388 – Aggressor