2012-05-24 45 views
7

tôi đang cố gắng cắt hình ảnh theo mong muốn của tôi .... cho ứng dụng kiểu cinemagram của tôi ..... và sử dụng nó trong ứng dụng của tôiiPhone: -simplest cách để cắt hình ảnh mong muốn hình dạng và kích thước

tôi đã cố gắng rất nhiều tùy chọn nhưng không ai trong số tham là ... hữu ích cho tôi tôi đọc câu trả lời trên stack trên dòng chảy nhưng không sử dụng

plzz giúp tôi ra

image = [UIImage imageNamed:@"images2.jpg"]; 
imageView = [[UIImageView alloc] initWithImage:image]; 

CGSize size = [image size]; 

[imageView setFrame:CGRectMake(0, 0, size.width, size.height)]; 
[[self view] addSubview:imageView]; 
[imageView release];  

nhờ

+1

u muốn thay đổi kích thước hình ảnh của hình dạng và kích thước mong muốn –

+0

xem [Câu trả lời của DarkDust tại đây] (http://stackoverflow.com/a/5701294/653513). Nó sẽ hữu ích khi kết hợp với mã asemwer của Codemaster Gabriel bên dưới. –

Trả lời

11

Đây là mã chính xác để thay đổi kích thước hình ảnh của bạn đến kích thước mong muốn

CGSize itemSize = CGSizeMake(320,480); // give any size you want to give 

    UIGraphicsBeginImageContext(itemSize); 

    CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height); 

    [myimage drawInRect:imageRect]; 


    myimage = UIGraphicsGetImageFromCurrentImageContext(); 

    UIGraphicsEndImageContext(); 

Bây giờ hình ảnh của tôi được kích thước mong muốn của bạn

3

Vui lòng tìm mã bên dưới để cắt hình ảnh.

// Create the image from a png file 
UIImage *image = [UIImage imageNamed:@"prgBinary.jpg"]; 
UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 

// Get size of current image 
CGSize size = [image size]; 

// Frame location in view to show original image 
[imageView setFrame:CGRectMake(0, 0, size.width, size.height)]; 
[[self view] addSubview:imageView]; 
[imageView release];  

// Create rectangle that represents a cropped image 
// from the middle of the existing image 
CGRect rect = CGRectMake(size.width/4, size.height/4 , 
    (size.width/2), (size.height/2)); 

// Create bitmap image from original image data, 
// using rectangle to specify desired crop area 
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], rect); 
UIImage *img = [UIImage imageWithCGImage:imageRef]; 
CGImageRelease(imageRef); 

// Create and show the new image from bitmap data 
imageView = [[UIImageView alloc] initWithImage:img]; 
[imageView setFrame:CGRectMake(0, 200, (size.width/2), (size.height/2))]; 
[[self view] addSubview:imageView]; 
[imageView release]; 

giới thiệu từ How to Crop an Image

2

Tôi nghĩ rằng đây là cách đơn giản nhất:

CGRect rect = CGRectMake(0.0, 0.0, 320.0, 430.0); 
CGImageRef tempImage = CGImageCreateWithImageInRect([originalImage CGImage], rect); 
UIImage *newImage = [UIImage imageWithCGImage:tempImage]; 
CGImageRelease(tempImage); 

Nhưng đừng quên để xóa imageOrientation TRƯỚC cắt xén, nếu không bạn sẽ nhận được hình ảnh xoay sau thu hoạch:

-(UIImage *)normalizeImage:(UIImage *)raw { 
    if (raw.imageOrientation == UIImageOrientationUp) return raw; 
    UIGraphicsBeginImageContextWithOptions(raw.size, NO, raw.scale); 
    [raw drawInRect:(CGRect){0, 0, raw.size}]; 
    UIImage *normalizedImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return normalizedImage; 
} 
0

Dưới đây là một lớp học sử dụng câu trả lời Dinesh của để có được một hình ảnh thu nhỏ hình vuông của một hình ảnh

class func returnSquareCroppedImage(theImage:UIImage)->UIImage{ 

    var mySize:CGFloat = 100.0 
    var imageRect:CGRect 

    if theImage.size.width > theImage.size.height { 

     mySize = theImage.size.height 
     let xAdjust = 0-((theImage.size.width - theImage.size.height)/2) 
     imageRect = CGRectMake(xAdjust, 0, theImage.size.width, theImage.size.height) 
    }else{ 

     mySize = theImage.size.width 
     let yAdjust = 0-((theImage.size.height - theImage.size.width)/2) 
     imageRect = CGRectMake(0, yAdjust, theImage.size.width, theImage.size.height) 
    } 

    UIGraphicsBeginImageContext(CGSizeMake(mySize, mySize)) 

    theImage.drawInRect(imageRect) 

    let returnImage = UIGraphicsGetImageFromCurrentImageContext() 

    return returnImage 
} 
Các vấn đề liên quan