您的位置:首页 > 其它

图片截取居中显示

2015-10-23 18:04 309 查看
/**

 * 截取部分图像

 *

 **/
-(UIImage*)getSubImage:(UIImage *)image mCGRect:(CGRect)mCGRect centerBool:(BOOL)centerBool
{

    /*如若centerBool为Yes则是由中心点取mCGRect范围的图片*/

    float imgwidth = image.size.width;
   
float imgheight = image.size.height;
   
float viewwidth = mCGRect.size.width;
   
float viewheight = mCGRect.size.height;
   
CGRect rect;
   
if(centerBool)
        rect =
CGRectMake((imgwidth-viewwidth)/2, (imgheight-viewheight)/2, viewwidth, viewheight);
   
else{
       
if (viewheight < viewwidth) {
           
if (imgwidth <= imgheight) {
                rect =
CGRectMake(0,
0, imgwidth, imgwidth*viewheight/viewwidth);
            }else {
               
float width = viewwidth*imgheight/viewheight;
               
float x = (imgwidth - width)/2 ;
               
if (x > 0) {
                    rect =
CGRectMake(x, 0, width, imgheight);
                }else {
                    rect =
CGRectMake(0,
0, imgwidth, imgwidth*viewheight/viewwidth);
                }
            }
        }else {
           
if (imgwidth <= imgheight) {
               
float height = viewheight*imgwidth/viewwidth;
               
if (height < imgheight) {
                    rect =
CGRectMake(0,
0, imgwidth, height);
                }else {
                    rect =
CGRectMake(0,
0, viewwidth*imgheight/viewheight, imgheight);
                }
            }else {
               
float width = viewwidth*imgheight/viewheight;
               
if (width < imgwidth) {
                   
float x = (imgwidth - width)/2 ;
                    rect =
CGRectMake(x, 0, width, imgheight);
                }else {
                    rect =
CGRectMake(0,
0, imgwidth, imgheight);
                }
            }
        }
    }

    
   
CGImageRef subImageRef =
CGImageCreateWithImageInRect(image.CGImage, rect);
   
CGRect smallBounds =
CGRectMake(0,
0, CGImageGetWidth(subImageRef),
CGImageGetHeight(subImageRef));

    

    UIGraphicsBeginImageContext(smallBounds.size);

    CGContextRef context =
UIGraphicsGetCurrentContext();
   
CGContextDr
cbff
awImage(context, smallBounds, subImageRef);
   
UIImage* smallImage = [UIImage
imageWithCGImage:subImageRef];

    UIGraphicsEndImageContext();

    
   
return smallImage;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: