美文网首页
图片切割 (给定一张图片, 截取指定区域范围内的图片,给图片添加

图片切割 (给定一张图片, 截取指定区域范围内的图片,给图片添加

作者: 努力奔跑的小男孩 | 来源:发表于2017-09-30 16:00 被阅读73次
   //加载原始图片
    UIImage *orginalImage = [UIImage imageNamed:@""];
    // 给定一张图片, 截取指定区域范围内的图片
    CGFloat X = 0;
    CGFloat Y = 0;
    CGFloat clipH = orginalImage.size.height * [UIScreen mainScreen].scale;
    CGFloat clipW = orginalImage.size.width / 12 * [UIScreen mainScreen].scale;
    // CGImageCreateWithImageInRect 使用的坐标都是像素点
    // iOS使用的都是点坐标
    CGImageRef clipRef = CGImageCreateWithImageInRect(orginalImage.CGImage, CGRectMake(X, Y, clipW, clipH));
    [btn setImage:[UIImage imageWithCGImage:clipRef] forState:UIControlStateNormal];

注意:1.CGImageCreateWithImageInRect 使用的坐标都是像素点
2.iOS使用的都是点坐标需要 * [UIScreen mainScreen].scale

给图片添加水印

- (void)viewDidLoad {
    [super viewDidLoad];
    // 0.加载图片
    UIImage *image = [UIImage imageNamed:@"shuiyin.jpg"];
    // 1.自己手动开启一个跟图片原始大小的上下文
    // opaque不透明
    UIGraphicsBeginImageContextWithOptions(image.size, false, 0);
    // 2.把图片绘制到上下文
    [image drawAtPoint:CGPointZero];
    // 3.把文字绘制到上下文
    NSString *str = @"图片添加水印";
    NSDictionary *attributsDic = @{NSFontAttributeName:[UIFont systemFontOfSize:15],
                                   NSForegroundColorAttributeName:[UIColor cyanColor]
                                   };
    CGPoint point = CGPointMake(image.size.width * 0.5, image.size.height * 0.5);
    [str drawAtPoint:point withAttributes:attributsDic];
    // 4.从上下文当中生成一张图片(把上下文当中所有绘制的内容返回一张图片)
    UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();
    // 5.关闭上下文
    UIGraphicsEndImageContext();
    self.imageView.image = newImage;
}

相关文章

网友评论

      本文标题:图片切割 (给定一张图片, 截取指定区域范围内的图片,给图片添加

      本文链接:https://www.haomeiwen.com/subject/txtnextx.html