UIImage 虽然可以加载,显示各种格式的位图,甚至可以同时加载图片,接下来依次播放多张图片形成动画。UIimage功能依然是有限的,它不能对图片进行缩放、旋转,不能“挖取”原图片的制定区域等,这些功能可以借助Quartz2D的CGImageRef来实现。
UIImage与CGImageRef之间可以相互转换,CGImageRef并不是面向对象的API,也不是类,只是一个指针类型,Quartz2D对CGImageRef的定义是Typedef Struct CGImage *CGImageRef
在view上显示一张图片时,由于frame大小的限制,显示的图片可能会产生压缩的感觉,样子会不好看,因此我们会将图片进行切割。然后当点击图片时,再全部展示到view上。
UIImage *image = [UIImageimageNamed:@"10.png"];
//首先要有一张图片,生成一个image
CGRect rects = CGRectMake(image.size.width *0.3, image.size.height *0.3, 100,200);
//通过image.size获得图片的大小,根据自己的需要获得自己想要切图的部分的坐标
CGImageRef image1 =CGImageCreateWithImageInRect([imageCGImage], rects);
//切割
UIImage *image2 = [UIImageimageWithCGImage:image1];
UIImageView *view = [[UIImageViewalloc]initWithFrame:CGRectMake(0,0,100, 200)];
view.image = image2;
[self.view addSubview:view];
这样就会在view上显示一张切割之后的图片。