ike copying).
    /// ````
    /// let a = Image("logo")
    /// canvas.add(a)
    /// let b = Image(image: a)
    /// b.center = canvas.center
    /// canvas.add(b)
    /// ````
    /// - parameter image: A Image.
    convenience public init(copy image: Image) {
        self.init()
        let uiimage = image.uiimage
        self.view = ImageView(image: uiimage)
        copyViewStyle(image)
    }

    /// Initializes a new Image using a UIImage.
    /// ````
    /// if let uii = UIImage(named:"logo") {
    ///     let img = Image(uiimage: uii)
    ///     canvas.add(img)
    /// }
    /// ````
    /// - parameter uiimage: A UIImage object.
    convenience public init(uiimage: UIImage) {
        self.init(uiimage: uiimage, scale: 1.0)
    }

    /// Initializes a new Image using a UIImage, with option for specifying the scale of the image.
    /// ````
    /// if let uii = UIImage(named:"logo") {
    ///     let img = Image(uiimage: uii, scale: 2.0)
    ///     canvas.add(img)
    /// }
    /// ````
    /// - parameter uiimage: A UIImage object.
    /// - parameter scale: A `Double` should be larger than 0.0
    convenience public init(uiimage: UIImage, scale: Double) {
        self.init()

        if scale != 1.0 {
            let scaledImage = UIImage(cgImage: uiimage.cgImage!, scale: CGFloat(scale), orientation: uiimage.imageOrientation)
            self.view = ImageView(image: scaledImage)
        } else {
            self.view = ImageView(image: uiimage)
        }
        _originalSize = Size(view.frame.size)
    }

    /// Initializes a new Image using a CGImageRef.
    /// ````
    /// let cgi = CGImageCreate()
    /// let img = Image(cgimage: cgi)
    /// canvas.add(img)
    /// ````
    /// [Example](https://gist.github.com/C4Framework/06319d420426cb0f1cb3)
    /// - parameter cgimage: A CGImageRef object.
    convenience public init(cgimage: CGImage) {
        let image = UIImage(cgImage: cgimage)
        self.init(uiimage: image, scale: 1.0)
    }

    /// Initializes a new Image using a CGImageRef, wi