我試圖從UIImageView
獲得UIImage
的可見部分。 UIImageView
需要整個屏幕。捏&潘姿態被添加到UIImageView
。所以,用戶可以平移/縮放imageview。平移/縮放後,我只想裁剪圖像視圖的可見部分。我已經嘗試了很多方法。但它讓我錯誤地認識了圖像的一部分。iOS獲取圖像的可見部分爲UIImageView
謝謝提前。
我試圖從UIImageView
獲得UIImage
的可見部分。 UIImageView
需要整個屏幕。捏&潘姿態被添加到UIImageView
。所以,用戶可以平移/縮放imageview。平移/縮放後,我只想裁剪圖像視圖的可見部分。我已經嘗試了很多方法。但它讓我錯誤地認識了圖像的一部分。iOS獲取圖像的可見部分爲UIImageView
謝謝提前。
謝謝所有。我已經想出瞭解決方案。這是我用來獲取圖像可見部分的代碼。 (縮放或平移,由於它採取了整個屏幕時,請保持它在你的心中的形象是完全不可見)
- (UIImage *)cropVisiblePortionOfImageView:(UIImageView *)imageView {
CGFloat zoomScaleX=imageView.frame.size.width/initialWidth;
CGFloat zoomScaleY=imageView.frame.size.height/initialHeight;
CGSize zoomedSize=CGSizeMake(initialWidth*zoomScaleX,initialHeight*zoomScaleY);
UIGraphicsBeginImageContext(zoomedSize);
[imageView.image drawInRect:CGRectMake(0, 0, zoomedSize.width, zoomedSize.height)];
UIImage *zoomedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIGraphicsBeginImageContext(CGSizeMake(initialWidth, initialHeight));
[zoomedImage drawAtPoint:CGPointMake(imageView.frame.origin.x, imageView.frame.origin.y)];
UIImage *cropedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return cropedImage;
}
包括QuartzCore框架到您的項目和實施此方法從您的圖像視圖獲取圖像的可見部分: (一注:我的意思是你在你的項目中使用ARC)
#import <QuartzCore/QuartzCore.h>
- (UIImage*)imageFromImageView:(UIImageView*)imageView
{
UIGraphicsBeginImageContext(imageView.frame.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextRotateCTM(context, 2*M_PI);
[imageView.layer renderInContext:context];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
謝謝您的回答。 –
非常感謝#DizAsm。它適用於我的imageview。我爲我的imageview設置了下面的屬性。[imageView setClipsToBounds:YES]; 和imageView.contentMode = UIViewContentModeScaleAspectFill。從imageview可見區域獲取精確圖像非常困難。現在它完美地工作。 – Rajesh
請分享您的裁剪代碼,感謝 – doNotCheckMyBlog