【问题标题】:combining UIImageView with UIView and save it as a Image将 UIImageView 与 UIView 组合并将其保存为图像
【发布时间】:2015-05-05 06:30:18
【问题描述】:

我正在编写一个拍摄照片并对其进行修改的小应用程序。有一个功能可以在拍摄的照片上贴上贴纸(图像)。我希望用户能够捏住旋转并拖动贴纸,所以我使用 UIImageView 来包含图像,以便我可以使用手势功能来修改它。

但是问题来了,当用户修改完贴纸后,如何保存带有贴纸的照片?它们处于不同的视图中,我唯一能想到的就是跟踪对贴纸的修改,并在用户完成修改后将它们绘制在照片上。有没有更简单的方法?我该怎么办?

func addSticker(name: String)
{
    var stickerModView = UIImageView(frame: CGRect(blah blah))
    var sticker = UIImage(named:"blah blah.png")
    stickerModView.image = sticker
    self.view.addSubview(stickerMod)

    var tapRec = UITapGestureRecognizer()
    var pinchRec = UIPinchGestureRecognizer()
    var rotateRec = UIRotationGestureRecognizer()
    var panRec = UIPanGestureRecognizer()

    pinchRec.addTarget(self, action: Selector("pinchedView:"))
    rotateRec.addTarget(self, action: Selector("rotatedView:"))
    panRec.addTarget(self, action: Selector("draggedView:"))
    tapRec.addTarget(self, action: Selector("tappedView:"))

    stickerModView.addGestureRecognizer(pinchRec)
    stickerModView.addGestureRecognizer(rotateRec)
    stickerModView.addGestureRecognizer(panRec)
    stickerModView.userInteractionEnabled = true
    stickerModView.multipleTouchEnabled = true

}

【问题讨论】:

    标签: ios iphone swift uiview uiimageview


    【解决方案1】:

    添加完整的UIImageView 并进行编辑后,您可以试试这个,

        let rect : CGRect = CGRect() //Your view size from where you want to make UIImage
        UIGraphicsBeginImageContext(rect.size);
        let context : CGContextRef = UIGraphicsGetCurrentContext()
        self.view.layer.renderInContext(context)
        let img : UIImage  = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext();
        //your image ready to save in img
    

    它可以帮助你!

    【讨论】:

    • 这行得通!但是有一个问题,我如何指定开始图像上下文的位置?
    • 你是如何在视图上放置图像stickerModView(sticker),你可以获得那个 UIImageView 的参考框架。
    • 您可以设置有限的区域,用户必须在其中编辑图像和制作贴纸,因此每次都必须将图像裁剪区域设置为该区域。
    • 效果很好,但是画质很差,怎么解决?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多