2011-08-10 49 views
0

我正在處理Camera Application用戶正在拍攝照片,但我想裁剪該圖像中的任何位置並將其發送到服務器。我怎樣才能做到這一點?如何在iphone中裁剪特定圖像

+1

你應該接受一些答案....... – Robin

+0

ü要這個...... [鏈接](http://img192.imageshack.us/img192/8930/customcropbox.jpg) – avinash

+0

看到這個。我想你想要同樣的[鏈接](http://stackoverflow.com/questions/1971542/iphone-how-do-you-make-a-resizable-rectangle-for-cropping-images) – avinash

回答

3

退房此鏈接的詳細信息:

http://www.hive05.com/2008/11/crop-an-image-using-the-iphone-sdk/

Basic代碼:

- (UIImage*)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect 
{ 
    //create a context to do our clipping in 
    UIGraphicsBeginImageContext(rect.size); 
    CGContextRef currentContext = UIGraphicsGetCurrentContext(); 

    //create a rect with the size we want to crop the image to 
    //the X and Y here are zero so we start at the beginning of our 
    //newly created context 
    CGRect clippedRect = CGRectMake(0, 0, rect.size.width, rect.size.height); 
    CGContextClipToRect(currentContext, clippedRect); 

    //create a rect equivalent to the full size of the image 
    //offset the rect by the X and Y we want to start the crop 
    //from in order to cut off anything before them 
    CGRect drawRect = CGRectMake(rect.origin.x * -1, 
           rect.origin.y * -1, 
           imageToCrop.size.width, 
           imageToCrop.size.height); 

    //draw the image to our clipped context using our offset rect 
    CGContextDrawImage(currentContext, drawRect, imageToCrop.CGImage); 

    //pull the image from our cropped context 
    UIImage *cropped = UIGraphicsGetImageFromCurrentImageContext(); 

    //pop the context to get back to the default 
    UIGraphicsEndImageContext(); 

    //Note: this is autoreleased 
    return cropped; 
} 
2

我想我可以提供一個更好的解決方案到大量的代碼。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // do something...... 
    UIImage *croppedImage = [self imageByCropping:[UIImage imageNamed:@"SomeImage.png"] toRect:CGRectMake(10, 10, 100, 100)]; 
} 
- (UIImage*)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect 
{ 
    CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect); 
    UIImage *cropped = [UIImage imageWithCGImage:imageRef]; 
    return cropped; 
} 
+0

感謝@robin回答我。請讓我知道我把他的代碼放在哪裏。 – pinku

+0

好的我想調用它在viewdidload方法如何調用此。我正在寫[self imageToCrop];它會給出錯誤。請讓我知道如何寫。 – pinku

+0

好的,謝謝我已經刪除。 – pinku