ios 创建图像缩略图
来源:互联网 发布:python字符串变成列表 编辑:程序博客网 时间:2024/05/18 23:24
缩略图在使用图像的任何应用程序中都发挥着重要的作用。我们常需要调整图像的大小以将其放入一个较小的空间。
当然,你可以装载一个完全填充有原图的 UIImangeView 并调整其框架的大小,不过将图像重新绘制为占用较小字节
的图像可节省大量内存。重绘缩略图可使用以下3种方法,分别是调整、居中、填充方式。
1、保持图像比例不变的同时调整其大小。需要根据图像的长宽比在其四周留出一些额外区域,用透明像素为图像消关。
2、抽取部分图像来匹配可用空间。并裁剪掉落在像素区外的任何元素。
3、通过匹配可用空间的长度和宽度来填充图像。每个像素都被使用,但是图像将水平或垂直裁剪。
源代码:
//计算适合的大小。并保留其原始图片大小
+ (CGSize) fitSize: (CGSize)thisSize inSize: (CGSize) aSize
{
CGFloat scale;
CGSize newsize = thisSize;
if (newsize.height && (newsize.height > aSize.height))
{
scale = aSize.height / newsize.height;
newsize.width *= scale;
newsize.height *= scale;
}
if (newsize.width && (newsize.width >= aSize.width))
{
scale = aSize.width / newsize.width;
newsize.width *= scale;
newsize.height *= scale;
}
return newsize;
}
//返回调整的缩略图
+ (UIImage *) image: (UIImage *) image fitInSize: (CGSize) viewsize
{
// calculate the fitted size
CGSize size = [ImageHelper fitSize:image.size inSize:viewsize];
UIGraphicsBeginImageContext(viewsize);
float dwidth = (viewsize.width - size.width) / 2.0f;
float dheight = (viewsize.height - size.height) / 2.0f;
CGRect rect = CGRectMake(dwidth, dheight, size.width, size.height);
[image drawInRect:rect];
UIImage *newimg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newimg;
}
//返回居中的缩略图
+ (UIImage *) image: (UIImage *) image centerInSize: (CGSize) viewsize
{
CGSize size = image.size;
UIGraphicsBeginImageContext(viewsize);
float dwidth = (viewsize.width - size.width) / 2.0f;
float dheight = (viewsize.height - size.height) / 2.0f;
CGRect rect = CGRectMake(dwidth, dheight, size.width, size.height);
[image drawInRect:rect];
UIImage *newimg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newimg;
}
//返回填充的缩略图
+ (UIImage *) image: (UIImage *) image fillSize: (CGSize) viewsize
{
CGSize size = image.size;
CGFloat scalex = viewsize.width / size.width;
CGFloat scaley = viewsize.height / size.height;
CGFloat scale = MAX(scalex, scaley);
UIGraphicsBeginImageContext(viewsize);
CGFloat width = size.width * scale;
CGFloat height = size.height * scale;
float dwidth = ((viewsize.width - width) / 2.0f);
float dheight = ((viewsize.height - height) / 2.0f);
CGRect rect = CGRectMake(dwidth, dheight, size.width * scale, size.height * scale);
[image drawInRect:rect];
UIImage *newimg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newimg;
}
iOS 图片缩略图和缩放
2013-03-24 20:59:40| 分类: iphone|举报|字号 订阅
- ios 创建图像缩略图
- ios 创建图像缩略图
- ci框架codeIgniter创建缩略图、图像裁剪、旋转、添加水印
- iOS教程:使用MKNetworkKit图像高速缓存和加载缩略图
- 创建缩略图
- ios 缩略图
- IOS缩略图
- Qt 显示图像图像缩略图
- 获取图像的缩略图
- anroid获取图像缩略图
- ios UIScrollView 创建多图像分页滚动
- 转贴:创建缩略图
- ASP.NET创建缩略图
- GDI+ 创建缩略图
- 创建图片的缩略图
- php 创建图片缩略图
- C# 创建缩略图
- php 创建缩略图函数
- oracle教程之Oracle关于表空间(tablespaces)
- php进制之间相互转换
- String\StringBuffer\StringBulid简介_包装类_Byte_Short_Integer_Long/day15
- SQLite 入门教程(三)好多约束 Constraints
- Tomcat内存溢出
- ios 创建图像缩略图
- maven plugins 教程
- java---线程内数据共享
- 总结:form中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别
- JSON解析全面综合,实用篇
- Servlet3的问题
- 实用模板
- double free *** set a breakpoint in malloc_error_break to debug
- SDL2.0版本变动后的一些改动