2009-06-17 14 views

Antwort

1

Wenn Sie nur eine Region durch eine NSRect definiert wollen, dann this code sollte es tun. Wenn Sie komplexere Bereiche (nicht rechteckig) benötigen, enthält Apples Cropped Image example Code zum Zuschneiden auf eine Bezier-Kurve (siehe -croppedImage in CroppingImageView.m).

+1

"Geerntetes Bild Beispiel" -Link nicht ist Arbeiten – Ramz

8

ich einige Code angepasst habe ich Core Animation Book aus Bill Dudney ‚s bekam diese Aufgabe zu erfüllen:

- (NSArray*)splitImageIntoRects:(CGImageRef)anImage{ 

    CGSize imageSize = CGSizeMake(CGImageGetWidth(anImage), CGImageGetHeight(anImage)); 

    NSMutableArray *splitLayers = [NSMutableArray array]; 

      kXSlices = 3; 
      kYSlices = 3;   

    for(int x = 0;x < kXSlices;x++) { 
     for(int y = 0;y < kYSlices;y++) { 
      CGRect frame = CGRectMake((imageSize.width/kXSlices) * x, 
            (imageSize.height/kYSlices) * y, 
            (imageSize.width/kXSlices), 
            (imageSize.height/kYSlices)); 

      CALayer *layer = [CALayer layer]; 
      layer.frame = frame;              
      CGImageRef subimage = CGImageCreateWithImageInRect(drawnImage, frame); 
      layer.contents = (id)subimage; 
      CFRelease(subimage); 
      [splitLayers addObject:layer]; 
     } 
    } 
    return splitLayers; 
} 

Hinweis: eine CGImageRef Um:

CGImageRef anImage = [myUIImage CGImage]; 
Verwandte Themen