您的位置:首页 > 移动开发 > IOS开发

ios图片处理

2014-06-15 20:09 218 查看
圖片的處理大概就分這幾樣了截圖(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就開放了

另外儲存到手機的圖片庫裡, 必須在實機使用, 模擬器無法使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  图片处理