Я пробовал как минимум 5 различных способов, которые я нашел здесь, но ничего не сработало. Все не менее 1-2 лет. С тех пор Apple что-то изменила в правилах?Crop Square UIImage в Rounded Rect
снимок экрана, обрезать его на площади, а затем я пытаюсь обрезать ее углы с радиусом 15.
Может быть, есть более серьезный и надежный способ сделать это с помощью OpenGL?
Попытка этого решения в настоящее время, но углы до сих пор отказываются урожай:
-(UIImage*) cropImage:(UIImage*)image withPath:(UIBezierPath*)path { // where the UIBezierPath is defined in the UIKit coordinate system (0,0) is top left
CGRect r = CGPathGetBoundingBox(path.CGPath); // the rect to draw our image in (minimum rect that the path occupies).
UIGraphicsBeginImageContextWithOptions(r.size, NO, 0.0); // begin image context, with transparency & the scale of the image.
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(ctx, -r.origin.x, -r.origin.y); // translate context so that when we add the path, it starts at (0,0).
CGContextAddPath(ctx, path.CGPath); // add path.
CGContextClip(ctx); // clip any future drawing to the path region.
[image drawInRect:(CGRect){CGPointZero, image.size}]; // draw image
UIImage* i = UIGraphicsGetImageFromCurrentImageContext(); // get image from context
UIGraphicsEndImageContext(); // clean up and finish context
return i; // return image
}
Просто чтобы прояснить, я пытаюсь на самом деле удалить пиксели кадрировать
И я передаю в. ..
[self cropImage:myImage withPath:[UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, screenImage.size.width, screenImage.size.height) cornerRadius:15.0]]
Даже если я попытаюсь значительно увеличить радиус угла, все равно ничего не произойдет.
Post, что вы пробовали. – Code
@code только что разместил его – Gukki5