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

   //加载原始图片
    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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容