Ответ с поправкой растягивает фоновое изображение, изменяя его соотношение. Приведенное ниже решение исправляет это путем рендеринга изображения из UIView, которое содержит два изображения в качестве подпредставлений.
ОТВЕТЬТЕ, ЧТО ВЫ ИЩЕТЕ (Swift 4):
func blendImages(_ img: UIImage,_ imgTwo: UIImage) -> Data? {
let bottomImage = img
let topImage = imgTwo
let imgView = UIImageView(frame: CGRect(x: 0, y: 0, width: 306, height: 306))
let imgView2 = UIImageView(frame: CGRect(x: 0, y: 0, width: 306, height: 306))
// - Set Content mode to what you desire
imgView.contentMode = .scaleAspectFill
imgView2.contentMode = .scaleAspectFit
// - Set Images
imgView.image = bottomImage
imgView2.image = topImage
// - Create UIView
let contentView = UIView(frame: CGRect(x: 0, y: 0, width: 306, height: 306))
contentView.addSubview(imgView)
contentView.addSubview(imgView2)
// - Set Size
let size = CGSize(width: 306, height: 306)
// - Where the magic happens
UIGraphicsBeginImageContextWithOptions(size, true, 0)
contentView.drawHierarchy(in: contentView.bounds, afterScreenUpdates: true)
guard let i = UIGraphicsGetImageFromCurrentImageContext(),
let data = UIImageJPEGRepresentation(i, 1.0)
else {return nil}
UIGraphicsEndImageContext()
return data
}
Возвращенные данные изображения удваивают размер изображения, поэтому установите размер просмотров на половину желаемый размер.
var newpeople= _rep.GetPeople().Where(p=>p.personID)
.Select(p => new KindoFPerson...id=p.id etc)
Обратите внимание на новый " p =>
".