Xcode 从图像映射加载UIImage

Xcode 从图像映射加载UIImage,xcode,cocoa-touch,ios5,ios6,Xcode,Cocoa Touch,Ios5,Ios6,我知道这听起来是一项非常基本的任务,但我尝试过搜索,但没有结果 例如,这里有一个我正在尝试做的例子 加载图像 将图像映射到UIImage 从x,y请求具有宽度和高度的图像 例如: 举个例子。例如,如果我将{64,0,64,64}作为rect传递,那么结果将是: 有什么建议吗?:) 问候 蒂姆·埃利斯当然,只要你一发帖,你就会在别处找到答案 我在这里找到的 我使用的代码基本相同,但我将其添加到UIImage中以使事情变得简单 这是给感兴趣的人的 //The .h file @interfac

我知道这听起来是一项非常基本的任务,但我尝试过搜索,但没有结果

例如,这里有一个我正在尝试做的例子

加载图像

将图像映射到UIImage

从x,y请求具有宽度和高度的图像

例如:

举个例子。例如,如果我将{64,0,64,64}作为rect传递,那么结果将是:

有什么建议吗?:)

问候


蒂姆·埃利斯

当然,只要你一发帖,你就会在别处找到答案

我在这里找到的

我使用的代码基本相同,但我将其添加到UIImage中以使事情变得简单

这是给感兴趣的人的

//The .h file
@interface UIImage (crop)
- (UIImage *)crop:(CGRect)rect;
@end
主文件

//The .m file
@implementation UIImage (crop)

- (UIImage *)crop:(CGRect)rect {
    if (self.scale > 1.0f) {
        rect = CGRectMake(rect.origin.x * self.scale,
                          rect.origin.y * self.scale,
                          rect.size.width * self.scale,
                          rect.size.height * self.scale);
    }

    CGImageRef imageRef = CGImageCreateWithImageInRect(self.CGImage, rect);
    UIImage *result = [UIImage imageWithCGImage:imageRef scale:self.scale orientation:self.imageOrientation];
    CGImageRelease(imageRef);
    return result;
}

@end
现在说起来很容易

这是一个示例:)

//The .m file
@implementation UIImage (crop)

- (UIImage *)crop:(CGRect)rect {
    if (self.scale > 1.0f) {
        rect = CGRectMake(rect.origin.x * self.scale,
                          rect.origin.y * self.scale,
                          rect.size.width * self.scale,
                          rect.size.height * self.scale);
    }

    CGImageRef imageRef = CGImageCreateWithImageInRect(self.CGImage, rect);
    UIImage *result = [UIImage imageWithCGImage:imageRef scale:self.scale orientation:self.imageOrientation];
    CGImageRelease(imageRef);
    return result;
}

@end
UIImage *image = [UIImage imageNamed:@"imgMap.png"];
CGRect frame = CGRectMake (0, 0, 40, 40); //Change this to whatever the frame should be
UIImage *cropped = [image crop:frame];