100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > ios图片放大之后如何不模糊_ios uiimageview的长宽放大3倍后 图片变模糊的问题

ios图片放大之后如何不模糊_ios uiimageview的长宽放大3倍后 图片变模糊的问题

时间:2023-08-23 10:53:02

相关推荐

ios图片放大之后如何不模糊_ios uiimageview的长宽放大3倍后 图片变模糊的问题

如题

UIImageView *shareImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, IMG_WIDTH*Big_Time, IMG_HEIGHT*Big_Time)];

Big_Time是3 里面的图片的宽和高我也同比放大了3倍 但是就是有一些模糊 这是为什么

这是放大图片的函数

- (UIImage *)clipImageWithScaleWithsize:(CGSize)asize

{

UIImage *newimage;

UIImage *image = self;

if (nil == image) {

newimage = nil;

}

else{

CGSize oldsize = image.size;

CGRect rect;

if (asize.width/asize.height > oldsize.width/oldsize.height) {

rect.size.width = asize.width;

rect.size.height = asize.width*oldsize.height/oldsize.width;

rect.origin.x = 0;

rect.origin.y = (asize.height - rect.size.height)/2;

}

else{

rect.size.width = asize.height*oldsize.width/oldsize.height;

rect.size.height = asize.height;

rect.origin.x = (asize.width - rect.size.width)/2;

rect.origin.y = 0;

}

UIGraphicsBeginImageContext(asize);

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextClipToRect(context, CGRectMake(0, 0, asize.width, asize.height));

CGContextSetFillColorWithColor(context, [[UIColor clearColor] CGColor]);

UIRectFill(CGRectMake(0, 0, asize.width, asize.height));//clear background

[image drawInRect:rect];

newimage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

}

return newimage;

}

这是将UIimageview转化成图片

+(UIImage *)imageWithView:(UIView *)view

{

UIGraphicsBeginImageContext(view.bounds.size);

CGContextRef currnetContext = UIGraphicsGetCurrentContext();

[view.layer renderInContext:currnetContext];

// 从当前context中创建一个改变大小后的图片

UIImage* image = UIGraphicsGetImageFromCurrentImageContext();

// 使当前的context出堆栈

UIGraphicsEndImageContext();

return image;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。