У меня есть приложение, например, камера, чтобы сделать снимок и применить к нему фильтр.каждая вещь работает нормально, только когда я применяю фильтр к изображению, это меняет размер.Я изменил размер изображения, но пока не смог получить изображение как оригинальное изображение.мой код
let ciContext = CIContext(options: nil)
let coreimg = CIImage(image: AppDelegate.captured_iamge!)
let filter = CIFilter(name: CIFilterNames[indexPath.row])
filter!.setDefaults()
filter!.setValue(coreimg, forKey: kCIInputImageKey)
let filtered_img_data = filter!.value(forKey: kCIOutputImageKey) as! CIImage
let filtered_img_ref = ciContext.createCGImage(filtered_img_data, from: filtered_img_data.extent)
let img = UIImage(cgImage: filtered_img_ref!)
print("Filtered Image size is \(img.size)")
let size = img_view.image?.size
print("ImageView on which image is displaying size \(size!)")
let newimg = resizeImage(image: img, targetSize: size!)
print("Resized Image size \(newimg.size)")
img_view.image = newimg
метод, который изменяет размер изображения
func resizeImage (image: UIImage, targetSize: CGSize) -> UIImage {
let newSize : CGSize = targetSize let rect = CGRect (x: 0, y: 0, width: newSize.width, height: newSize.height)
UIGraphicsBeginImageContextWithOptions (newSize, false, 1.0)
image.draw (in: rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage!
}
захват изображения как
когда я запускаю код, введите как
, но все же, когда я показываю изображение, оно выглядит так
любые предложения по решению этой проблемы