2
到目前为止,在我的尝试中,我可以在普通图像上绘制线条,就像创建我自己的CGRect大小的简单上下文并在其上画线。我看到的所有教程都是如何绘制一个创建的x * y大小的图像上下文。但是我想在已经存在的图像上下文中画一条狗的照片,并制作一些图纸。但到目前为止,我没有得到我期待的结果。这是我测试的代码,没有分配图像,我可以得到一个线条画。但是通过导入图片,我没有在图片上获得所需的线条。如何在图像上绘制线条/绘画?
let myImage = UIImage(named: "hqdefault.jpg")!
let myRGBA = RGBAImage(image: myImage)!
UIGraphicsBeginImageContextWithOptions(CGSize(width: rgbaImage.width, height: rgbaImage.height), false, 0)
let context:CGContextRef = UIGraphicsGetCurrentContext()!
CGContextMoveToPoint(context, CGFloat(100.0), CGFloat(100.0))
CGContextAddLineToPoint(context, CGFloat(150.0), CGFloat(150.0))
CGContextSetStrokeColorWithColor(context, UIColor.blackColor().CGColor)
CGContextStrokePath(context)
let image = UIGraphicsGetImageFromCurrentImageContext()
CGContextRestoreState(context)
UIGraphicsEndImageContext()
//: Return image
let view = UIImageView.init(image: image)
view.setNeedsDisplay()
这些是我写的在图像中绘制一条线并返回其上下文的几行。我无法选择导入的图片上下文,或者如果我尝试绘制线条,因为它最终返回零。到目前为止,我无法弄清楚我的错误。你可以建议如何在图像视图中的图片上画一条简单的线条吗?
如果可以,我可以看看上面的示例代码吗?我试图将图像绘制到上下文中,使用 CGContextDrawImage(context,CGRect(x:0,y:0,width:myRGBA!.width,height:myRGBA!.height),ciImage) 但我得到停留在将ciImage转换为CGImage错误。希望我可以检查上面的代码? –
我在下面的代码中尝试了drawInRect,然后使用CGContextDrawImage myImage,将CGContextDrawImage(context,CGRect(x:0,y:0,width:myRGBA!.width,myRGBA!.height),cgImageMade) drawInRect(CGRect(x:0,y:0,width:300,height:300),blendMode:CGBlendMode.Clear,alpha:1.0) 添加CGContextMove和CGContextAdd方法后,我将结果通过 var result:UIImage = UIGraphicsGetImageFromCurrentImageContext(); 但我得到零结果。 –
“但我被困在ciImage转换为CGImage错误”这听起来像你的问题。这个故事中你不应该有任何CIImage。你也不需要转换成CGImage。 UIImage可以直接将自己绘制到图形上下文中。 – matt