2012-05-06 62 views
2

我用這github上的圖像栽跟頭:https://github.com/iosdeveloper/ImageCropperCGImageCreateWithImageInRect不正確的區域?

在此圖像中栽跟頭,在init方法,他們有這些行:

CGRect rect; 
     rect.size.width = image.size.width; 
     rect.size.height = image.size.height; 

     [imageView setFrame:rect]; 

在此之前,我將圖像尺寸調整到屏幕分辨率不得分。所以如果我把代碼放在上面的方式,我的UIImage不會填充UIImageView出於某種奇怪的原因,我也試圖調整contentModes。

但是,如果我把它調整到這個(在UIPopover該圖像種植者是大小):

[imageView setFrame:CGRectMake(0, 0, 320, 480)]; 

的UIImage的填補UIPopover。

真正的問題是在這裏: 如果我放大圖像的某一部分,並執行下面的代碼,它會採取UIImage的左上部分的截圖沒有在附近給我隨之而來,其中圖像。儘管它遵守scrollView的zoomScale。

下面是截圖代碼:

- (void)finishCropping { 

    float zoomScale = 1.0/[scrollView zoomScale]; 

    CGRect rect; 
    rect.origin.x = [scrollView contentOffset].x * zoomScale; 
    rect.origin.y = [scrollView contentOffset].y * zoomScale; 
    rect.size.width = [scrollView bounds].size.width * zoomScale; 
    rect.size.height = [scrollView bounds].size.height * zoomScale; 

    CGImageRef cr = CGImageCreateWithImageInRect([[imageView image] CGImage], rect); 

    UIImage *cropped = [UIImage imageWithCGImage:cr]; 

    CGImageRelease(cr); 

    [delegate imageCropper:self didFinishCroppingWithImage:cropped]; 
} 

有誰知道爲什麼發生這種情況?

謝謝!

回答

3

我認爲你首先使用[UIImage imageWithCGImage:cr scale:self.scale orientation:self.imageOrientation]而不是[UIImage imageWithCGImage:cr]來創建UIImage,這將取消許多方向問題,並重新檢查寬度和高度是否在正確的方向。