2017-03-13 6 views
0

hat, wenn ich einen Rahmen um eine UIImage mitSwift: UIImage zweimal die Größe

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() 

und ausdrucken seine Größe zu zeichnen, ist es völlig korrekt, wie ich sie eingestellt: Breite und Höhe jeweils + 256.

Wenn ich jedoch das Bild in der Bibliothek speichern, hat es die doppelte Breite und doppelte Höhe. Ich habe keine Idee warum. Auch (und das ist der Teil, der mich am meisten ärgert), wenn ich etwas auf dem Bild zeichnen möchte, scheint es auch die doppelte Größe zu haben ...

+4

Sie müssen den Unterschied zwischen den Punkten und Pixel verstehen. – rmaddy

+0

Ihr UIImageView ist 256x256. Aber überprüfe die Größe von UIImage. – dfd

Antwort

0

Danke, Maddy, für mich auf dem richtigen Weg zu bringen !

Die Lösung lautet: Der Skalierungsfaktor hat 1:

let scale: CGFloat = 1 
+0

Nur das möchten Sie wirklich, dass das Bild eine bestimmte Größe in Pixel über eine entsprechende Größe in Punkten hat. – rmaddy