簡體   English   中英

如何在iPhone中裁剪圖像?

[英]How to crop image in iPhone?

在我的應用程序中,我使用以下代碼裁剪捕獲的圖像:-

-(void)imagePickerController:(UIImagePickerController *) picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{   
#ifdef _DEBUG
    NSLog(@"frmSkinImage-imagePickerController-Start");
#endif

    imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    //=======================================
    UIImage *image =imageView.image;
    CGRect cropRect = CGRectMake(100, 100, 125,128);
    CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], cropRect);
    [imageView setImage:[UIImage imageWithCGImage:imageRef]]; 
    CGImageRelease(imageRef);
    //===================================================
    //imgglobal = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    // for saving image to photo album
    //UIImageWriteToSavedPhotosAlbum(imageView.image, self, @selector(image:didFinishSavingWithError:contextInfo:), self);
    [picker dismissModalViewControllerAnimated:YES];

#ifdef _DEBUG
    NSLog(@"frmSkinImage-imagePickerController-End");
#endif
}

但是我的問題是,當我使用相機拍攝照片以裁剪捕獲的圖像時,它會將圖像向右旋轉90度,並且如果使用照片庫,它可以完美地工作。

那么,您可以檢查一下我上面的代碼,看看我錯了嗎?

CGImage是沒有元數據的UIImage,因此會丟失方向信息。 我建議您獲取原始[UIImage imageOrientation]的方向,將其存儲,然后將其應用於最終圖像。

如果這不起作用,請嘗試應用CGAffineTransformMakeRotation(90.0*0.0174532925); 根據原始圖像的方向調整到最終圖像。

最快最簡單的方法是查看NYXImagesKit 使用UIImage+Resizing類別,您可以裁剪圖像。 從文檔中:

UIImage +調整大小

此類別可用於裁剪或縮放圖像。

播種

您可以通過9種不同的方式裁剪圖像:

左上方頂部中心右上方左下方底部中心右下方左中心右中心中心

UIImage * cropped = [myImage cropToSize:(CGSize){width,height} usingMode:NYXCropModeCenter];

NYXCropMode是一種枚舉類型,可以在頭文件中找到,它用於表示上面的9種模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM