iOS 图片处理(截图,图片叠加(添加水印))

   //截图
UIGraphicsBeginImageCont extWithOptions(CGSizeMake(640, 960), YES, 0);
[self.layer renderInContext:UIGraphicsGetCurrentCont ext()];
UIImage *viewImage = UIGraphicsGetImageFromCu rrentImageContext();
UIGraphicsEndImageContex t();
CGImageRef imageRef = viewImage.CGImage;
CGRect rect =CGRectMake(100, 100, 200, 300);//这里可以设置想要截图的区域
CGImageRef imageRefRect =CGImageCreateWithImageIn Rect(imageRef, rect);
UIImage *sendImage = [[UIImage alloc] initWithCGImage:imageRefRect];
NSData *imageViewData = UIImagePNGRepresentation (sendImage);
NSArray *paths = NSSearchPathForDirectori esInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDirectory stringByAppendingPathCom ponent:@"result.png"];
      NSLog(@"%@", savedImagePath);
[imageViewData writeToFile:savedImagePath atomically:YES];
CGImageRelease(imageRefRect);


注:iOS7以后renderInContext:由drawViewHierarchyInRect:afterScreenUpdates:替代,可以判断。
同时可以截取整个scrollview得大小

- (UIImage *)imageViewFromScreen:(UIScrollView *)scrollView

{

    UIImage* image = nil;

    UIGraphicsBeginImageContext(scrollView.contentSize);

    {

        CGPoint savedContentOffset = scrollView.contentOffset;

        CGRect savedFrame = scrollView.frame;

        scrollView.contentOffset = CGPointZero;

        scrollView.frame = CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height);

        

        [scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];

        image = UIGraphicsGetImageFromCurrentImageContext();

        

        scrollView.contentOffset = savedContentOffset;

        scrollView.frame = savedFrame;

    }

    UIGraphicsEndImageContext();

    

    if (image != nil) {

        return image;

    }

    return nil;

}




图片叠加,比如:

// 添加logo水印

- (UIImage *)addlogoImage:(UIImage *)resizedImage

{

    UIGraphicsBeginImageContext(resizedImage.size);

    [resizedImage drawInRect:CGRectMake(0, 0, resizedImage.size.width, resizedImage.size.height)];

    

    UIImage *maskImage  = [UIImage imageNamed:@"dzh_logo.png"];

    

    [maskImage drawInRect:CGRectMake((resizedImage.size.width - maskImage.size.width)/2,

                                     (resizedImage.size.height - maskImage.size.height)/2,

                                     maskImage.size.width,

                                     maskImage.size.height)];

    

    UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return resultingImage;

 

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值