Я пытаюсь уменьшить изображение до меньшего размера на некоторое время и не могу понять, почему он теряет качество, хотя я сталкивался с учебниками, говоря, что это не должно. Во-первых, я обрезать мое изображение в квадрат, а затем использовать этот код:Масштабирование изображения и потеря качества
let newRect = CGRectIntegral(CGRectMake(0,0, newSize.width, newSize.height))
let imageRef = image.CGImage
UIGraphicsBeginImageContextWithOptions(newSize, false, 0)
let context = UIGraphicsGetCurrentContext()
// Set the quality level to use when rescaling
CGContextSetInterpolationQuality(context, CGInterpolationQuality.High)
let flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, newSize.height)
CGContextConcatCTM(context, flipVertical)
// Draw into the context; this scales the image
CGContextDrawImage(context, newRect, imageRef)
let newImageRef = CGBitmapContextCreateImage(context)! as CGImage
let newImage = UIImage(CGImage: newImageRef)
// Get the resized image from the context and a UIImage
UIGraphicsEndImageContext()
Я также попробовал этот код с теми же результатами:
let newSize:CGSize = CGSize(width: 30,` height: 30)
let rect = CGRectMake(0, 0, newSize.width, newSize.height)
UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0)
UIBezierPath(
roundedRect: rect,
cornerRadius: 2
).addClip()
image.drawInRect(rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
let imageData = UIImageJPEGRepresentation(newImage, 1.0)
sharedInstance.my.append(UIImage(data: imageData!)!)
я все еще получаю размытое изображение после изменения размера. Я сравниваю его с тем, когда у меня есть представление изображения, и устанавливаю его на аспектное заполнение/подгонку, а изображение намного яснее и меньше. Это качество, которое я пытаюсь получить, и не могу понять, что мне не хватает. Я помещаю два изображения здесь, первое - более четкое изображение с использованием imageView, а второе - изображение, измененное с моим кодом. Как я могу манипулировать изображением, чтобы выглядеть ясным, как на изображении?
Вы проверили [это] (HTTP://iosdevcenters.blogspot.in/2015/12/how-to-resize-image-in-swift-in-ios.html) учебник по изменению размеров изображений? –
Да, я тоже пробовал этот метод. Я не могу понять, в чем проблема, тем более, что сначала я обрезаю квадрат, а затем установил его на 30x30. – Alex
Почему бы вам не потерять качество? Вы уменьшаете изображение. Потеря будет происходить – Knight0fDragon