1

Core Image と GPUImage を使用して、iPhone アプリでいくつかのフィルターを作成しています。メモリが不足していて、大きな画像でクラッシュしているようです。これは、入力画像を複数に分割できれば解決できると思います。

画像処理のために画像を複数の部分に効率的に分割し、再結合して iOS で結果の画像全体を出力する方法は?

4

1 に答える 1

1
-(void)getMultipleImages:(UIImage*)image AndNumberOfPart:(NSInteger)matrixSize{



CGSize size = image.size;

//for storing rect values of puzzle boxess
NSMutableArray *puzzleRectArr = [[NSMutableArray alloc]init];
NSMutableArray *puzzleCroppedObj = [[NSMutableArray alloc]init];

int widthD = size.width;
int heightD = size.height;

float boxWidth = widthD/matrixSize;
float boxHeight = heightD/matrixSize;


for (int i = 0; i < matrixSize*matrixSize; i++) {

    int x = (widthD/matrixSize)/2 + (widthD/matrixSize) *(i%matrixSize)-boxWidth/2;
    int y = (heightD/matrixSize)/2 + (heightD/matrixSize)* (i/matrixSize)-boxHeight/2;


    CGRect rect = CGRectMake(x, y, boxWidth, boxHeight);
    [puzzleRectArr addObject:[NSValue valueWithCGRect:rect]];

    CGImageRef imageRef = CGImageCreateWithImageInRect([self.imgActual CGImage], rect);
    UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
//----------------------------------------------------------------------        
    //here You can find the part image
    [puzzleCroppedObj addObject:croppedImage];

//----------------------------------------------------------------------                


     CGImageRelease(imageRef);
}
}
于 2012-11-02T11:04:48.463 に答える