美文网首页
照片涂鸦

照片涂鸦

作者: 烈马痴情葱 | 来源:发表于2019-12-04 17:22 被阅读0次

    前一段时间由于公司项目需求(租车项目,需要验车拍照,标记车辆外观的损伤情况)需要对照片进行涂鸦处理,所以就简单研究了一下。示例demo
    主要是通过UIview的- (void)drawRect:(CGRect)rect 方法实现,通过点击手势来进行简单涂鸦。

    //顶部图片手势
    - (void)origviewGesture:(UITapGestureRecognizer *)Recognizer{
        if (self.currentExmpleImgName) {
            CGPoint point = [Recognizer locationInView:self.origview];
            CGRect rect = CGRectMake(point.x- 15* 0.5, point.y- 15* 0.5, 15, 15);
            NSLog(@"%@", NSStringFromCGPoint(point));
            
            for (NSDictionary *dic in self.allScrArray) {
                CGRect rectTmp = CGRectFromString(dic[@"rect"]);
                BOOL contains = CGRectContainsPoint(rectTmp, point);
                if (contains) {
                    [self.allScrArray removeObject:dic];
                    self.origview.imageArray = self.allScrArray;
                    return;
                }
            }
            
            NSMutableDictionary *tmpDic = [[NSMutableDictionary alloc] init];
            
            NSString *imgPoint = NSStringFromCGPoint(point);
            NSString *imgRect = NSStringFromCGRect(rect);
            
            [tmpDic setValue:imgRect forKey:@"rect"];
            [tmpDic setValue:imgPoint forKey:@"Point"];
            
            [tmpDic setValue:self.currentExmpleImgName forKey:@"imageName"];
            [self.allScrArray addObject:tmpDic];
            self.origview.imageArray = self.allScrArray;
        }else {
            return;
        }
    }
    

    for循环主要判断重复点击的位置,如果点击的位置已经涂鸦,就清除当前的,如果没有就先添加涂鸦。

    //保存
    - (void)saveBtnAction{
        //画布图片存储
        UIGraphicsBeginImageContext(self.origview.frame.size);
        [self.origview.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        NSData *imageData = [[NSData alloc]init];
        imageData = UIImageJPEGRepresentation(viewImage, 0.5);
        self.resultImag.image = viewImage;
    }
    

    直接将涂鸦照片生成UIImage。demo有视频操作

    相关文章

      网友评论

          本文标题:照片涂鸦

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