2009-09-28 5 views

ответ

7

Если вы знаете, в какой области вы хотите удалить, вы можете создать новое изображение того же размера, установить маску на полное изображение за вычетом области, которую хотите удалить, нарисовать полное изображение в новом изображении и используйте это как новое изображение. Чтобы отменить, просто используйте предыдущее изображение.

Редактировать

Пример кода. Скажем, область, которую вы хотите удалить из поля зрения изображения imgView задается с помощью erasePath:

- (void) clipImage 
{ 
    UIImage *img = imgView.image; 
    CGSize s = img.size; 
    UIGraphicsBeginImageContext(s); 
    CGContextRef g = UIGraphicsGetCurrentContext(); 
    CGContextAddPath(g,erasePath); 
    CGContextAddRect(g,CGRectMake(0,0,s.width,s.height)); 
    CGContextEOClip(g); 
    [img drawAtPoint:CGPointZero]; 
    imageView.image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
} 
+1

вы можете опубликовать исходный образец кода для этого –

+1

Thanx для образца кода, но в CGContextAddPath (г, erasePath); Как получить Erase путь? Пожалуйста, помогите мне. – Dhawal

+2

Привет @ RahulVyas, @ Dhaval, @ Ed Marty вы можете рассказать мне, как вы получаете ErasePath, если у вас есть .. –

1
UIGraphicsBeginImageContext(imgBlankView.frame.size); 
[imgBlankView.image drawInRect:CGRectMake(0, 0, imgBlankView.frame.size.width, imgBlankView.frame.size.height)]; 

CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); 
CGContextSetLineWidth(UIGraphicsGetCurrentContext(),lineWidth); 
CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeClear); 

CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), red, green, blue, 1.0); 
CGContextBeginPath(UIGraphicsGetCurrentContext()); 
CGContextSetShouldAntialias(UIGraphicsGetCurrentContext(), YES); 

CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint1.x, lastPoint1.y); 
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y); 
CGContextStrokePath(UIGraphicsGetCurrentContext()); 
imgBlankView.image = UIGraphicsGetImageFromCurrentImageContext(); 

UIGraphicsEndImageContext(); 

 Смежные вопросы

  • Нет связанных вопросов^_^