繁体   English   中英

如何在图像上画线/画图?

[英]How to draw a line / paint on a image?

到目前为止,我已经能够在普通图像上绘制线条,就像创建自己的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()

这些是我写的用于在图像中绘制一条线并返回其上下文的线。 如果尝试使用,我将无法选择导入的图片上下文或画线,因为它最后返回nil。 到目前为止,我仍无法弄清楚自己的错误。 您能建议如何在图像视图中的图片上画一条简单的线吗?

您能建议如何在图像视图中的图片上画一条简单的线吗?

当然。 制作图像上下文。 将图像视图的图像绘制到上下文中。 在上下文中画线。 从上下文中提取结果图像并关闭上下文。 将提取的图像分配到图像视图。

例:

    let im = self.iv.image! // iv is the image view
    UIGraphicsBeginImageContextWithOptions(im.size, true, 0)
    im.drawAtPoint(CGPointMake(0,0))
    let p = UIBezierPath()
    p.moveToPoint(CGPointMake(CGFloat(100.0), CGFloat(100.0)))
    p.addLineToPoint(CGPointMake(CGFloat(150.0), CGFloat(150.0)))
    p.stroke()
    self.iv.image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

之前:

在此处输入图片说明

后:

在此处输入图片说明

在第二张图片中,请注意从(100,100)到(150,150)的直线。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM