博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIView / UIImage 截圖(capture), 縮放(scale), 設定大小(resize), 儲存(sa...
阅读量:5785 次
发布时间:2019-06-18

本文共 1866 字,大约阅读时间需要 6 分钟。

寫iOS App我最怕遇到的三樣處理, 大概就是1.影音, 2.網路 3.圖片

沒了這三樣還能叫App嗎? 大概是我coding功力不夠吧
今天來講講圖片的處理...
圖片的處理大概就分這幾樣了截圖(capture), 縮放(scale), 設定大小(resize), 儲存(save)
這幾樣比較好處理, 另外還有濾鏡, 擦拭等, 以後再說
在這個Demo code裡, 我寫了幾個方法
1.等比率縮放
- (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize
{
 

UIGraphicsBeginImageContext(CGSizeMake(image.size.width*scaleSize,image.size.height*scaleSize);
 [image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height *scaleSize)];
 UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
 UIGraphicsEndImageContext();
 return scaledImage;
}
2.自定長寬
- (UIImage *)reSizeImage:(UIImage *)image toSize:(CGSize)reSize
{
 UIGraphicsBeginImageContext(CGSizeMake(reSize.width, reSize.height));
 [image drawInRect:CGRectMake(0, 0, reSize.width, reSize.height)];
 UIImage *reSizeImage = UIGraphicsGetImageFromCurrentImageContext();
 UIGraphicsEndImageContext();
 return reSizeImage;
}
3.處理某個特定View
只要是繼承UIVIEW的object 都可以處理
必須先import QuzrtzCore.framework
-(UIImage*)captureView:(UIView *)theView
{
 CGRect rect = theView.frame;
 UIGraphicsBeginImageContext(rect.size);
 CGContextRef context = UIGraphicsGetCurrentContext();
 [theView.layer renderInContext:context];
 UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
 UIGraphicsEndImageContext();
 return img;
}
4.儲存圖片
儲存圖片這裡我分成儲存到app的文件裡, 儲存到手機的圖片庫裡
儲存到app
NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"image.png"];
[UIImagePNGRepresentation(image) writeToFile:path atomically:YES];
這樣就把你要處理的圖片, 以image.png這個檔名存到app home底下的Documents目錄裡
儲存到手機圖片庫裡
CGImageRef screen = UIGetScreenImage();
UIImage* image = [UIImage imageWithCGImage:screen];
CGImageRelease(screen);
UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);
UIGetScreenImage()原本是private(私有)api, 用來 截取整個畫面
不過SDK 4.0後apple就開放了
另外儲存到手機的圖片庫裡,  必須在實機使用, 模擬器無法使用
来自: 

转载地址:http://zavyx.baihongyu.com/

你可能感兴趣的文章
ios View之间的切换 屏幕旋转
查看>>
typedef BOOL(WINAPI *MYFUNC) (HWND,COLORREF,BYTE,DWORD);语句的理解
查看>>
jsp 特殊标签
查看>>
[BZOJ] 1012 [JSOI2008]最大数maxnumber
查看>>
gauss消元
查看>>
多线程-ReentrantLock
查看>>
数据结构之链表与哈希表
查看>>
IIS7/8下提示 HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求...
查看>>
http返回状态码含义
查看>>
响应式网站对百度友好关键
查看>>
洛谷P2179 骑行川藏
查看>>
(十八)js控制台方法
查看>>
VB关键字总结
查看>>
android代码生成jar包并混淆
查看>>
一个不错的vue项目
查看>>
屏蔽指定IP访问网站
查看>>
python学习 第一天
查看>>
根据毫秒数计算出当前的“年/月/日/时/分/秒/星期”并不是件容易的事
查看>>
python的图形模块PIL小记
查看>>
shell变量子串
查看>>