ios UIImage缩放

将UIImage缩放到指定大小尺寸:

- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{

// 创建一个bitmap的context

// 并把它设置成为当前正在使用的context

UIGraphicsBeginImageContext(size);

// 绘制改变大小的图片

[img drawInRect:CGRectMake(0, 0, size.width, size.height)];

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

UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();

// 使当前的context出堆栈

UIGraphicsEndImageContext();

// 返回新的改变大小后的图片

return scaledImage;

}

根据图片的大小等比例压缩返回图片

02+(UIImage *)fitSmallImage:(UIImage *)image

03{

04    if (nil == image)

05    {

06        return nil;

07    }

08    if (image.size.width

09    {

10        return image;

11    }

12    CGSize size = [DSMDataConvert fitsize:image.size];

13    UIGraphicsBeginImageContext(size);

14    CGRect rect = CGRectMake(0, 0, size.width, size.height);

15    [image drawInRect:rect];

16    UIImage *newing = UIGraphicsGetImageFromCurrentImageContext();

17    UIGraphicsEndImageContext();

18    return newing;

19}

+ (CGSize)fitsize:(CGSize)thisSize

02{

03    if(thisSize.width == 0 && thisSize.height ==0)

04        return CGSizeMake(0, 0);

05    CGFloat wscale = thisSize.width/IMAGE_MAX_SIZE_WIDTH;

06    CGFloat hscale = thisSize.height/IMAGE_MAX_SIZE_GEIGHT;

07    CGFloat scale = (wscale>hscale)?wscale:hscale;

08    CGSize newSize = CGSizeMake(thisSize.width/scale, thisSize.height/scale);

09    return newSize;

10}

1. 用下面的方法选中你要压缩的图片,然后输出到sentencePic这个uiimageview中,你调用这个sentencepic发送到服务器就行了。

2. 设置压缩比例大小的是这个:imageFrame。你在viewdidload中,CGRect   imageFrame = sentencePic.frame; //其中sentencePic.frame是你想要截取图片的尺寸。自行设定

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
    
    UIImage *chosenImage = [info objectForKey:UIImagePickerControllerEditedImage];
    UIImage *sharkenImage = shrinkImage(chosenImage, imageFrame.size);
    sentencePic.image = sharkenImage;
    
    [picker dismissModalViewControllerAnimated:YES];
}

static UIImage *shrinkImage(UIImage *original, CGSize size){
    CGFloat scale = [UIScreen mainScreen].scale;
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    
    CGContextRef context = CGBitmapContextCreate(nil, size.width *scale, size.height *scale, 8, 0, colorSpace, kCGImageAlphaPremultipliedFirst);//NULL
    CGContextDrawImage(context, CGRectMake(0, 0, size.width *scale, size.height *scale), original.CGImage);
    CGImageRef shrunken = CGBitmapContextCreateImage(context);
    UIImage *final = [UIImage imageWithCGImage:shrunken];
    CGContextRelease(context);
    CGImageRelease(shrunken);
    return final;
}

时间: 2024-10-10 14:23:29

ios UIImage缩放的相关文章

iOS 将一个UIImage缩放到指定Size

这方法挺实用的,直接调用就可以得到想要的size. //将一个UIImage缩放变换到指定Size -(UIImage*) OriginImage:(UIImage *)image scaleToSize:(CGSize)size { UIGraphicsBeginImageContext(size); [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; UIImage* scaledImage = UIGraphicsGe

iOS UIImage(转载)

UIImage 是一种比较有难度的显示图片的方式,UIImage 可以从文件或者 ImageData 中来显示图片. 如果可以图形化操作,建议使用 ImageView 这个 Control 来显示图片,毕竟是图形化可视操作. 当从 ImageData 中创建图片的时候,一定要注意图片的大小和尺寸,因为这样是存在内存中,如果图片过大或者图片过多,很容易引起内存泄漏:如果是从 文件 中选择图片,则可以手工选择图片是否缓存在内存中. UIImage 支持的图片类型有:tiff,tif,jpg,jpeg

UIImage 缩放等效果处理

//等比率缩放 - (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{ // 创建一个bitmap的context // 并把它设置成为当前正在使用的context UIGraphicsBeginImageContext(size); // 绘制改变大小的图片 [img drawInRect:CGRectMake(0, 0, size.width, size.height)]; // 从当前context中创建一个改变大小后的图片 U

IOS视图缩放显示动画效果

效果:视图从大--小缩放显示/小--大 (只是比例问题) 方法1.直接show出view的时候:把下面的这段代码加到viewController或者view出现的时候就OK self.view.transform = CGAffineTransformMakeScale(1.0f, 1.0f);//将要显示的view按照正常比例显示出来  [UIView beginAnimations:nil context:UIGraphicsGetCurrentContext()];  [UIView se

iOS图片 缩放、剪裁、自适应剪裁、保存到相册

原文链接: iOS图片 缩放.剪裁.自适应剪裁.保存到相册 简书主页:http://www.jianshu.com/users/37f2920f6848 Github主页:https://github.com/MajorLMJ iOS开发者公会-技术1群 QQ群号:87440292 iOS开发者公会-技术2群 QQ群号:232702419 iOS开发者公会-议事区   QQ群号:413102158

IOS UIImage类方法总结

IOS中对图片的处理 UIImage 相信做项目时肯定会有用到 UIImage 这个类,那我们就来看一下这个类中都有什么内容. 其实这篇文章就是在看文档的时候想记录一下文档中得方法. UIImage 继承于NSObject 下面介绍一下UIImage中的方法 首先是我们最常用的 通过图片的文件名来获取这个图片 + (UIImage *)imageNamed:(NSString *)name //要注意的是这个方法适用于已经导入到工程中的图片 创建新图片 1.+ (UIImage *)imageW

iOS图片缩放

iOS 图片的缩放看起来是很奇怪的,这是我用的方法,时候流的方法吗?如果到家对此有研究,很希望得到你们的帮助. -(UIImage*) OriginImage:(UIImage *)image scaleToSize:(CGSize)size { UIGraphicsBeginImageContext(size); //size 为CGSize类型,即你所需要的图片尺寸 [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; U

UIImage 缩放 (转)

http://stackoverflow.com/questions/1434714/another-iphone-cgbitmapcontextcreateimage-leak 下面这个方法 可以改变图片大小 自适应,自己传参数吧 - (UIImage *)rescaleImageToSize:(CGSize)size { CGRect rect = CGRectMake(0.0, 0.0, size.width, size.height); UIGraphicsBeginImageConte

iOS UIimage的拉伸的三种方法

第一种方法 // - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight __TVOS_PROHIBITED; //leftCapWidth:左边不拉伸区域 //topCapHeight:上面不拉伸区域 UIImage *image =[UIImageimageNamed:@"chatdetail_info_other"]; UI