Frage

Possible Duplicate:
Cropping a UIImage

I saw many tutorials about cropping images and am trying my luck but with no success.

I need to crop the image from AVFoundation. Since when the image is being taken from the camera it is rotated left from Portrait mode, I also need to rotate it right and my x and y are opposite. The problem is that if I send the frame of the image where I would it to reside, it seems to me that there is no correlation in the size of the image and the rectangle.

The code is:

@property (weak, nonatomic) IBOutlet UIView *videoPreviewView;
...
...
int width = videoPreviewView.frame.size.width;
int height = videoPreviewView.frame.size.height;
int x = videoPreviewView.frame.origin.x;
int y = videoPreviewView.frame.origin.y;
CGRect croprect = CGRectMake(y, x,height,width);
// Draw new image in current graphics context
CGImageRef imageRef = CGImageCreateWithImageInRect([sourceImage CGImage], croprect);
// Create new cropped UIImage
UIImage *resultImage = [UIImage imageWithCGImage:imageRef scale:[sourceImage scale] orientation:UIImageOrientationRight];

When I print the size of the frame I get:

(4.5,69.5,310,310)

and the image size is:

(720,1280)

How can I perform cropping in any image resolution?

I tried multiplying the values with image.scale - however, the value is 1.00

War es hilfreich?

Lösung

Try this one.This will definitely help you out. https://github.com/barrettj/BJImageCropper

Andere Tipps

To resize image, Try this    

    UIImage *image = [UIImage imageNamed:@"image.png"];

    CGSize itemSize = CGSizeMake((your Width), (your Height));
    UIGraphicsBeginImageContext(itemSize);
    CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
    [image drawInRect:imageRect];

    UIImage * yourCroppedImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

To Crop,

    // Create new image context
    UIGraphicsBeginImageContext(SIZE);

    // Create CGRect for image
    CGRect newRect = CGRectMake(x, y,SIZE.width,SIZE.height);

    // Draw the image into the rect
    [ORIGINALIMAGE drawInRect:newRect];

    // Saving the image, ending image context
    UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top