Kullanımından Anahtarı UIGraphicsBeginImageContext
için UIGraphicsBeginImageContextWithOptions
(aynı belgelenmiş bu sayfada ). Ölçek için 0.0 değerini (üçüncü argüman) geçerseniz, ekranın boyutuna eşit bir ölçek faktörüne sahip bir bağlam elde edersiniz.
UIGraphicsBeginImageContext
sabit ölçek faktörü 1.0 kullanır, bu nedenle iPhone 4'te diğer iPhone'larda olduğu gibi aynı görüntüyü elde edersiniz. Bahse girerim, iPhone 4, örtük olarak ölçeklendirdiğinizde bir filtre uyguluyor ya da sadece beyniniz, etrafındaki her şeyden daha az keskin olduğunu alıyor.
Yani, sanırım:
#import <QuartzCore/QuartzCore.h>
+ (UIImage *)imageWithView:(UIView *)view
{
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
Ve Swift 4'te:
func image(with view: UIView) -> UIImage? {
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.isOpaque, 0.0)
defer { UIGraphicsEndImageContext() }
if let context = UIGraphicsGetCurrentContext() {
view.layer.render(in: context)
let image = UIGraphicsGetImageFromCurrentImageContext()
return image
}
return nil
}