嘿傢伙我正在做一些與UIImagePickerController圖像編輯。下面是一些代碼在imagePickerController:didFinishPickingMediaWithInfo
:UIImagePickerControllerEditedImage得到零
UIImage *editedImg = [info objectForKey:UIImagePickerControllerEditedImage];
UIImageView *imgView = [[UIImageView alloc] initWithImage:editedImg];
CGRect imgFrm = imgView.frame;
float rate = imgFrm.size.height/imgFrm.size.width;
imgFrm.size.width = size;
imgFrm.size.height = size * rate;
imgFrm.origin.x = 0;
imgFrm.origin.y = (size - imgFrm.size.height)/2;
[imgView setFrame:imgFrm];
UIView *cropView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, size, size)];
[cropView setBackgroundColor:[UIColor blackColor]];
[cropView addSubview:imgView];
UIImage *croppedImg = [MyUtil createUIImageFromUIView:cropView];
以上是設置在一個尺寸大小*視圖圖像,並且從圖繪製圖像時通過選擇器返回的圖像的高度比尺寸小。
這裏是createUIImageFromUIView:(UIView*)view
的代碼:
+ (UIImage *)createUIImageFromUIView:(UIView *)view
{
UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, 2.0);
CGContextRef ctx = UIGraphicsGetCurrentContext();
[view.layer renderInContext:ctx];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}
我的問題是:當調試, 'editedImg'(在第一行中所定義的)只是顯示 '零'。但是,以下代碼運行良好。我正確地得到了corpView(顯示'nil'),並得到裁剪後的圖像,並可以將它編碼爲base64編碼的字符串以發送到服務器端。 我只想知道爲什麼editedImg是零(由[infoObjectForKey:UIImagePickerControllerEditedImage]返回,但是當我選擇在調試模式下打印信息時,控制檯中的輸出不是零)?
我想你想'CGSize imgSize = croppedImg.size'! – Maulik
@Maulik,謝謝你的回覆。對不起,我沒有定義'大小',這是一個浮點值(320)。 – Sabbath
沒有得到你,你可以更具體的關於你的要求 – Maulik