在iphone应用程序的xcode中分解图片
有没有办法让用户上传一张图片到应用程序中,比如说一张50X150像素的图片,然后我可以把它分解成3张50x50像素的图片 如果是这样的话,有人能帮我选择某些像素并将其分解成几个图像吗 谢谢大家! 使用此代码 //在以下方法中:(CGRect)rect>>>此rect应为50x50,或者您可以根据需要定义在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 = [
- (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];'