mirror of
https://github.com/danog/Telegram.git
synced 2024-11-26 20:14:43 +01:00
46 lines
2.0 KiB
Mathematica
46 lines
2.0 KiB
Mathematica
|
#import "TGRoundImage.h"
|
||
|
|
||
|
UIImage *TGRoundImage(UIImage *sourceImage, CGSize size)
|
||
|
{
|
||
|
UIGraphicsBeginImageContextWithOptions(size, false, 0.0f);
|
||
|
CGContextRef context = UIGraphicsGetCurrentContext();
|
||
|
|
||
|
[sourceImage drawInRect:CGRectMake(0.0f, 0.0f, size.width, size.height) blendMode:kCGBlendModeCopy alpha:1.0f];
|
||
|
|
||
|
CGContextSetBlendMode(context, kCGBlendModeCopy);
|
||
|
CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
|
||
|
|
||
|
CGContextBeginPath(context);
|
||
|
CGContextMoveToPoint(context, 0.0f, size.height / 2.0f);
|
||
|
CGContextAddArcToPoint(context, 0.0f, 0.0f, size.width / 2.0f, 0.0f, size.width / 2.0f);
|
||
|
CGContextAddLineToPoint(context, 0.0f, 0.0f);
|
||
|
CGContextAddLineToPoint(context, 0.0f, size.height / 2.0f);
|
||
|
CGContextFillPath(context);
|
||
|
|
||
|
CGContextBeginPath(context);
|
||
|
CGContextMoveToPoint(context, size.width / 2.0f, 0.0f);
|
||
|
CGContextAddArcToPoint(context, size.width, 0.0f, size.width, size.height / 2.0f, size.width / 2.0f);
|
||
|
CGContextAddLineToPoint(context, size.width, 0.0f);
|
||
|
CGContextAddLineToPoint(context, size.width / 2.0f, 0.0f);
|
||
|
CGContextFillPath(context);
|
||
|
|
||
|
CGContextBeginPath(context);
|
||
|
CGContextMoveToPoint(context, size.width, size.height / 2.0f);
|
||
|
CGContextAddArcToPoint(context, size.width, size.height, size.width / 2.0f, size.height, size.width / 2.0f);
|
||
|
CGContextAddLineToPoint(context, size.width, size.height);
|
||
|
CGContextAddLineToPoint(context, size.width, size.height / 2.0f);
|
||
|
CGContextFillPath(context);
|
||
|
|
||
|
CGContextBeginPath(context);
|
||
|
CGContextMoveToPoint(context, size.width / 2.0f, size.height);
|
||
|
CGContextAddArcToPoint(context, 0.0f, size.height, 0.0f, size.height / 2.0f, size.width / 2.0f);
|
||
|
CGContextAddLineToPoint(context, 0.0f, size.height);
|
||
|
CGContextAddLineToPoint(context, size.width / 2.0f, size.height);
|
||
|
CGContextFillPath(context);
|
||
|
|
||
|
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
|
||
|
UIGraphicsEndImageContext();
|
||
|
|
||
|
return result;
|
||
|
}
|