2009-12-17 5 views

Trả lời

0

Có một cái nhìn tại this blog post, cung cấp mã cho iPhone OS 2.x & 3,0

+4

Bài đăng này không hữu ích. Đó là về hình ảnh trả về không bị cắt đúng theo hình vuông mặc định ở chế độ xem và tỷ lệ xem được tạo sẵn, được sửa trong iOS 4.x. Câu hỏi, tôi tin, là về khả năng thay đổi tỷ lệ khung hình của chức năng xem trước/cắt. Anybodu đã may mắn với điều đó? – esbenr

0

Các từ điển trong các phương pháp đại biểu trả về tất cả những gì:

NSString *const UIImagePickerControllerMediaType; 
NSString *const UIImagePickerControllerOriginalImage; 
NSString *const UIImagePickerControllerEditedImage; 
NSString *const UIImagePickerControllerCropRect; 
NSString *const UIImagePickerControllerMediaURL; 
NSString *const UIImagePickerControllerReferenceURL; 
NSString *const UIImagePickerControllerMediaMetadata; 

tôi giả sử, bạn đã sử dụng EditedImage khá là vô ích ... có thể đối với một số hình thu nhỏ ... dù sao, từ điển thông tin chứa dữ liệu CropRect, điều duy nhất bạn phải làm là tính lại kích thước và cắt hình ảnh gốc, sử dụng ví dụ: UIImage: Resize, then Crop

Tôi chưa thử nghiệm, đây chỉ là lý thuyết :) ... nhưng về lý thuyết, điều này sẽ hoạt động: D

0

Sau khi nhận hình ảnh từ bộ chọn hình ảnh và cung cấp chức năng cắt như mô-đun khác. Vì vậy, người dùng có thể chọn một phần của hình ảnh mà họ muốn cắt.

+0

Đây phải là nhận xét. Không phải là câu trả lời. – Praveenkumar

3

Tôi đã thực hiện một dự án tương tự. Bạn phải sử dụng bộ điều khiển hình ảnh. Trên bộ điều khiển hình ảnh của bạn, bạn phải thêm một bộ điều khiển hình ảnh khác (chỉ vì đây là vùng cắt của bạn) phần không được điền/trống của aboveImageController là nơi bạn sẽ thực hiện. (Vì vậy bạn nên có một hình ảnh với 320x480 kích thước và 320x385 trống trong đó.)

UIImage *image=theimageView.image; 
CGSize newSize; 
newSize.width=320; 
newSize.height=385; 
UIGraphicsBeginImageContext(newSize); 

//x=0 (because widhth : 320) y=0 (aboveImageController's empty part's start) 
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; 
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

CGImageRef imageRef = CGImageCreateWithImageInRect([newImage CGImage], rect); 
UIImage *img = [UIImage imageWithCGImage:imageRef]; 
CGImageRelease(imageRef); 
0

Bạn có thể sử dụng này

UIImage *image1 = [self resizeImage:image width:320 height:385]; 


-(UIImage *)resizeImage:(UIImage *)image width:(int)wdth height:(int)hght{ 
    int w = image.size.width; 
    int h = image.size.height; 
    CGImageRef imageRef = [image CGImage]; 
    int width, height; 
    int destWidth = wdth; 
    int destHeight = hght; 
    if(w > h){ 
     width = destWidth; 
     height = h*destWidth/w; 
    } 
    else { 
     height = destHeight; 
     width = w*destHeight/h; 
    } 
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
    CGContextRef bitmap; 
    bitmap = CGBitmapContextCreate(NULL, width, height, 8, 4 * width, colorSpace, kCGImageAlphaPremultipliedFirst); 

    if (image.imageOrientation == UIImageOrientationLeft) { 

     CGContextRotateCTM (bitmap, M_PI/2); 
     CGContextTranslateCTM (bitmap, 0, -height); 

    } else if (image.imageOrientation == UIImageOrientationRight) { 

     CGContextRotateCTM (bitmap, -M_PI/2); 
     CGContextTranslateCTM (bitmap, -width, 0); 

    } 
    else if (image.imageOrientation == UIImageOrientationUp) { 

    } else if (image.imageOrientation == UIImageOrientationDown) { 

     CGContextTranslateCTM (bitmap, width,height); 
     CGContextRotateCTM (bitmap, -M_PI); 
    } 

    CGContextDrawImage(bitmap, CGRectMake(0, 0, width, height), imageRef); 
    CGImageRef ref = CGBitmapContextCreateImage(bitmap); 
    UIImage *result = [UIImage imageWithCGImage:ref]; 
    CGContextRelease(bitmap); 
    CGImageRelease(ref); 

    return result; 

} 
2

Check-out GKImagePicker

https://github.com/gekitz/GKImagePicker

Dự án mẫu chỉ có iPhone và chỉ hỗ trợ album ảnh, nhưng tôi đã khá dễ dàng có thể mở rộng nó để bao gồm ipad và máy ảnh. Tôi đã sử dụng nó để tạo một khung nhìn tùy chỉnh mà nó là một hình chữ nhật tròn của bất kỳ kích thước kích thước nào.

+0

Làm thế nào bạn thoát khỏi màn hình Apple 'retake/use' ban đầu khi sử dụng GKImagePicker? Ngay bây giờ nếu tôi chụp một bức ảnh với máy ảnh, nó cho thấy màn hình đầu tiên, và nếu tôi bấm 'sử dụng' thì phiên bản cắt xén GKImagePicker của màn hình đó sẽ xuất hiện ngay sau đó. Tôi chỉ muốn màn hình GKImagePicker. – Ramsel

+0

@RobertWagstaff, làm thế nào bạn có được GKImagePicker làm việc với máy ảnh? Bạn vẫn có thể thiết lập các cây trồng rect theo cùng một cách hoặc bạn chỉ cần thực hiện các phương pháp máy ảnh của riêng bạn, nơi mã ban đầu không có? – DelightedD0D

+0

@ DelightedD0D có, tôi đã triển khai phương pháp máy ảnh của riêng mình –