欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

IOS 调整内存中的图片大小实例详解

程序员文章站 2024-02-13 19:28:34
ios 调整内存中的图片大小实例详解 在从网路download图片,或者从相册读取图片的时候,如果imageview的本身就是固定的300*200,那么载入2000*20...

ios 调整内存中的图片大小实例详解

在从网路download图片,或者从相册读取图片的时候,如果imageview的本身就是固定的300*200,那么载入2000*2000的图片是很浪费内存的。

2000*2000的内存占用是2000*2000*4bit

以下两个函数可以用来创建一个新的按照固定大小的图片。简单来说,就是core graphics来创建一个bitmap,然后生成一个图片。

- (uiimage*)imagewithimage:(uiimage*)image
       scaledtosize:(cgsize)newsize;
{
  uigraphicsbeginimagecontext( newsize );
  [image drawinrect:cgrectmake(0,0,newsize.width,newsize.height)];
  uiimage* newimage = uigraphicsgetimagefromcurrentimagecontext();
  uigraphicsendimagecontext();

  return newimage;
}
-(uiimage*)imagewithimage:(uiimage *)image
       resizefactor:(cgfloat)scale
{
  cgsize originalsize = image.size;
  cgsize newsize = cgsizemake(originalsize.width * scale, originalsize.height* scale);
  uigraphicsbeginimagecontext(newsize);
  [image drawinrect:cgrectmake(0,0,newsize.width, newsize.height)];
  uiimage * newimage = uigraphicsgetimagefromcurrentimagecontext();
  uigraphicsendimagecontext();
  return newimage;
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!