Вопрос по objective-c, xcode, ios, iphone, image-processing – Я хочу обрезать изображение, используя любой близкий путь, как UIBezierPath. это возможно в приложении iPhone?

5

Я хочу обрезать изображение в моем приложении iPhone, используя любой близкий путь, как UIBezierPath. я знаю, что это возможно, используя прямоугольник, но я хочу обрезать в другой форме. как я делаю одну фигуру, используя прикосновение, и хочу обрезать это изображение так, как это возможно. любое предложение или помощь. Заранее спасибо.

Маскировка - это способ получить. Посмотрите на этот короткий примерmobiledevelopertips.com/cocoa/how-to-mask-an-image.html msg
Я никогда не делал раньше, но я полагаю, вам нужно использовать маскирование магов. Попробуй прочитать этот яблочный докQuartz 2D Programming Guide, Возможно, вы могли бы создать прозрачное изображение с помощью bezierPath программно или с помощью взаимодействия с пользователем, а затем использовать это изображение в качестве маски для исходного изображения. Gabriele

Ваш Ответ

3   ответа
0

// В использовании кода:

  -(UIImage *)croppedImage

{
   UIImage *myImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();
[self.
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0,   0.0, 0.0);
_b_image = self.bg_imageview.image;

CGSize imageSize = _b_image.size;
CGRect imageRect = CGRectMake(0, 0, imageSize.width, imageSize.height);

UIGraphicsBeginImageContextWithOptions(imageSize, NO, [[UIScreen mainScreen] scale]);
[self.bezierPath addClip];
[_b_image drawInRect:imageRect];
UIImage *croppedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return croppedImage;}
2

должны создать путь, который будет использоваться в качестве границ для вашего нового изображения. Вы должны посмотреть на этовопрос.

CALayer* contentLayer = [CALayer layer];
[contentLayer setFrame:CGRectMake(0, 0, 80, 80)];
CAShapeLayer* mask = [CAShapeLayer layer];

CGMutablePathRef path = CGPathCreateMutable();

CGPathMoveToPoint(path, NULL, 10, 10);
CGPathAddLineToPoint(path, NULL, 10, 80);
CGPathAddLineToPoint(path, NULL, 80, 80);
CGPathAddLineToPoint(path, NULL, 80, 10);
mask.path = path;

[contentLayer setContents:(id)[[UIImage imageNamed:@"image.png"] CGImage]];
[contentLayer setMask:mask];          

[[self layer]addSublayer:contentLayer];

Что-то вроде этого.

Виталий1 можете плз выложить здесь код как обрезать изображение с помощью shapelayer .....
1

Похожие вопросы