在iphone应用程序的xcode中分解图片

在iphone应用程序的xcode中分解图片,iphone,xcode,image,select,pixel,Iphone,Xcode,Image,Select,Pixel,有没有办法让用户上传一张图片到应用程序中,比如说一张50X150像素的图片,然后我可以把它分解成3张50x50像素的图片 如果是这样的话,有人能帮我选择某些像素并将其分解成几个图像吗 谢谢大家! 使用此代码 //在以下方法中:(CGRect)rect>>>此rect应为50x50,或者您可以根据需要定义 - (UIImage *)imageFromImage:(UIImage *)image inRect:(CGRect)rect { CGImageRef sourceImageRef = [

有没有办法让用户上传一张图片到应用程序中,比如说一张50X150像素的图片,然后我可以把它分解成3张50x50像素的图片

如果是这样的话,有人能帮我选择某些像素并将其分解成几个图像吗

谢谢大家!

使用此代码

//在以下方法中:(CGRect)rect>>>此rect应为50x50,或者您可以根据需要定义

- (UIImage *)imageFromImage:(UIImage *)image inRect:(CGRect)rect {

CGImageRef sourceImageRef = [image CGImage];  
CGImageRef newImageRef = CGImageCreateWithImageInRect(sourceImageRef, rect);  
UIImage *newImage = [UIImage imageWithCGImage:newImageRef scale:1.0 orientation:image.imageOrientation];
CGImageRelease(newImageRef);
return newImage;
} 

希望,这将帮助您…享受

使用此代码

//在以下方法中:(CGRect)rect>>>此rect应为50x50,或者您可以根据需要定义

- (UIImage *)imageFromImage:(UIImage *)image inRect:(CGRect)rect {

CGImageRef sourceImageRef = [image CGImage];  
CGImageRef newImageRef = CGImageCreateWithImageInRect(sourceImageRef, rect);  
UIImage *newImage = [UIImage imageWithCGImage:newImageRef scale:1.0 orientation:image.imageOrientation];
CGImageRelease(newImageRef);
return newImage;
} 


希望,这将帮助您…享受在UIImage上定义一个类别,为您提供一种很棒的裁剪方法:

- (UIImage *)cropImageInRect:(CGRect)cropRect
{
    CGImageRef image = CGImageCreateWithImageInRect(self.CGImage,cropRect);
    UIImage *croppedImage = [UIImage imageWithCGImage:image];
    CGImageRelease(image);
    return croppedImage;
}
现在,通过此类别,您可以轻松完成您想要的任务:

UIImage *original = ...;
UIImage left = [original cropImageInRect:CGRectMake(0.0, 0.0, 50.0, 50.0)];
UIImage center = [original cropImageInRect:CGRectMake(0.0, 50.0, 50.0, 50.0)];
UIImage right = [original cropImageInRect:CGRectMake(0.0, 100.0, 50.0, 50.0)];

在UIImage上定义一个类别,为您提供一种很棒的裁剪方法:

- (UIImage *)cropImageInRect:(CGRect)cropRect
{
    CGImageRef image = CGImageCreateWithImageInRect(self.CGImage,cropRect);
    UIImage *croppedImage = [UIImage imageWithCGImage:image];
    CGImageRelease(image);
    return croppedImage;
}
现在,通过此类别,您可以轻松完成您想要的任务:

UIImage *original = ...;
UIImage left = [original cropImageInRect:CGRectMake(0.0, 0.0, 50.0, 50.0)];
UIImage center = [original cropImageInRect:CGRectMake(0.0, 50.0, 50.0, 50.0)];
UIImage right = [original cropImageInRect:CGRectMake(0.0, 100.0, 50.0, 50.0)];

我也需要这个。添加到UIImage上的utils类别方法:

// UIImage+Utls.h

@interface UIImage (UIImage_Utls)

- (UIImage *)subimageInRect:(CGRect)rect;
- (NSArray *)subimagesHorizontally:(NSInteger)count;

@end

// UIImage+Utls.m

#import "UIImage+Utls.h"

@implementation UIImage (UIImage_Utls)

- (UIImage *)subimageInRect:(CGRect)rect {

    CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], rect);
    UIImage *answer = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return answer;
}

- (NSArray *)subimagesHorizontally:(NSInteger)count {

    NSMutableArray *answer = [NSMutableArray arrayWithCapacity:count];
    CGFloat width = self.size.width / count;
    CGRect rect = CGRectMake(0.0, 0.0, width, self.size.height);

    for (int i=0; i<count; i++) {
        [answer addObject:[self subimageInRect:rect]];
        rect = CGRectOffset(rect, width, 0.0);
    }
    return [NSArray arrayWithArray:answer];
}

@end
//UIImage+Utls.h
@接口UIImage(UIImage\u Utls)
-(UIImage*)子映像inrect:(CGRect)rect;
-(NSArray*)子图像横向:(NSInteger)计数;
@结束
//UIImage+Utls.m
#导入“UIImage+Utls.h”
@实现UIImage(UIImage\u Utls)
-(UIImage*)子映像对象:(CGRect)rect{
CGImageRef imageRef=CGImageCreateWithImageInRect([self CGImage],rect);
UIImage*答案=[UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
返回答案;
}
-(NSArray*)子映像横向:(NSInteger)计数{
NSMutableArray*answer=[NSMutableArray阵列容量:计数];
CGFloat width=self.size.width/计数;
CGRect rect=CGRectMake(0.0,0.0,宽度,自身大小,高度);

对于(int i=0;i我也需要这个。添加到UIImage上的utils category方法中:

// UIImage+Utls.h

@interface UIImage (UIImage_Utls)

- (UIImage *)subimageInRect:(CGRect)rect;
- (NSArray *)subimagesHorizontally:(NSInteger)count;

@end

// UIImage+Utls.m

#import "UIImage+Utls.h"

@implementation UIImage (UIImage_Utls)

- (UIImage *)subimageInRect:(CGRect)rect {

    CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], rect);
    UIImage *answer = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return answer;
}

- (NSArray *)subimagesHorizontally:(NSInteger)count {

    NSMutableArray *answer = [NSMutableArray arrayWithCapacity:count];
    CGFloat width = self.size.width / count;
    CGRect rect = CGRectMake(0.0, 0.0, width, self.size.height);

    for (int i=0; i<count; i++) {
        [answer addObject:[self subimageInRect:rect]];
        rect = CGRectOffset(rect, width, 0.0);
    }
    return [NSArray arrayWithArray:answer];
}

@end
//UIImage+Utls.h
@接口UIImage(UIImage\u Utls)
-(UIImage*)子映像inrect:(CGRect)rect;
-(NSArray*)子图像横向:(NSInteger)计数;
@结束
//UIImage+Utls.m
#导入“UIImage+Utls.h”
@实现UIImage(UIImage\u Utls)
-(UIImage*)子映像对象:(CGRect)rect{
CGImageRef imageRef=CGImageCreateWithImageInRect([self CGImage],rect);
UIImage*答案=[UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
返回答案;
}
-(NSArray*)子映像横向:(NSInteger)计数{
NSMutableArray*answer=[NSMutableArray阵列容量:计数];
CGFloat width=self.size.width/计数;
CGRect rect=CGRectMake(0.0,0.0,宽度,自身大小,高度);

对于(int i=0;iNow
-subimagesHorizontally:
是甜蜜的!现在
-subimagesHorizontally:
是甜蜜的!我对objective C还是很陌生,似乎无法理解语法。我尝试使用
code
UIImage*original=[info-objectForKey:UIImagePickerControllerOriginalImage];imageView.image=original;imageView1.image=[original ImageFromImage:image inRect:CGRectMake(0.0,0.0,50.0,50.0)];“code”但我收到一个错误,说“没有可见的@interface for'UIImage'声明选择器“ImageFromImage:inRect”
code
你能告诉我方法调用的正确方向和错误吗?谢谢!当你当时调用方法时,你应该传递UIImage和CGReect值…例如调用方法,如下所示…`UIImage*Image=[UIImage imagename:@“yourmage.png”];CGRect*rect=CGRectMake(0.0,0.0,50.0);[Self-imageFromImage:image:rect];“我对objective C还是很陌生,似乎无法理解语法。我尝试使用
code
UIImage*original=[info-objectForKey:UIImagePickerControllerOriginalImage];imageView.image=original;imageView1.image=[original-imageFromImage:image inRect:CGRectMake(0.0,50.0,50.0)];“code”,但我收到一个错误,说“UIImage”的No visible@interface声明选择器“imagefrommage:InRect”
code
你能告诉我方法调用的正确方向和错误吗?谢谢!当你当时调用方法时,你应该传递UIImage和CGReect值…例如调用方法,如下所示…`UIImage*Image=[UIImage imagename:@“yourmage.png”];CGRect*rect=CGRectMake(0.0,0.0,50.0);[Self-imagefromage:image:rect];'