В моем приложении у меня есть различные изображения разных форм. Как дерево, облако. (Образец прилагается). Я хочу добавить границу для этих фигур программически. Например, если изображение имеет дерево, тогда необходимо выделить форму дерева. Я не могу использовать calayer, поскольку он применит границу к UIImageView. Может ли кто-нибудь вести меня, как достичь этого?Применение формы границы к изображению
ответ
Простой вариант нарисовать изображение дважды, сначала в небольшом масштабе прикладного расти изображения немного. Маскирование, если изображения не прозрачны (но черные & белые).
Это изящно, но проблема в том, что граница не будет одинаковой по всей форме. Он будет ближе ближе к центру. Ответ на обнаружение края, вероятно, более перспективен, хотя и сложнее вычислить. – Rob
@Rob: Спасибо за ваши отзывы, но моя форма не является постоянной или такой же. Это может быть дерево, многоугольник, квадрат, зонтик, так что, пожалуйста, дайте мне знать, есть ли какое-либо общее решение для этого, поскольку форма может быть любой. –
@PoojaManiklalBohora Это была моя точка зрения. Вот почему я, хотя это заманчиво простое решение не сработает для вас. – Rob
Вы можете применить границу для объектов, присутствующих в изображении, используя структуру OpenCV.
Проверьте эту ссылку. Здесь ребра обнаруживаются с изображением, и к нему применяется граница. Надеюсь, это даст точную идею, которую вы хотите.
Спасибо, но это не так, как я хочу. –
Я просто сделал то же самое, но с белой рамкой. Я создал маску с белым телом и черным штрихом 4px снаружи, чтобы дать мне единую границу, которую я хочу вокруг своего целевого изображения. В followng используются фильтры Core Image для маскировки сплошного цветного фона (для использования в качестве границы), а затем для маскировки и компоновки целевого изображения.
// The two-tone mask image
UIImage *maskImage = [UIImage imageNamed: @"Mask"];
// Create a filler image of whatever color we want the border to be (in my case white)
UIGraphicsBeginImageContextWithOptions(maskImage.size, NO, maskImage.scale);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, UIColor.whiteColor.CGColor);
CGContextFillRect(context, CGRectMake(0.f, 0.f, maskImage.size.width, maskImage.size.height));
UIImage *whiteImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// Use CoreImage to mask the colored background to the mask (the entire opaque region of the mask)
CIContext *ciContext = [CIContext contextWithOptions: nil];
CIFilter *filter = [CIFilter filterWithName: @"CIBlendWithAlphaMask"];
[filter setValue: [CIImage imageWithCGImage: whiteImage.CGImage]
forKey: kCIInputImageKey];
[filter setValue: [CIImage imageWithCGImage: maskImage.CGImage]
forKey: kCIInputMaskImageKey];
CIImage *whiteBackground = filter.outputImage;
// scale the target image to the size of the mask (accounting for image scale)
// ** Uses NYXImageKit
image = [image scaleToSize: CGSizeMake(maskImage.size.width * maskImage.scale, maskImage.size.height * maskImage.scale)
usingMode: NYXResizeModeAspectFill];
// finally use Core Image to create our image using the masked white from above for our border and the inner (white) area of our mask image to mask the target image before compositing
filter = [CIFilter filterWithName: @"CIBlendWithMask"];
[filter setValue: [CIImage imageWithCGImage: image.CGImage]
forKey: kCIInputImageKey];
[filter setValue: whiteBackground
forKey: kCIInputBackgroundImageKey];
[filter setValue: [CIImage imageWithCGImage: maskImage.CGImage]
forKey: kCIInputMaskImageKey];
image = [UIImage imageWithCGImage: [ciContext createCGImage: filter.outputImage
fromRect: [filter.outputImage extent]]];
- 1. Применение эффекта к изображению
- 2. Применение непрозрачности к изображению
- 3. Добавление границы к изображению
- 4. Применение преобразования перспективы к изображению
- 5. ActionScript: Применение рамки к изображению/фону?
- 6. Применение матрицы к изображению, поиск улучшений производительности
- 7. Применение оттенков к изображению при нанесении цвета
- 8. OpenGL (Python) - применение STMap (UVmap) к изображению?
- 9. Применение оттенка к изображению в java
- 10. Применение фильтра SVG к фоновому изображению
- 11. Применение оверлея (фильтра изображения) к растровому изображению
- 12. Применение наложений к изображению с различной прозрачностью
- 13. Применение векторного поля к изображению в matlab
- 14. Применение эффектов к изображению с помощью VC++?
- 15. Android - Применение цвета к черно-белому изображению
- 16. Применение адаптивного порога к полутоновому изображению
- 17. Easljs Применение фильтров к растровому изображению
- 18. Применение текста к изображению (без его нажатия)
- 19. Добавление пиксельной границы к изображению в java
- 20. GD добавление границы к изображению не работает
- 21. Добавление границы к изображению с помощью FFmpeg
- 22. WPF: добавление границы к изображению программно
- 23. Добавление границы к изображению в ImageView клетки
- 24. Применение цвета по изображению
- 25. Применение границы к объекту преобразования CSS-изображения
- 26. Android: Применение округлой формы к линейной компоновке
- 27. Применение горизонтальной полосы прокрутки к широкому изображению по электронной почте
- 28. Применение функции оконного окна Hann к изображению в Octave/Matlab
- 29. Применение гауссовского размытия к изображению в частотной области
- 30. Применение наложения к масштабированному растровому изображению - проблемы с масштабированием наложения
Нарисуйте изображение дважды, сначала с нанесенной шкалой. Маскирование, если изображения не прозрачны (но черно-белые). – Wain
Вы хотите границу всегда или выбранный режим – codercat
Я хочу, чтобы граница всегда со случайным цветом. –