ios – 在UIImageView的内容周围绘制边框
发布时间:2020-12-15 01:50:12 所属栏目:百科 来源:网络整理
导读:我有一个带有图像的UIImageView是一辆带有透明背景的汽车: 我想在汽车周围画一个边框: 我怎样才能达到这个效果? 目前,我已经以这种方式测试了CoreGraphics,但没有取得好成绩: // load the image UIImage *img = carImage; UIGraphicsBeginImageContext(i
我有一个带有图像的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 这是我在操场上的结果 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |