Frage

Ich versuche, eine gedreht und skaliert UIImageView als UIImage in der Position und mit der Zoom-Skala zu speichern, die der Benutzer zu bearbeiten. Aber ich kann nur verwalten das Originalbild zu speichern, wie es vor der Bearbeitung war. Wie kann ich das Bild speichern, wie es in der UIImageView mit der gleichen Skalierung und Drehung gezeigt wird? Ich habe gelesen, dass ich brauche UIGraphicsGetCurrentContext () verwenden, aber ich habe das gleiche Originalbild gespeichert (aber umgedreht) und nicht gedreht einen !! Anregungen und Hinweise wäre wirklich hilfreich sein. Vielen Dank im Voraus. Al

(UIImage *)getImage
{
CGSize size = CGSizeMake(250, 250);
UIGraphicsBeginImageContext(size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGMutablePathRef path = CGPathCreateMutable();

// Add circle to path
CGPathAddEllipseInRect(path, NULL, CGRectMake(0, 0, 250, 250));
CGContextAddPath(context, path);

// ****************** touchImageView is my UIImageView ****************//
CGContextDrawImage(context, CGRectMake(0, 0, 250, 250), [touchImageView image].CGImage);

UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();

// Clip to the circle and draw the logo
CGContextClip(context);
UIGraphicsEndImageContext();

return scaledImage;

}

War es hilfreich?

Lösung

Ich sehe nichts im Code geschrieben, dass ein Bild drehen würde. Haben Sie vergessen, dass hinzufügen?

Es sieht aus wie Sie auf dem richtigen Weg sind. Nun sollten Sie die Transformationsroutinen CGContextScaleCTM und CGContextRotateCTM verwenden, um Ihre Matrix entsprechend umwandeln zu ändern, und dann (um das Umklappen zu vermeiden), verwendet -[UIImage drawAtPoint:], um die UIImage zu ziehen statt CGContextDrawImage zu verwenden.

Andere Tipps

Die Ansicht basierte Transformationen werden die Ausgabe des Kontextes angewandt nicht der Kontext selbst. Ich glaube, Sie haben zu skalieren und drehen Sie das Bild Kontext sich die link text spezifischen Funktionen des Kern Grafik.

(ich könnte falsch sein. Ich kann mich nicht erinnern, wie genau, wie ich das tat im past.Take diese mit einem Körnchen Salz.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top