public function annotation()

in hphp/runtime/ext/imagick/ext_imagick.php [3840:5106]


  public function annotation(float $x,
                      float $y,
                      string $text): bool;

  /**
   * Draws an arc
   *
   * @param float $sx - Starting x ordinate of bounding rectangle
   * @param float $sy - starting y ordinate of bounding rectangle
   * @param float $ex - ending x ordinate of bounding rectangle
   * @param float $ey - ending y ordinate of bounding rectangle
   * @param float $sd - starting degrees of rotation
   * @param float $ed - ending degrees of rotation
   *
   * @return bool -
   */
  <<__Native>>
  public function arc(float $sx,
               float $sy,
               float $ex,
               float $ey,
               float $sd,
               float $ed): bool;

  /**
   * Draws a bezier curve
   *
   * @param array $coordinates - Multidimensional array like array(
   *   array( 'x' => 1, 'y' => 2 ), array( 'x' => 3, 'y' => 4 ) )
   *
   * @return bool -
   */
  <<__Native>>
  public function bezier(varray<darray<string, float>> $coordinates): bool;

  /**
   * Draws a circle
   *
   * @param float $ox - origin x coordinate
   * @param float $oy - origin y coordinate
   * @param float $px - perimeter x coordinate
   * @param float $py - perimeter y coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function circle(float $ox,
                  float $oy,
                  float $px,
                  float $py): bool;

  /**
   * Clears the ImagickDraw
   *
   * @return bool - Returns an ImagickDraw object.
   */
  <<__Native>>
  public function clear(): bool;

  /**
   * Makes an exact copy of the specified ImagickDraw object
   *
   * @return ImagickDraw - What the function returns, first on success,
   *   then on failure. See also the return.success; entity
   */
  <<__Native>>
  public function __clone(): void;

  /**
   * Draws color on image
   *
   * @param float $x - x coordinate of the paint
   * @param float $y - y coordinate of the paint
   * @param int $paintMethod - one of the PAINT_ constants
   *
   * @return bool -
   */
  <<__Native>>
  public function color(float $x,
                 float $y,
                 int $paintMethod): bool;

  /**
   * Adds a comment
   *
   * @param string $comment - The comment string to add to vector output
   *   stream
   *
   * @return bool -
   */
  <<__Native>>
  public function comment(string $comment): bool;

  /**
   * Composites an image onto the current image
   *
   * @param int $compose - composition operator. One of COMPOSITE_
   *   constants
   * @param float $x - x coordinate of the top left corner
   * @param float $y - y coordinate of the top left corner
   * @param float $width - width of the composition image
   * @param float $height - height of the composition image
   * @param Imagick $compositeWand - the Imagick object where composition
   *   image is taken from
   *
   * @return bool -
   */
  <<__Native>>
  public function composite(int $compose,
                     float $x,
                     float $y,
                     float $width,
                     float $height,
                     Imagick $compositeWand): bool;

  /**
   * The ImagickDraw constructor
   *
   * @return  -
   */
  <<__Native>>
  public function __construct(): void;

  /**
   * Frees all associated resources
   *
   * @return bool -
   */
  <<__Native>>
  public function destroy(): bool;

  /**
   * Draws an ellipse on the image
   *
   * @param float $ox -
   * @param float $oy -
   * @param float $rx -
   * @param float $ry -
   * @param float $start -
   * @param float $end -
   *
   * @return bool -
   */
  <<__Native>>
  public function ellipse(float $ox,
                   float $oy,
                   float $rx,
                   float $ry,
                   float $start,
                   float $end): bool;

  /**
   * Obtains the current clipping path ID
   *
   * @return string - Returns a string containing the clip path ID or
   *   false if no clip path exists.
   */
  <<__Native>>
  public function getClipPath(): string;

  /**
   * Returns the current polygon fill rule
   *
   * @return int - Returns one of the FILLRULE_ constants.
   */
  <<__Native>>
  public function getClipRule(): int;

  /**
   * Returns the interpretation of clip path units
   *
   * @return int - Returns an int on success.
   */
  <<__Native>>
  public function getClipUnits(): int;

  /**
   * Returns the fill color
   *
   * @return ImagickPixel - Returns an ImagickPixel object.
   */
  <<__Native>>
  public function getFillColor(): ImagickPixel;

  /**
   * Returns the opacity used when drawing
   *
   * @return float - The opacity.
   */
  <<__Native>>
  public function getFillOpacity(): float;

  /**
   * Returns the fill rule
   *
   * @return int - Returns a FILLRULE_ constant
   */
  <<__Native>>
  public function getFillRule(): int;

  /**
   * Returns the font
   *
   * @return string - Returns a string on success and false if no font is
   *   set.
   */
  <<__Native>>
  public function getFont(): string;

  /**
   * Returns the font family
   *
   * @return string - Returns the font family currently selected or false
   *   if font family is not set.
   */
  <<__Native>>
  public function getFontFamily(): string;

  /**
   * Returns the font pointsize
   *
   * @return float - Returns the font size associated with the current
   *   ImagickDraw object.
   */
  <<__Native>>
  public function getFontSize(): float;

  /**
   * Returns the font stretch
   *
   * @return int - Returns the font stretch constant (STRETCH_) associated
   *   with the ImagickDraw object or 0 if no stretch is set.
   */
  <<__Native>>
  public function getFontStretch(): int;

  /**
   * Returns the font style
   *
   * @return int - Returns the font style constant (STYLE_) associated
   *   with the ImagickDraw object or 0 if no style is set.
   */
  <<__Native>>
  public function getFontStyle(): int;

  /**
   * Returns the font weight
   *
   * @return int - Returns an int on success and 0 if no weight is set.
   */
  <<__Native>>
  public function getFontWeight(): int;

  /**
   * Returns the text placement gravity
   *
   * @return int - Returns a GRAVITY_ constant on success and 0 if no
   *   gravity is set.
   */
  <<__Native>>
  public function getGravity(): int;

  /**
   * Returns the current stroke antialias setting
   *
   * @return bool - Returns TRUE if antialiasing is on and false if it is
   *   off.
   */
  <<__Native>>
  public function getStrokeAntialias(): bool;

  /**
   * Returns the color used for stroking object outlines
   *
   * @return ImagickPixel - Returns an ImagickPixel object which
   *   describes the color.
   */
  <<__Native>>
  public function getStrokeColor(): ImagickPixel;

  /**
   * Returns an array representing the pattern of dashes and gaps used to
   * stroke paths
   *
   * @return array - Returns an array on success and empty array if not
   *   set.
   */
  <<__Native>>
  public function getStrokeDashArray(): varray<float>;

  /**
   * Returns the offset into the dash pattern to start the dash
   *
   * @return float - Returns a float representing the offset and 0 if
   *   it's not set.
   */
  <<__Native>>
  public function getStrokeDashOffset(): float;

  /**
   * Returns the shape to be used at the end of open subpaths when they are
   * stroked
   *
   * @return int - Returns one of the LINECAP_ constants or 0 if stroke
   *   linecap is not set.
   */
  <<__Native>>
  public function getStrokeLineCap(): int;

  /**
   * Returns the shape to be used at the corners of paths when they are
   * stroked
   *
   * @return int - Returns one of the LINEJOIN_ constants or 0 if stroke
   *   line join is not set.
   */
  <<__Native>>
  public function getStrokeLineJoin(): int;

  /**
   * Returns the stroke miter limit
   *
   * @return int - Returns an int describing the miter limit and 0 if no
   *   miter limit is set.
   */
  <<__Native>>
  public function getStrokeMiterLimit(): int;

  /**
   * Returns the opacity of stroked object outlines
   *
   * @return float - Returns a double describing the opacity.
   */
  <<__Native>>
  public function getStrokeOpacity(): float;

  /**
   * Returns the width of the stroke used to draw object outlines
   *
   * @return float - Returns a double describing the stroke width.
   */
  <<__Native>>
  public function getStrokeWidth(): float;

  /**
   * Returns the text alignment
   *
   * @return int - Returns one of the ALIGN_ constants and 0 if no align
   *   is set.
   */
  <<__Native>>
  public function getTextAlignment(): int;

  /**
   * Returns the current text antialias setting
   *
   * @return bool - Returns TRUE if text is antialiased and false if not.
   */
  <<__Native>>
  public function getTextAntialias(): bool;

  /**
   * Returns the text decoration
   *
   * @return int - Returns one of the DECORATION_ constants and 0 if no
   *   decoration is set.
   */
  <<__Native>>
  public function getTextDecoration(): int;

  /**
   * Returns the code set used for text annotations
   *
   * @return string - Returns a string specifying the code set or false
   *   if text encoding is not set.
   */
  <<__Native>>
  public function getTextEncoding(): string;

  /**
   * Returns the text under color
   *
   * @return ImagickPixel - Returns an ImagickPixel object describing the
   *   color.
   */
  <<__Native>>
  public function getTextUnderColor(): ImagickPixel;

  /**
   * Returns a string containing vector graphics
   *
   * @return string - Returns a string containing the vector graphics.
   */
  <<__Native>>
  public function getVectorGraphics(): string;

  /**
   * Draws a line
   *
   * @param float $sx - starting x coordinate
   * @param float $sy - starting y coordinate
   * @param float $ex - ending x coordinate
   * @param float $ey - ending y coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function line(float $sx,
                float $sy,
                float $ex,
                float $ey): bool;

  /**
   * Paints on the image's opacity channel
   *
   * @param float $x - x coordinate of the matte
   * @param float $y - y coordinate of the matte
   * @param int $paintMethod - PAINT_ constant
   *
   * @return bool -
   */
  <<__Native>>
  public function matte(float $x,
                 float $y,
                 int $paintMethod): bool;

  /**
   * Adds a path element to the current path
   *
   * @return bool -
   */
  <<__Native>>
  public function pathClose(): bool;

  /**
   * Draws a cubic Bezier curve
   *
   * @param float $x1 - x coordinate of the first control point
   * @param float $y1 - y coordinate of the first control point
   * @param float $x2 - x coordinate of the second control point
   * @param float $y2 - y coordinate of the first control point
   * @param float $x - x coordinate of the curve end
   * @param float $y - y coordinate of the curve end
   *
   * @return bool -
   */
  <<__Native>>
  public function pathCurveToAbsolute(float $x1,
                               float $y1,
                               float $x2,
                               float $y2,
                               float $x,
                               float $y): bool;

  /**
   * Draws a quadratic Bezier curve
   *
   * @param float $x1 - x coordinate of the control point
   * @param float $y1 - y coordinate of the control point
   * @param float $x - x coordinate of the end point
   * @param float $y - y coordinate of the end point
   *
   * @return bool -
   */
  <<__Native>>
  public function pathCurveToQuadraticBezierAbsolute(float $x1,
                                              float $y1,
                                              float $x,
                                              float $y): bool;

  /**
   * Draws a quadratic Bezier curve
   *
   * @param float $x1 - starting x coordinate
   * @param float $y1 - starting y coordinate
   * @param float $x - ending x coordinate
   * @param float $y - ending y coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function pathCurveToQuadraticBezierRelative(float $x1,
                                              float $y1,
                                              float $x,
                                              float $y): bool;

  /**
   * Draws a quadratic Bezier curve
   *
   * @param float $x - ending x coordinate
   * @param float $y - ending y coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function pathCurveToQuadraticBezierSmoothAbsolute(float $x,
                                                    float $y): bool;

  /**
   * Draws a quadratic Bezier curve
   *
   * @param float $x - ending x coordinate
   * @param float $y - ending y coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function pathCurveToQuadraticBezierSmoothRelative(float $x,
                                                    float $y): bool;

  /**
   * Draws a cubic Bezier curve
   *
   * @param float $x1 - x coordinate of starting control point
   * @param float $y1 - y coordinate of starting control point
   * @param float $x2 - x coordinate of ending control point
   * @param float $y2 - y coordinate of ending control point
   * @param float $x - ending x coordinate
   * @param float $y - ending y coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function pathCurveToRelative(float $x1,
                               float $y1,
                               float $x2,
                               float $y2,
                               float $x,
                               float $y): bool;

  /**
   * Draws a cubic Bezier curve
   *
   * @param float $x2 - x coordinate of the second control point
   * @param float $y2 - y coordinate of the second control point
   * @param float $x - x coordinate of the ending point
   * @param float $y - y coordinate of the ending point
   *
   * @return bool -
   */
  <<__Native>>
  public function pathCurveToSmoothAbsolute(float $x2,
                                     float $y2,
                                     float $x,
                                     float $y): bool;

  /**
   * Draws a cubic Bezier curve
   *
   * @param float $x2 - x coordinate of the second control point
   * @param float $y2 - y coordinate of the second control point
   * @param float $x - x coordinate of the ending point
   * @param float $y - y coordinate of the ending point
   *
   * @return bool -
   */
  <<__Native>>
  public function pathCurveToSmoothRelative(float $x2,
                                     float $y2,
                                     float $x,
                                     float $y): bool;

  /**
   * Draws an elliptical arc
   *
   * @param float $rx - x radius
   * @param float $ry - y radius
   * @param float $x_axis_rotation - x axis rotation
   * @param bool $large_arc_flag - large arc flag
   * @param bool $sweep_flag - sweep flag
   * @param float $x - x coordinate
   * @param float $y - y coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function pathEllipticArcAbsolute(float $rx,
                                   float $ry,
                                   float $x_axis_rotation,
                                   bool $large_arc_flag,
                                   bool $sweep_flag,
                                   float $x,
                                   float $y): bool;

  /**
   * Draws an elliptical arc
   *
   * @param float $rx - x radius
   * @param float $ry - y radius
   * @param float $x_axis_rotation - x axis rotation
   * @param bool $large_arc_flag - large arc flag
   * @param bool $sweep_flag - sweep flag
   * @param float $x - x coordinate
   * @param float $y - y coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function pathEllipticArcRelative(float $rx,
                                   float $ry,
                                   float $x_axis_rotation,
                                   bool $large_arc_flag,
                                   bool $sweep_flag,
                                   float $x,
                                   float $y): bool;

  /**
   * Terminates the current path
   *
   * @return bool -
   */
  <<__Native>>
  public function pathFinish(): bool;

  /**
   * Draws a line path
   *
   * @param float $x - starting x coordinate
   * @param float $y - ending x coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function pathLineToAbsolute(float $x,
                              float $y): bool;

  /**
   * Draws a horizontal line path
   *
   * @param float $x - x coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function pathLineToHorizontalAbsolute(float $x): bool;

  /**
   * Draws a horizontal line
   *
   * @param float $x - x coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function pathLineToHorizontalRelative(float $x): bool;

  /**
   * Draws a line path
   *
   * @param float $x - starting x coordinate
   * @param float $y - starting y coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function pathLineToRelative(float $x,
                              float $y): bool;

  /**
   * Draws a vertical line
   *
   * @param float $y - y coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function pathLineToVerticalAbsolute(float $y): bool;

  /**
   * Draws a vertical line path
   *
   * @param float $y - y coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function pathLineToVerticalRelative(float $y): bool;

  /**
   * Starts a new sub-path
   *
   * @param float $x - x coordinate of the starting point
   * @param float $y - y coordinate of the starting point
   *
   * @return bool -
   */
  <<__Native>>
  public function pathMoveToAbsolute(float $x,
                              float $y): bool;

  /**
   * Starts a new sub-path
   *
   * @param float $x - target x coordinate
   * @param float $y - target y coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function pathMoveToRelative(float $x,
                              float $y): bool;

  /**
   * Declares the start of a path drawing list
   *
   * @return bool -
   */
  <<__Native>>
  public function pathStart(): bool;

  /**
   * Draws a point
   *
   * @param float $x - point's x coordinate
   * @param float $y - point's y coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function point(float $x,
                 float $y): bool;

  /**
   * Draws a polygon
   *
   * @param array $coordinates - multidimensional array like array(
   *   array( 'x' => 3, 'y' => 4 ), array( 'x' => 2, 'y' => 6 ) );
   *
   * @return bool -
   */
  <<__Native>>
  public function polygon(varray<darray<string, float>> $coordinates): bool;

  /**
   * Draws a polyline
   *
   * @param array $coordinates - array of x and y coordinates: array(
   *   array( 'x' => 4, 'y' => 6 ), array( 'x' => 8, 'y' => 10 ) )
   *
   * @return bool -
   */
  <<__Native>>
  public function polyline(varray<darray<string, float>> $coordinates): bool;

  /**
   * Destroys the current ImagickDraw in the stack, and returns to the
   * previously pushed ImagickDraw
   *
   * @return bool - Returns TRUE on success and false on failure.
   */
  <<__Native>>
  public function pop(): bool;

  /**
   * Terminates a clip path definition
   *
   * @return bool -
   */
  <<__Native>>
  public function popClipPath(): bool;

  /**
   * Terminates a definition list
   *
   * @return bool -
   */
  <<__Native>>
  public function popDefs(): bool;

  /**
   * Terminates a pattern definition
   *
   * @return bool -
   */
  <<__Native>>
  public function popPattern(): bool;

  /**
   * Clones the current ImagickDraw and pushes it to the stack
   *
   * @return bool -
   */
  <<__Native>>
  public function push(): bool;

  /**
   * Starts a clip path definition
   *
   * @param string $clip_mask_id - Clip mask Id
   *
   * @return bool -
   */
  <<__Native>>
  public function pushClipPath(string $clip_mask_id): bool;

  /**
   * Indicates that following commands create named elements for early
   * processing
   *
   * @return bool -
   */
  <<__Native>>
  public function pushDefs(): bool;

  /**
   * Indicates that subsequent commands up to a ImagickDraw::opPattern()
   * command comprise the definition of a named pattern
   *
   * @param string $pattern_id - the pattern Id
   * @param float $x - x coordinate of the top-left corner
   * @param float $y - y coordinate of the top-left corner
   * @param float $width - width of the pattern
   * @param float $height - height of the pattern
   *
   * @return bool -
   */
  <<__Native>>
  public function pushPattern(string $pattern_id,
                       float $x,
                       float $y,
                       float $width,
                       float $height): bool;

  /**
   * Draws a rectangle
   *
   * @param float $x1 - x coordinate of the top left corner
   * @param float $y1 - y coordinate of the top left corner
   * @param float $x2 - x coordinate of the bottom right corner
   * @param float $y2 - y coordinate of the bottom right corner
   *
   * @return bool -
   */
  <<__Native>>
  public function rectangle(float $x1,
                     float $y1,
                     float $x2,
                     float $y2): bool;

  /**
   * Renders all preceding drawing commands onto the image
   *
   * @return bool -
   */
  <<__Native>>
  public function render(): bool;

  /**
   * Applies the specified rotation to the current coordinate space
   *
   * @param float $degrees - degrees to rotate
   *
   * @return bool -
   */
  <<__Native>>
  public function rotate(float $degrees): bool;

  /**
   * Draws a rounded rectangle
   *
   * @param float $x1 - x coordinate of the top left corner
   * @param float $y1 - y coordinate of the top left corner
   * @param float $x2 - x coordinate of the bottom right
   * @param float $y2 - y coordinate of the bottom right
   * @param float $rx - x rounding
   * @param float $ry - y rounding
   *
   * @return bool -
   */
  <<__Native>>
  public function roundRectangle(float $x1,
                          float $y1,
                          float $x2,
                          float $y2,
                          float $rx,
                          float $ry): bool;

  /**
   * Adjusts the scaling factor
   *
   * @param float $x - horizontal factor
   * @param float $y - vertical factor
   *
   * @return bool -
   */
  <<__Native>>
  public function scale(float $x,
                 float $y): bool;

  /**
   * Associates a named clipping path with the image
   *
   * @param string $clip_mask - the clipping path name
   *
   * @return bool -
   */
  <<__Native>>
  public function setClipPath(string $clip_mask): bool;

  /**
   * Set the polygon fill rule to be used by the clipping path
   *
   * @param int $fill_rule - FILLRULE_ constant
   *
   * @return bool -
   */
  <<__Native>>
  public function setClipRule(int $fill_rule): bool;

  /**
   * Sets the interpretation of clip path units
   *
   * @param int $clip_units - the number of clip units
   *
   * @return bool -
   */
  <<__Native>>
  public function setClipUnits(int $clip_units): bool;

  /**
   * Sets the opacity to use when drawing using the fill color or fill texture
   *
   * @param float $opacity - fill alpha
   *
   * @return bool -
   */
  <<__Native>>
  public function setFillAlpha(float $opacity): bool;

  /**
   * Sets the fill color to be used for drawing filled objects
   *
   * @param ImagickPixel $fill_pixel - ImagickPixel to use to set the
   *   color
   *
   * @return bool -
   */
  <<__Native>>
  public function setFillColor(mixed $fill_pixel): bool;

  /**
   * Sets the opacity to use when drawing using the fill color or fill texture
   *
   * @param float $fillOpacity - the fill opacity
   *
   * @return bool -
   */
  <<__Native>>
  public function setFillOpacity(float $fillOpacity): bool;

  /**
   * Sets the URL to use as a fill pattern for filling objects
   *
   * @param string $fill_url - URL to use to obtain fill pattern.
   *
   * @return bool -
   */
  <<__Native>>
  public function setFillPatternURL(string $fill_url): bool;

  /**
   * Sets the fill rule to use while drawing polygons
   *
   * @param int $fill_rule - FILLRULE_ constant
   *
   * @return bool -
   */
  <<__Native>>
  public function setFillRule(int $fill_rule): bool;

  /**
   * Sets the fully-specified font to use when annotating with text
   *
   * @param string $font_name -
   *
   * @return bool -
   */
  <<__Native>>
  public function setFont(string $font_name): bool;

  /**
   * Sets the font family to use when annotating with text
   *
   * @param string $font_family - the font family
   *
   * @return bool -
   */
  <<__Native>>
  public function setFontFamily(string $font_family): bool;

  /**
   * Sets the font pointsize to use when annotating with text
   *
   * @param float $pointsize - the point size
   *
   * @return bool -
   */
  <<__Native>>
  public function setFontSize(float $pointsize): bool;

  /**
   * Sets the font stretch to use when annotating with text
   *
   * @param int $fontStretch - STRETCH_ constant
   *
   * @return bool -
   */
  <<__Native>>
  public function setFontStretch(int $fontStretch): bool;

  /**
   * Sets the font style to use when annotating with text
   *
   * @param int $style - STYLETYPE_ constant
   *
   * @return bool -
   */
  <<__Native>>
  public function setFontStyle(int $style): bool;

  /**
   * Sets the font weight
   *
   * @param int $font_weight -
   *
   * @return bool -
   */
  <<__Native>>
  public function setFontWeight(int $font_weight): bool;

  /**
   * Sets the text placement gravity
   *
   * @param int $gravity - GRAVITY_ constant
   *
   * @return bool -
   */
  <<__Native>>
  public function setGravity(int $gravity): bool;

  <<__Native>>
  public function setResolution(float $x,
                         float $y): bool;

  /**
   * Specifies the opacity of stroked object outlines
   *
   * @param float $opacity - opacity
   *
   * @return bool -
   */
  <<__Native>>
  public function setStrokeAlpha(float $opacity): bool;

  /**
   * Controls whether stroked outlines are antialiased
   *
   * @param bool $stroke_antialias - the antialias setting
   *
   * @return bool -
   */
  <<__Native>>
  public function setStrokeAntialias(bool $stroke_antialias): bool;

  /**
   * Sets the color used for stroking object outlines
   *
   * @param ImagickPixel $stroke_pixel - the stroke color
   *
   * @return bool -
   */
  <<__Native>>
  public function setStrokeColor(mixed $stroke_pixel): bool;

  /**
   * Specifies the pattern of dashes and gaps used to stroke paths
   *
   * @param array $dashArray - array of floats
   *
   * @return bool -
   */
  <<__Native>>
  public function setStrokeDashArray(varray<float> $dashArray): bool;

  /**
   * Specifies the offset into the dash pattern to start the dash
   *
   * @param float $dash_offset - dash offset
   *
   * @return bool -
   */
  <<__Native>>
  public function setStrokeDashOffset(float $dash_offset): bool;

  /**
   * Specifies the shape to be used at the end of open subpaths when they are
   * stroked
   *
   * @param int $linecap - LINECAP_ constant
   *
   * @return bool -
   */
  <<__Native>>
  public function setStrokeLineCap(int $linecap): bool;

  /**
   * Specifies the shape to be used at the corners of paths when they are
   * stroked
   *
   * @param int $linejoin - LINEJOIN_ constant
   *
   * @return bool -
   */
  <<__Native>>
  public function setStrokeLineJoin(int $linejoin): bool;

  /**
   * Specifies the miter limit
   *
   * @param int $miterlimit - the miter limit
   *
   * @return bool -
   */
  <<__Native>>
  public function setStrokeMiterLimit(int $miterlimit): bool;

  /**
   * Specifies the opacity of stroked object outlines
   *
   * @param float $stroke_opacity - stroke opacity. 1.0 is fully opaque
   *
   * @return bool -
   */
  <<__Native>>
  public function setStrokeOpacity(float $stroke_opacity): bool;

  /**
   * Sets the pattern used for stroking object outlines
   *
   * @param string $stroke_url - stroke URL
   *
   * @return bool - Imagick.ImagickDraw.return.success;
   */
  <<__Native>>
  public function setStrokePatternURL(string $stroke_url): bool;

  /**
   * Sets the width of the stroke used to draw object outlines
   *
   * @param float $stroke_width - stroke width
   *
   * @return bool -
   */
  <<__Native>>
  public function setStrokeWidth(float $stroke_width): bool;

  /**
   * Specifies a text alignment
   *
   * @param int $alignment - ALIGN_ constant
   *
   * @return bool -
   */
  <<__Native>>
  public function setTextAlignment(int $alignment): bool;

  /**
   * Controls whether text is antialiased
   *
   * @param bool $antiAlias -
   *
   * @return bool -
   */
  <<__Native>>
  public function setTextAntialias(bool $antiAlias): bool;

  /**
   * Specifies a decoration
   *
   * @param int $decoration - DECORATION_ constant
   *
   * @return bool -
   */
  <<__Native>>
  public function setTextDecoration(int $decoration): bool;

  /**
   * Specifies specifies the text code set
   *
   * @param string $encoding - the encoding name
   *
   * @return bool -
   */
  <<__Native>>
  public function setTextEncoding(string $encoding): bool;

  /**
   * Specifies the color of a background rectangle
   *
   * @param ImagickPixel $under_color - the under color
   *
   * @return bool -
   */
  <<__Native>>
  public function setTextUnderColor(mixed $under_color): bool;

  /**
   * Sets the vector graphics
   *
   * @param string $xml - xml containing the vector graphics
   *
   * @return bool -
   */
  <<__Native>>
  public function setVectorGraphics(string $xml): bool;

  /**
   * Sets the overall canvas size
   *
   * @param int $x1 - left x coordinate
   * @param int $y1 - left y coordinate
   * @param int $x2 - right x coordinate
   * @param int $y2 - right y coordinate
   *
   * @return bool -
   */
  <<__Native>>
  public function setViewbox(int $x1,
                      int $y1,
                      int $x2,
                      int $y2): bool;

  /**
   * Skews the current coordinate system in the horizontal direction
   *
   * @param float $degrees - degrees to skew
   *
   * @return bool -
   */
  <<__Native>>
  public function skewX(float $degrees): bool;

  /**
   * Skews the current coordinate system in the vertical direction
   *
   * @param float $degrees - degrees to skew
   *
   * @return bool -
   */
  <<__Native>>
  public function skewY(float $degrees): bool;

  /**
   * Applies a translation to the current coordinate system
   *
   * @param float $x - horizontal translation
   * @param float $y - vertical translation
   *
   * @return bool -
   */
  <<__Native>>
  public function translate(float $x,
                     float $y): bool;

}

class ImagickPixel {