2017-01-29 7 views
2

Ich bin auf der Suche nach einer Anleitung, wie ich eine benutzerdefinierte Kamera ausbaut. In früheren Projekten habe ich das Quadrat-Zuschneiden für Fotos verwendet, aber jetzt muss ich eine benutzerdefinierte Zuschneideform erstellen. Soll ich das mit einem Pfad oder einer Maske machen?Crop Foto mit benutzerdefinierter Form

Ich muss das zugeschnittene Bild zu einem anderen Bild hinzufügen und ein Png-Bild mit den beiden Bildern kombiniert erzeugen. Bitte verweisen Sie Fotos für eine Idee von dem, was ich bauen möchte.

Custom crop shape

zur Zeit gewesen, eine Bezier-Pfad bauen, aber nicht sicher, wie die Pfadform verwenden, um das Bild zu zuzuschneiden:

func createBezierPath() -> UIBezierPath { 

    let path = UIBezierPath() 
    path.move(to: CGPoint(x: 2, y: 26)) 

    path.addCurve(to: CGPoint(x: 0, y: 12), // ending point 
     controlPoint1: CGPoint(x: 2, y: 14), 
     controlPoint2: CGPoint(x: 0, y: 14)) 

    path.addLine(to: CGPoint(x: 0, y: 2)) 
    path.addArc(withCenter: CGPoint(x: 2, y: 2), // center point of circle 
     radius: 2, 
     startAngle: CGFloat(M_PI), // π radians = 180 degrees = straight left 
     endAngle: CGFloat(3*M_PI_2), // 3π/2 radians = 270 degrees = straight up 
     clockwise: true) // startAngle to endAngle goes in a clockwise direction 

    path.addLine(to: CGPoint(x: 8, y: 0)) 
    path.addArc(withCenter: CGPoint(x: 8, y: 2), 
       radius: 2, 
       startAngle: CGFloat(3*M_PI_2), // straight up 
     endAngle: CGFloat(0), // 0 radians = straight right 
     clockwise: true) 

    path.addLine(to: CGPoint(x: 10, y: 12)) 
    path.addCurve(to: CGPoint(x: 8, y: 15), // ending point 
     controlPoint1: CGPoint(x: 10, y: 14), 
     controlPoint2: CGPoint(x: 8, y: 14)) 

    path.close() 

    return path 
} 
+0

Hallo @Paul k. Ich muss dasselbe in meiner App machen (nur das Gesicht wie in den obigen Bildern aufnehmen und speichern) in objectiv c also, was ich tun muss, kannst du mir den Link geben, wenn du irgendeine Art von Bibliothek für Capture Face hast und bitte so speichern hilf mir .. danke im voraus –

+0

hi.sir eine hilfe mein projekt ich versuche, form bild getreide aber nicht crop perfekt gesicht form bild bitte hilfe mich objektiv c .. –

Antwort

1

das Originalfoto Legen Sie in einem UIImageView und zu tun:

let mask = CAShapeLayer() 
mask.path = createBezierPath() 
imageView.layer.mask = mask 

Und es sollte nur das Gesicht innen abgeschnitten angezeigt werden. Wenn Sie eine neue UIImage haben möchten, verwenden Sie die renderInContext() Methode.

+0

Danke Alistra! Ich werde es versuchen. –

+0

hallo @ Alistra Ich muss das gleiche tun in meiner app (Erfassung nur Gesicht wie oben Bilder und speichern) in Ziel c so was ich tun müssen können Sie mir den Link, wenn Sie irgendeine Art von Bibliothek für nur Gesicht erfassen und speichern Sie so bitte helfen Sie mir .. Vielen Dank im Voraus –