2017-03-13 16 views
0

當我畫一個邊框一個UIImage與斯威夫特:UIImage的有規模的兩倍

let opaque = false 
    let scale: CGFloat = 0 
    UIGraphicsBeginImageContextWithOptions(CGSize.init(width: ((self.imageView?.image?.size.width)!+512), height: (self.imageView?.image?.size.height)!+512), opaque, scale) 
    let context = UIGraphicsGetCurrentContext() 

    context?.setFillColor(UIColor.yellow.cgColor) 
    context?.fill(CGRect.init(x: 0, y: 0, width: (context?.width)!, height: (context?.width)!)) 

    self.imageView?.image?.draw(at: CGPoint.init(x: 256, y: 256)) 

    let image = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

,並打印出它的大小,這是完全正確的,因爲我設置:寬度和高度各+ 256

但是,當我將圖像保存到庫中時,它具有其寬度的兩倍和高度的兩倍。我不知道爲什麼。另外(這也是最讓我惱火的部分),當我想在圖像上繪製某些東西時,它似乎也有兩倍的尺寸...

+4

您需要了解點和像素之間的差異。 – rmaddy

+0

你的UIImageView是256x256。但請檢查UIImage大小。 – dfd

回答

0

謝謝,Maddy,爲我帶來了正確的軌道!

解決的辦法是:尺度因子必須是1:

let scale: CGFloat = 1 
+0

只有這樣,你才真正希望圖像具有特定的像素大小而不是合適的大小。 – rmaddy