31.UIImageView 图片等比例压缩显示
来源:互联网 发布:劈照片的软件 编辑:程序博客网 时间:2024/06/06 02:19
1.写一个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;
}
- (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;
}
2.压缩图片到100kb一下
在
类里边写两个类方法
#pragma mark - 压缩图片
+ (UIImage *)compressImageWithImage:(UIImage *)chosenImage size:(CGSize)size
{
UIImage *imageTemp = [chosenImage scaleToSize:chosenImage size:size];
NSData *imgData = UIImagePNGRepresentation(imageTemp);
float fcom = 0.00;
// 判断image的data是不是大于100k
if (imgData.length]] ]]> IMAGE_COMPRESSION) {
fcom = IMAGE_COMPRESSION/imgData.length;
imgData = UIImageJPEGRepresentation(chosenImage, fcom);
imageTemp = [UIImage imageWithData:imgData];
}
return imageTemp;
}
3.求等比例的尺寸
//求比例的方法
+ (CGSize)equalProportionWithImageSize:(CGSize)imageSize imageViewSize:(CGSize)imageViewSize
{
NSInteger bek = 1;
NSInteger screenWidth = [[UIScreen mainScreen] currentMode].size.width;
if (screenWidth > 320) {
bek = 2;
}
CGFloat w1 = imageViewSize.width * bek;
CGFloat h1 = imageViewSize.height * bek;
CGFloat w2 = imageSize.width;
CGFloat h2 = imageSize.height;
CGSize mySize = CGSizeZero;
if (w1/h1 < w2/h2) {
mySize.width = w1;
mySize.height = mySize.width * h2 / w2;
}
else
{
mySize.height = h1;
mySize.width = mySize.height * w2 / h2;
}
return mySize;
}
+ (UIImage *)compressImageWithImage:(UIImage *)chosenImage size:(CGSize)size
{
UIImage *imageTemp = [chosenImage scaleToSize:chosenImage size:size];
NSData *imgData = UIImagePNGRepresentation(imageTemp);
float fcom = 0.00;
// 判断image的data是不是大于100k
if (imgData.length]] ]]> IMAGE_COMPRESSION) {
fcom = IMAGE_COMPRESSION/imgData.length;
imgData = UIImageJPEGRepresentation(chosenImage, fcom);
imageTemp = [UIImage imageWithData:imgData];
}
return imageTemp;
}
3.求等比例的尺寸
//求比例的方法
+ (CGSize)equalProportionWithImageSize:(CGSize)imageSize imageViewSize:(CGSize)imageViewSize
{
NSInteger bek = 1;
NSInteger screenWidth = [[UIScreen mainScreen] currentMode].size.width;
if (screenWidth > 320) {
bek = 2;
}
CGFloat w1 = imageViewSize.width * bek;
CGFloat h1 = imageViewSize.height * bek;
CGFloat w2 = imageSize.width;
CGFloat h2 = imageSize.height;
CGSize mySize = CGSizeZero;
if (w1/h1 < w2/h2) {
mySize.width = w1;
mySize.height = mySize.width * h2 / w2;
}
else
{
mySize.height = h1;
mySize.width = mySize.height * w2 / h2;
}
return mySize;
}
4.调用方法
UIImageView *imageView = [[UIImageView alloc] init];
UIImage *image = [UIImage imageWithContentsOfFile:pathTemp];
CGSize mySize = [TTPublicClassMethod equalProportionWithImageSize:image.size imageViewSize:cell.imageView.frame.size];
imageView .image = [TTPublicClassMethod compressImageWithImage:image size:mySize];
imageView .image = [TTPublicClassMethod compressImageWithImage:image size:mySize];
0 0
- 31.UIImageView 图片等比例压缩显示
- 等比例压缩图片
- 图片等比例压缩
- 图片等比例压缩
- IOS UIImageView等比例填充显示
- ios图片等比例自适应UIImageview
- js图片等比例压缩
- 图片等比例压缩方法
- iOS等比例压缩图片
- php图片等比例压缩
- 上传 图片 等比例压缩
- java等比例压缩图片
- php等比例压缩图片
- 上传等比例压缩图片
- python图片等比例压缩
- JS等比例显示图片
- 图片上传判断width 等比例压缩
- 图片上传判断width 等比例压缩
- WinForm中新开一个线程操作窗体上的控件(跨线程操作控件)GOOD
- 毕业找工作+实习分享
- [Linux]Fedora 20 安装配置笔记 转载CSDN Zemo
- reading list
- 掌握HTML5中的多媒体--视频(video)
- 31.UIImageView 图片等比例压缩显示
- uvalive 4329 Ping pong---树状数组
- 如何当基层小领导?
- LNK2005 的一种情况吧
- Twenproxy介绍
- 掌握HTML5中的多媒体--音频(audio)
- C语言中的时间
- 座标系线性变换
- yii框架 控制器传值给模板