专门玩中老年妇女,前列腺专科,蒋文浩
方法一:
- (uiimage*)scalefromimage:(uiimage*)image scaledtosize:(cgsize)newsize
{
cgsize imagesize = image.size;
cgfloat width = imagesize.width;
cgfloat height = imagesize.height;
if (width <= newsize.width && height <= newsize.height){
return image;
}
if (width == 0 || height == 0){
return image;
}
cgfloat widthfactor = newsize.width / width;
cgfloat heightfactor = newsize.height / height;
cgfloat scalefactor = (widthfactor<heightfactor?widthfactor:heightfactor);
cgfloat scaledwidth = width * scalefactor;
cgfloat scaledheight = height * scalefactor;
cgsize targetsize = cgsizemake(scaledwidth,scaledheight);
uigraphicsbeginimagecontext(targetsize);
[image drawinrect:cgrectmake(0,0,scaledwidth,scaledheight)];
uiimage* newimage = uigraphicsgetimagefromcurrentimagecontext();
uigraphicsendimagecontext();
return newimage;
}
方法二:
.h具体code
#import <foundation/foundation.h>
@interface uiimage (uiimageext)
- (uiimage *)scaletosize:(uiimage *)img size:(cgsize)size;
- (uiimage *)imagebyscalingandcroppingforsize:(cgsize)targetsize;
@end
.m具体code
#import "uiimageext.h"
@implementation uiimage (uiimageext)
- (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*)imagebyscalingandcroppingforsize:(cgsize)targetsize
{
uiimage *sourceimage = self;
uiimage *newimage = nil;
cgsize imagesize = sourceimage.size;
cgfloat width = imagesize.width;
cgfloat height = imagesize.height;
cgfloat targetwidth = targetsize.width;
cgfloat targetheight = targetsize.height;
cgfloat scalefactor = 0.0;
cgfloat scaledwidth = targetwidth;
cgfloat scaledheight = targetheight;
cgpoint thumbnailpoint = cgpointmake(0.0,0.0);
if (cgsizeequaltosize(imagesize, targetsize) == no)
{
cgfloat widthfactor = targetwidth / width;
cgfloat heightfactor = targetheight / height;
if (widthfactor > heightfactor)
scalefactor = widthfactor; // scale to fit height
else
scalefactor = heightfactor; // scale to fit width
scaledwidth = width * scalefactor;
scaledheight = height * scalefactor;
// center the image
if (widthfactor > heightfactor)
{
thumbnailpoint.y = (targetheight - scaledheight) * 0.5;
}
else
if (widthfactor < heightfactor)
{
thumbnailpoint.x = (targetwidth - scaledwidth) * 0.5;
}
}
uigraphicsbeginimagecontext(targetsize); // this will crop
cgrect thumbnailrect = cgrectzero;
thumbnailrect.origin = thumbnailpoint;
thumbnailrect.size.width = scaledwidth;
thumbnailrect.size.height = scaledheight;
[sourceimage drawinrect:thumbnailrect];
newimage = uigraphicsgetimagefromcurrentimagecontext();
if(newimage == nil)
nslog(@"could not scale image");
//pop the context to get back to the default
uigraphicsendimagecontext();
return newimage;
}
@end
方法三:(本人项目中使用的方法)
-(uiimage *) imagecompressforwidth:(uiimage *)sourceimage targetwidth:(cgfloat)definewidth
{
cgsize imagesize = sourceimage.size;
cgfloat width = imagesize.width;
cgfloat height = imagesize.height;
cgfloat targetwidth = definewidth;
cgfloat targetheight = (targetwidth / width) * height;
uigraphicsbeginimagecontext(cgsizemake(targetwidth, targetheight));
[sourceimage drawinrect:cgrectmake(0,0,targetwidth, targetheight)];
uiimage* newimage = uigraphicsgetimagefromcurrentimagecontext();
uigraphicsendimagecontext();
return newimage;
}
以上所述就是本文的全部内容了,希望大家能够喜欢。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!!
点击进行留言回复
相关文章:
-
-
-
-
-
-
iOS实现转盘效果
本文实例为大家分享了ios实现转盘效果的具体代码,供大家参考,具体内容如下demo下载地址: ios转盘效果功能:实现了常用的ios转盘效果,轮盘抽奖效果的实现...
[阅读全文]
-
iOS开发实现转盘功能
本文实例为大家分享了ios实现转盘功能的具体代码,供大家参考,具体内容如下今天给同学们讲解一下一个转盘选号的功能,直接上代码直接看viewcontroller#...
[阅读全文]
-
iOS实现轮盘动态效果
本文实例为大家分享了ios实现轮盘动态效果的具体代码,供大家参考,具体内容如下一个常用的绘图,主要用来打分之类的动画,效果如下。主要是ios的绘图和动画,本来想...
[阅读全文]
-
iOS实现九宫格连线手势解锁
本文实例为大家分享了ios实现九宫格连线手势解锁的具体代码,供大家参考,具体内容如下demo下载地址:效果图:核心代码://// clockview.m// 手...
[阅读全文]
-
iOS实现卡片堆叠效果
本文实例为大家分享了ios实现卡片堆叠效果的具体代码,供大家参考,具体内容如下如图,这就是最终效果。去年安卓5.0发布的时候,当我看到安卓全新的material...
[阅读全文]
-
网友评论