Die Anwendung verwandelt Bildebene zu renderInContext:

Hintergrund

Bin ich mit Erica Saduns Kochbuch Beispiel aus Kapitel 8, Beispiel 14 — ändern der Größe und Drehen zu offensichtlich, ändern der Größe und drehen eine UIImageView.

VIew-Hierarchie

1.) gestreiften hintergrund anzeigen.

2.) der interaktive Blick, der Größe ändern und drehen.

3.) ein overlay-Bild mit einem transparenten Teil. diese Ansicht beginnt die y-Achse bei 128 und ist 768x768.

4.) oben und unten 3, 2 Ansichten 128 in der Höhe.

******Siehe Foto-Beispiel unten****

Problem

Derzeit, ich kann es speichern Sie die gesamte view-Schicht auf die Foto-Bibliothek mit Hilfe [[[self view] layer] renderInContext:, und #2's Transformationen korrekt sind. Jedoch brauche ich eine Möglichkeit zum speichern einer 768x768 (lime-grün im Foto-Beispiel) Rahmen, der nur beinhaltet #2 und #3, einschließlich #2's-Transformationen. Wenn ich [[#2 layer] renderInContext: bekomme ich das original Bild, und keine Transformationen. (siehe screenshot unten # - Referenz.

Code

CGSize deviceSpec;
if ( IDIOM == IPAD ) { deviceSpec =CGSizeMake(768,768); } else { deviceSpec =CGSizeMake(320,480); }
if (  scale > 1.5  ) {
    UIGraphicsBeginImageContextWithOptions(deviceSpec, NO, scale);
} else {
    UIGraphicsBeginImageContext( deviceSpec );
}        

    CGContextRef ctx = UIGraphicsGetCurrentContext();      

    [[stripedBg layer] renderInContext:ctx];  //#1    

        CGContextSaveGState(ctx);

            CGContextConcatCTM(ctx, [[interactiveImage layer] affineTransform]);

            //CGContextTranslateCTM(ctx, interactiveImage.frame.origin.x,interactiveImage.frame.origin.y-128);

            [[interactiveImage layer] renderInContext:ctx]; //#2

        CGContextRestoreGState(ctx);

    [[overlayImage layer] renderInContext:ctx]; //#3

    UIImage * draft = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

Foto Beispiel

Brauche ich nur den Teil des Bildes skizziert ist in LIME GREEN, wobei die Transformationen durch den Benutzer.

Die Anwendung verwandelt Bildebene zu renderInContext:

InformationsquelleAutor WrightsCS | 2011-09-07
Schreibe einen Kommentar