th option for specifying the scale of the image.
    /// ````
    /// let cgi = CGImageCreate()
    /// let img = Image(cgimage: cgi, scale: 2.0)
    /// canvas.add(img)
    /// ````
    /// - parameter cgimage: A CGImageRef object.
    /// - parameter scale: The scale of the image.
    convenience public init(cgimage: CGImage, scale: Double) {
        let image = UIImage(cgImage: cgimage)
        self.init(uiimage: image, scale: scale)
    }

    /// Initializes a new Image using a CIImage.
    /// Use this method if you're working with the output of a CIFilter.
    /// - parameter ciimage: A CIImage object.
    convenience public init(ciimage: CIImage) {
        self.init(ciimage: ciimage, scale: 1.0)
    }

    /// Initializes a new Image using a CIImage, with option for specifying the scale of the image.
    /// Use this method if you're working with the output of a CIFilter.
    /// - parameter ciimage: A CIImage object.
    /// - parameter scale: The scale of the image.
    convenience public init(ciimage: CIImage, scale: Double) {
        let image = UIImage(ciImage: ciimage)
        self.init(uiimage: image, scale: scale)
    }

    /// Initializes a new Image using raw data.
    /// Use this if you download an image as data you can pass it here to create an image.
    /// See the body of init(url:) to see how to download an image as data.
    /// - parameter data: An NSData object.
    convenience public init(data: Data) {
        self.init(data: data, scale: 1.0)
    }

    /// Initializes a new Image using raw data, with option for specifying the scale of the image.
    /// Use this if you download an image as data you can pass it here to create an image.
    /// See the body of init(url:) to see how to download an image as data.
    /// - parameter data: An NSData object.
    /// - parameter scale: The scale of the image.
    convenience public init(data: Data, scale: Double) {
        let image = UIImage(data: data)
        self.init(uiimage: image!, scale: scale)
    }

    /// Initializes a new Ima