1

たとえば 50X150 ピクセルの画像をユーザーにアプリにアップロードしてもらい、それを 3 つの 50x50 ピクセルの画像に分割する方法はありますか?

もしそうなら、誰かが特定のピクセルを選択していくつかの画像に分割するのを手伝ってくれますか?

ありがとうございました!

4

3 に答える 3

2

このコードを使用...

// 次のメソッドinRect:(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;
} 

詳細については、この参照を参照してください..

うまくいけば、これはあなたを助けるでしょう...楽しんでください

于 2012-04-21T04:20:34.200 に答える
1

優れたトリミング方法を提供する 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)];
于 2012-04-21T04:57:17.720 に答える
1

これも必要でした。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
于 2012-04-21T05:00:01.670 に答える