How can I split an image into several parts?

Can any body explain to me how an image can (equally and unevenly) be split into several parts on the iPhone OS. It is very useful for me if you provide a sample code.

+3
source share
2 answers

I adapted some code that I selected from the Bill Dudney Core Animation Book to complete this task:

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

Note. To get CGImageRef:

CGImageRef anImage = [myUIImage CGImage];
+8
source

, NSRect, . ( ), Apple (. -croppedImage CroppingImageView.m).

+1

Source: https://habr.com/ru/post/1710679/


All Articles