Применение границы к форме изображения

В моем приложении у меня разные образы разных форм. Как дерево, облако. (Образец прилагается). Я хочу добавить границу к этим формам программно. Например, если изображение имеет дерево, тогда необходимо выделить форму дерева. Я не могу использовать calayer, поскольку он применит границу к UIImageView. Может ли кто-нибудь вести меня, как это сделать?

образец изображения

3 Solutions collect form web for “Применение границы к форме изображения”

Простой вариант состоит в том, чтобы нарисовать изображение дважды, сначала с небольшой шкалой, применяемой для небольшого увеличения изображения. Маскирование, если изображения не прозрачны (но черно-белые).

Я просто сделал то же самое, но с белой рамкой. Я создал маску с белым телом и черным штрихом 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]]]; 

Вы можете применить границу к объектам, присутствующим на изображении, с использованием рамки OpenCV.

Проверьте эту ссылку. Здесь ребра обнаруживаются с изображением, и к нему применяется граница. Надеюсь, это даст точную идею, которую вы хотите.

https://github.com/BloodAxe/OpenCV-Tutorial

  • Core Image CIPerspectiveTransform Filter: как использовать CIVectors?
  • Лучшая логика / алгоритм раскраски изображений
  • загрузить изображение IOS в службу .net
  • ios - generateCGImagesAsynchronouslyForTimes слишком долго
  • как сделать распознавание изображений в приложениях iphone
  • Как применить размытие к UIView?
  • iOS: выделение непрозрачных частей частично прозрачного изображения
  • iOS Захват изображения с высоким разрешением при использовании низкого AVCaptureSessionPreset для видеовыхода
  • Как очистить кеш-память приложения IOS (загруженные изображения)
  • Эффект Core Graphics на основе CGImage
  • Пометить людей как instagram
  • Interesting Posts

    как узнать изменение объектов в объекте c

    Проверьте подключение к Интернету с помощью SDK iOS

    Шарик SKPhysicsBody не будет отскакивать, если импульс слишком мал

    Права доступа iCloud и Jailbreak

    Google Maps iOS sdks получает ошибку: фоновое выполнение в этом сценарии потерпит крах

    Подвижная анимация UITableViewCell влияет на несколько ячеек

    Альтернатива глобальным переменным в приложении делегата

    Невозможно использовать собственный класс в протоколе с атрибутом @objc?

    iOS7 – enabledRemoteNotificationTypes возвращает UIRemoteNotificationTypeNone, но в Settings.app: Alert, Badge and Sound включены

    Могу ли я сравнивать области экрана с ссылками на изображения в сценариях автоматизации пользовательского интерфейса?

    Этот код не показывает таблицы, почему?

    UIPickerView застревает между рядами?

    Что происходит с обещанием, которое заброшено?

    XMPPFramework – получение архивных сообщений с сервера Openfire

    Как управлять элементом панели вкладок в запуске приложения в ios

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.