iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 在UIImageView的内容周围绘制边框大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个带有图像的UIImageView是一辆带有透明背景的汽车: 我想在汽车周围画一个边框: 我怎样才能达到这个效果? 目前,我已经以这种方式测试了CoreGraphics,但没有取得好成绩: // load the image UIImage *img = carImage; UIGraphicsBeginImageContext(img.sizE); CGConte
我有一个带有图像的UIImageView是一辆带有透明背景的汽车:

我想在汽车周围画一个边框:

我怎样才能达到这个效果

目前,我已经以这种方式测试了CoreGraphics,但没有取得好成绩:

// load the image
    UIImage *img = carImage;

    UIGraphicsBeginImageContext(img.sizE);
    CGContextRef context = UIGraphicsGetCurrentContext();
    [[UIColor redColor] setFill];
    CGContextTranslateCTM(context,img.size.height);
    CGContextScaleCTM(context,1.0,-1.0);

    CGContextSetBlendMode(context,kCGBlendModeNormal);
    CGRect rect = CGRectMake(0,img.size.width * 1.1,img.size.height*1.1);
    CGContextDrawImage(context,rect,img.CGImagE);

    CGContextClipToMask(context,img.CGImagE);
    CGContextAddRect(context,rect);
    CGContextDrawPath(context,kCGPathFill);

    // generate a new UIImage from the graphics context we drew onto
    UIImage *coloredImg = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

有帮助吗?谢谢.

解决方法

这是我做的:

我在Swift中做过它只是为了在游乐场中检查它,认为你可以轻松地将它转换为Objective-C:

import UIKit


func drawOutlie(#image:UIImage,color:UIColor) -> UIImage
{
  var newImageKoef:CGFloat = 1.08

  var outlinedImageRect = CGRect(x: 0.0,y: 0.0,width: image.size.width * newImageKoef,height: image.size.height * newImageKoef)

  var imageRect = CGRect(x: image.size.width * (newImageKoef - 1) * 0.5,y: image.size.height * (newImageKoef - 1) * 0.5,width: image.size.width,height: image.size.height)

  UIGraphicsBeginImageContextWithOptions(outlinedImageRect.size,false,newImageKoef)

  image.drawInRect(outlinedImageRect)

  var context = UIGraphicsGetCurrentContext()
  CGContextSetBlendMode(context,kCGBlendModesourceIn)

  CGContextSetFillColorWithColor(context,color.CGColor)
  CGContextFillRect(context,outlinedImageRect)
  image.drawInRect(imageRect)

  var newImage = UIGraphicsGetImageFromCurrentImageContext()
  UIGraphicsEndImageContext()

  return newImage

}

var imageIn = UIImage(named: "158jM")

var imageOut = drawOutlie(image: imageIn,UIColor.redColor())

那么它是怎样工作的?

>我们创建干净的上下文(又名画布),其尺寸略大于原始图像(用于轮廓)
>我们在整个画布上绘制图像
>我们用颜色填充该图像
>我们在顶部绘制较小的图像

您可以更改轮廓大小更改此属性:var newImageKoef:CGFloat = 1.08

这是我在操场上的结果

大佬总结

以上是大佬教程为你收集整理的ios – 在UIImageView的内容周围绘制边框全部内容,希望文章能够帮你解决ios – 在UIImageView的内容周围绘制边框所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。