У меня есть два круга, один большой и один меньший. Я хочу обрезать меньший круг из большего, а затем использовать эту новую форму (большой круг с отверстием в нем), чтобы применить его к произвольному изображению. Я немного сыграл с кварцем, но не смог найти решение. Есть ли простой способ сделать это?iPhone Как закрепить круг внутри круга?
0
A
ответ
1
вот какой код я получил от stackoverflow. Вы бы назвали его один раз, чтобы создать свое изображение с помощью маски дыр, а затем снова назовите его, чтобы использовать это изображение для маскировки исходного изображения.
- (UIImage*)maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
CGImageRef maskRef = maskImage.CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef sourceImage = [image CGImage];
CGImageRef imageWithAlpha = sourceImage;
//add alpha channel for images that don't have one (ie GIF, JPEG, etc...)
//this however has a computational cost
// needed to comment out this check. Some images were reporting that they
// had an alpha channel when they didn't! So we always create the channel.
// It isn't expected that the wheelin application will be doing this a lot so
// the computational cost isn't onerous.
//if (CGImageGetAlphaInfo(sourceImage) == kCGImageAlphaNone) {
imageWithAlpha = CopyImageAndAddAlphaChannel(sourceImage);
//}
CGImageRef masked = CGImageCreateWithMask(imageWithAlpha, mask);
CGImageRelease(mask);
//release imageWithAlpha if it was created by CopyImageAndAddAlphaChannel
if (sourceImage != imageWithAlpha) {
CGImageRelease(imageWithAlpha);
}
UIImage* retImage = [UIImage imageWithCGImage:masked];
CGImageRelease(masked);
return retImage;
}
Смежные вопросы
- 1. java круг внутри круга, как узнать, перекрываются ли два круга
- 2. Функция - круг внутри круга и коррекция?
- 3. Flash-круг не вращается внутри другого круга
- 4. D3 - расположение силы, круг внутри круга
- 5. Поиск круга внутри другого круга
- 6. Отражая круг от другого круга
- 7. Как закрепить прямоугольник вокруг круга при рисовании с помощью quartz2d?
- 8. Круг для столкновения круга
- 9. Как проверить, перекрывается ли круг или внутри второго круга, и если точка находится внутри второго круга?
- 10. Как увеличить круг вместе с увеличением текста внутри круга?
- 11. Как нарисовать круг внутри круга с помощью форм xml?
- 12. Ограничение движения внутри круга
- 13. Выбор объектов внутри круга
- 14. Выровнять прямоугольники внутри круга
- 15. Нарисуйте текст внутри круга
- 16. drawRect Круг внутри круга, используемый для отображения прогресса
- 17. Анимация дуги/круга в iphone
- 18. Kinteticjs текст внутри круга
- 19. Рисование круга внутри другого холста круга
- 20. Ответственный круг Div внутри другого чувствительного круга и централизованного?
- 21. SVG изображение внутри круга
- 22. iPhone - Как сделать круг для CAKeyframeAnimation?
- 23. Как обрезать круг изображения в iphone sdk
- 24. android - как определить осязаемые области внутри круга
- 25. Случайные точки внутри круга
- 26. CAShapeLayer - круг внутри UIView
- 27. Java - Как проверить точку внутри фрагмента круга
- 28. Как удалить набор точек сетки внутри круга?
- 29. Как выровнять текст внутри круга динамически?
- 30. прозрачный треугольник внутри круга, как я могу переопределить цвет круга