         // points in the following order:
         // lower left, lower right, upper right, and upper left corner.
         var boundingBox: [Int32] = .init(repeating: .zero, count: 8)
-        gdImageStringFT(internalImage, &boundingBox, internalColor, fontList, pointSize, angle, Int32(from.x), Int32(from.y), text)
+        gdImageStringFT(internalImage, &boundingBox, internalColor, fontList, pointSize, angle, Int32(from.x), Int32(from.y), string)
 
         let lowerLeft = Point(x: boundingBox[0], y: boundingBox[1])
         let lowerRight = Point(x: boundingBox[2], y: boundingBox[3])

    public func desaturate() {
        gdImageGrayScale(internalImage)
    }
    
    /// Reduces `Image` to an indexed palette of colors from larger color spaces.
    /// Index `Image`s only make sense with 2 or more colors, and will `throw` nonsense values
    /// - Parameter numberOfColors: maximum number of colors

    ///   - color: The font color.
    ///   - pointSize: The height of the font in typographical points (pt).
    ///   - angle: The angle in radian to rotate the font counter-clockwise.
    ///   - string: The string to render.
    /// - Returns: The string bounding box. You can use this array to render the
    ///   text off-image first, and then draw it again, on the image, with the
    ///   bounding box image information (e.g., to center align the text).
    ///   The points are returned in the following order: lower left, lower
    ///   right, upper right, and upper left corner.
    @discardableResult
    public func stringFT(from: Point, fontList: String, color: Color, pointSize: Double, angle: Double = 0.0, string: String) -> [Point] {
        let red = Int32(color.redComponent * 255.0)
        let green = Int32(color.greenComponent * 255.0)
        let blue = Int32(color.blueComponent * 255.0)
