だから、UIImageViewをビューに対して幅が等しく設定したとしましょう。 イメージを適切に再描画する方法の1つは、Core Graphicsを使用することです。 あなたがしているのは、画像を適切に収めるために必要な倍率を計算することです。
https://github.com/natecook1000/Image-Resizing/blob/master/Image%20Resizing/ImageResizingMethods.swift
、より良いものを理解するためのベンチマークとの良好なチュートリアル:基本的の一つである私が使用したコードの
http://nshipster.com/image-resizing/
サンプル( あなたはここにいくつかの素晴らしいサンプルを見つけることができますgithubメソッドは私のニーズに合わせて変更されます):
let image = UIImage(data: data!)
let oldWidth = image!.size.width
let scaleFactor = UIWindow().screen.bounds.width/oldWidth
let cgImage = image!.CGImage
let width = Double(CGImageGetWidth(cgImage)) * Double(scaleFactor)
let height = Double(CGImageGetHeight(cgImage)) * Double(scaleFactor)
let bitsPerComponent = CGImageGetBitsPerComponent(cgImage)
let bytesPerRow = CGImageGetBytesPerRow(cgImage)
let colorSpace = CGImageGetColorSpace(cgImage)
let bitmapInfo = CGImageGetBitmapInfo(cgImage)
let context = CGBitmapContextCreate(nil, Int(width), Int(height), bitsPerComponent, bytesPerRow, colorSpace, bitmapInfo.rawValue)
CGContextSetInterpolationQuality(context, .High)
CGContextDrawImage(context, CGRect(origin: CGPointZero, size: CGSize(width: CGFloat(width), height: CGFloat(height))), cgImage)
let scaledImage = CGBitmapContextCreateImage(context).flatMap { return UIImage(CGImage: $0) }
imageView.image = scaledImage
答えはもっとeそれは私の問題を解決するためにいくつかのヒントをくれました、ありがとう! –
@thibautnoahあなたはそれを修正しましたか?親切に私を助ける – user1629977
@ user1629977私は以下の私の答えは十分な仲間以上のものだと思います –