需整理,有些不錯的技巧
原文地址:http://blog.sina.com.cn/s/blog_64ea86850100n4lx.html
// 截屏
// UIGraphicsBeginImageContext(self.view.frame.size);
// [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
// UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
// UIGraphicsEndImageContext();
// UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
// 裁剪圖片
-(UIImage *) cutFromImage:(UIImage *)image inRect:(CGRect)rect{
CGImageRef sourceImageRef = [image CGImage];
CGImageRef newImageRef = CGImageCreateWithImageInRect(sourceImageRef, rect);
UIImage *newImage = [UIImage imageWithCGImage:newImageRef];
return newImage;
}
// 縮放圖片
- (UIImage *) scaleFromImage: (UIImage *) image toSize: (CGSize) size
{
UIGraphicsBeginImageContext(size);
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
// 相機的一些按鈕效果設定
#pragma mark get/show the UIView we want
//Find the view we want in camera structure.
-(UIView *)findView:(UIView *)aView withName:(NSString *)name{
Class cl = [aView class];
NSString *desc = [cl description];
if ([name isEqualToString:desc])
return aView;
for (NSUInteger i = 0; i < [aView.subviews count]; i++)
{
UIView *subView = [aView.subviews objectAtIndex:i];
subView = [self findView:subView withName:name];
if (subView)
return subView;
}
return nil;
}
#pragma mark addSomeElements
-(void)addSomeElements:(UIViewController *)viewController{
UIView *viewTop = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, screenWidth, (screenHeight-screenWidth)/2)];
[viewTop setAlpha:0.5f];
[viewTop setBackgroundColor:[UIColor blackColor]];
UIView *viewButtom = [[UIView alloc] initWithFrame:CGRectMake(0.0f, screenHeight-(screenHeight-screenWidth)/2, screenWidth, (screenHeight-screenWidth)/2)];
[viewButtom setAlpha:0.5f];
[viewButtom setBackgroundColor:[UIColor blackColor]];
//Add the motion view here, PLCameraView and picker.view are both OK
UIView *PLCameraView=[self findView:viewController.view withName:@"PLCameraView"];
[PLCameraView addSubview:viewTop];
[PLCameraView addSubview:viewButtom];
//Add label to cropOverlay
UIView *cropOverlay=[self findView:PLCameraView withName:@"PLCropOverlay"];
[cropOverlay addSubview:viewTop];
[cropOverlay addSubview:viewButtom];
[cropOverlay addSubview:m_viewActivity];
[cropOverlay addSubview:m_activity];
[viewTop release];
[viewButtom release];
//Get Bottom Bar
UIView *bottomBar=[self findView:PLCameraView withName:@"PLCropOverlayBottomBar"];
//Get ImageView For Save
UIImageView *bottomBarImageForSave = [bottomBar.subviews objectAtIndex:0];
//Get Button 0
UIButton *retakeButton= [bottomBarImageForSave.subviews objectAtIndex:0];
[retakeButton setTitle:@"重拍" forState:UIControlStateNormal];
//Get Button 1
UIButton *useButton= [bottomBarImageForSave.subviews objectAtIndex:1];
[useButton setTitle:@"儲存" forState:UIControlStateNormal];
//Get ImageViewBar For Camera
UIImageView *bottomBarImageForCamera = [bottomBar.subviews objectAtIndex:1];
//Set Bottom Bar Image
// UIImage *image=[[UIImage alloc] initWithContentsOfFile:[[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"BottomBar.png"]];
// bottomBarImageForCamera.image=image;