菜鸟求助关于Canvas绘图背景问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了菜鸟求助关于Canvas绘图背景问题。相关的知识,希望对你有一定的参考价值。

最近在学习关于利用Canvas类来实现简单的绘画功能,但是网上学习看到的都是用canvas.drawColor来设置背景为单一的颜色。想请教如何实现利用本地图片作为背景然后进行绘画,谢谢!

参考技术A drawable里,名为123.jpg// 声明一张背景的位图 private Bitmap bg;//放到surfaceCreated里bg = BitmapFactory.decodeResource(this.getResources(), R.drawable.123);//绘图函数里 canvas.drawBitmap(bg, x, y, paint); 查看原帖>>本回答被提问者采纳

将相机胶卷图像导入 UIView 背景

【中文标题】将相机胶卷图像导入 UIView 背景【英文标题】:Importing Camera Roll Image to UIView background 【发布时间】:2015-07-17 14:05:11 【问题描述】:

一个小警告:我是一个 swift 的菜鸟

我正在创建一个小型应用程序,该应用程序(最终将)允许用户在他们从 iPhone 上的相机胶卷中选择的图像上绘图。但是,我在将图像设置为 UIView (drawView) 的背景时遇到了一些麻烦。有人可以给我一些关于如何解决这个问题的指示吗?我拼凑的代码如下所示。

我的 ViewController 文件:

import UIKit

class ViewController: UIViewController, UIImagePickerControllerDelegate,     UINavigationControllerDelegate 

@IBOutlet var drawView : AnyObject!

override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.


override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    imagePicker.delegate = self

@IBAction func clearTapped() 
    var theDrawView: DrawView = drawView as! DrawView

    theDrawView.lines = []
    theDrawView.setNeedsDisplay()


let imagePicker = UIImagePickerController()

@IBAction func importImage(sender: AnyObject) 


    imagePicker.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum
    imagePicker.allowsEditing = true
    self.presentViewController(imagePicker, animated: true, completion: nil)


func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject])
    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage 
        drawView.backgroundImage = pickedImage

    

    func dismissViewControllerAnimated(true, completion: nil)



func imagePickerControllerDidCancel(picker: UIImagePickerController) 
    dismissViewControllerAnimated(true, completion: nil)







另外,我的 drawView 有一个单独的 swift 文件,用于处理用户如何在其中绘制线条。

【问题讨论】:

【参考方案1】:

您将希望将代码分开一点。现在,您似乎正在尝试在控制器中创建控制器。使用必要的委托实现一个 UIIMagePickerController 的子类(您已经有了代码,所以只需复制和粘贴):

class MyImagePicker: UIImagePickerController, UIImagePickerControllerDelegate 


然后在您的视图控制器中,初始化您的图像选择器:

let myImagePicker = MyImagePicker()

调用正确的方法返回图片,将你的 UIView 的背景图片设置为该图片,然后将该视图添加为子视图:

drawView.backgroundImage = pickedImage
self.addSubview(pickedImage)

希望有效!

【讨论】:

以上是关于菜鸟求助关于Canvas绘图背景问题。的主要内容,如果未能解决你的问题,请参考以下文章

canvas菜鸟基于小程序实现图案在线定制功能

android绘图之Canvas基础(2)

canvas绘图数学知识总结

实现Canvas2D绘图 使元素绕中心居中旋转

01 关于Canvas

求助,canvas中scale的问题