2009-06-17 16 views

答えて

1

NSRectで定義された領域が必要な場合は、this codeとする必要があります。より複雑な領域(非長方形)が必要な場合は、AppleのCropped Image exampleにベジェ曲線にクロップするコードが含まれています(CroppingImageView.mの-croppedImageを参照)。

+1

を 『トリミングした画像の例』リンクではありませんワーキング – Ramz

8

私は、このタスクを達成するためにBill DudneyCore Animation Bookの外に出たいくつかのコードを適応している:

- (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; 
} 

注:CGImageRef取得するには:

CGImageRef anImage = [myUIImage CGImage]; 
関連する問題