//------------------------------------------------------------------------------
//
// This code was generated by a tool.
// libvips version: 8.17.0
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
//------------------------------------------------------------------------------
namespace NetVips;
public sealed partial class MutableImage
{
#region auto-generated functions
///
/// Draw a circle on an image.
///
///
///
/// image.Mutate(x => x.DrawCircle(ink, cx, cy, radius, fill: bool));
///
///
/// Color for pixels.
/// Centre of draw_circle.
/// Centre of draw_circle.
/// Radius in pixels.
/// Draw a solid object.
public void DrawCircle(double[] ink, int cx, int cy, int radius, bool? fill = null)
{
var options = new VOption();
options.AddIfPresent(nameof(fill), fill);
this.Call("draw_circle", options, ink, cx, cy, radius);
}
///
/// Flood-fill an area.
///
///
///
/// image.Mutate(x => x.DrawFlood(ink, x, y, test: Image, equal: bool));
///
///
/// Color for pixels.
/// DrawFlood start point.
/// DrawFlood start point.
/// Test pixels in this image.
/// DrawFlood while equal to edge.
public void DrawFlood(double[] ink, int x, int y, Image test = null, bool? equal = null)
{
var options = new VOption();
options.AddIfPresent(nameof(test), test);
options.AddIfPresent(nameof(equal), equal);
this.Call("draw_flood", options, ink, x, y);
}
///
/// Flood-fill an area.
///
///
///
/// image.Mutate(x => x.DrawFlood(ink, x, y, out var left, test: Image, equal: bool));
///
///
/// Color for pixels.
/// DrawFlood start point.
/// DrawFlood start point.
/// Left edge of modified area.
/// Test pixels in this image.
/// DrawFlood while equal to edge.
public void DrawFlood(double[] ink, int x, int y, out int left, Image test = null, bool? equal = null)
{
var options = new VOption();
options.AddIfPresent(nameof(test), test);
options.AddIfPresent(nameof(equal), equal);
options.Add("left", true);
var results = this.Call("draw_flood", options, ink, x, y) as object[];
var opts = results?[1] as VOption;
left = opts?["left"] is int out1 ? out1 : 0;
}
///
/// Flood-fill an area.
///
///
///
/// image.Mutate(x => x.DrawFlood(ink, x, y, out var left, out var top, test: Image, equal: bool));
///
///
/// Color for pixels.
/// DrawFlood start point.
/// DrawFlood start point.
/// Left edge of modified area.
/// Top edge of modified area.
/// Test pixels in this image.
/// DrawFlood while equal to edge.
public void DrawFlood(double[] ink, int x, int y, out int left, out int top, Image test = null, bool? equal = null)
{
var options = new VOption();
options.AddIfPresent(nameof(test), test);
options.AddIfPresent(nameof(equal), equal);
options.Add("left", true);
options.Add("top", true);
var results = this.Call("draw_flood", options, ink, x, y) as object[];
var opts = results?[1] as VOption;
left = opts?["left"] is int out1 ? out1 : 0;
top = opts?["top"] is int out2 ? out2 : 0;
}
///
/// Flood-fill an area.
///
///
///
/// image.Mutate(x => x.DrawFlood(ink, x, y, out var left, out var top, out var width, test: Image, equal: bool));
///
///
/// Color for pixels.
/// DrawFlood start point.
/// DrawFlood start point.
/// Left edge of modified area.
/// Top edge of modified area.
/// Width of modified area.
/// Test pixels in this image.
/// DrawFlood while equal to edge.
public void DrawFlood(double[] ink, int x, int y, out int left, out int top, out int width, Image test = null, bool? equal = null)
{
var options = new VOption();
options.AddIfPresent(nameof(test), test);
options.AddIfPresent(nameof(equal), equal);
options.Add("left", true);
options.Add("top", true);
options.Add("width", true);
var results = this.Call("draw_flood", options, ink, x, y) as object[];
var opts = results?[1] as VOption;
left = opts?["left"] is int out1 ? out1 : 0;
top = opts?["top"] is int out2 ? out2 : 0;
width = opts?["width"] is int out3 ? out3 : 0;
}
///
/// Flood-fill an area.
///
///
///
/// image.Mutate(x => x.DrawFlood(ink, x, y, out var left, out var top, out var width, out var height, test: Image, equal: bool));
///
///
/// Color for pixels.
/// DrawFlood start point.
/// DrawFlood start point.
/// Left edge of modified area.
/// Top edge of modified area.
/// Width of modified area.
/// Height of modified area.
/// Test pixels in this image.
/// DrawFlood while equal to edge.
public void DrawFlood(double[] ink, int x, int y, out int left, out int top, out int width, out int height, Image test = null, bool? equal = null)
{
var options = new VOption();
options.AddIfPresent(nameof(test), test);
options.AddIfPresent(nameof(equal), equal);
options.Add("left", true);
options.Add("top", true);
options.Add("width", true);
options.Add("height", true);
var results = this.Call("draw_flood", options, ink, x, y) as object[];
var opts = results?[1] as VOption;
left = opts?["left"] is int out1 ? out1 : 0;
top = opts?["top"] is int out2 ? out2 : 0;
width = opts?["width"] is int out3 ? out3 : 0;
height = opts?["height"] is int out4 ? out4 : 0;
}
///
/// Paint an image into another image.
///
///
///
/// image.Mutate(x => x.DrawImage(sub, x, y, mode: Enums.CombineMode));
///
///
/// Sub-image to insert into main image.
/// Draw image here.
/// Draw image here.
/// Combining mode.
public void DrawImage(Image sub, int x, int y, Enums.CombineMode? mode = null)
{
var options = new VOption();
options.AddIfPresent(nameof(mode), mode);
this.Call("draw_image", options, sub, x, y);
}
///
/// Draw a line on an image.
///
///
///
/// image.Mutate(x => x.DrawLine(ink, x1, y1, x2, y2));
///
///
/// Color for pixels.
/// Start of draw_line.
/// Start of draw_line.
/// End of draw_line.
/// End of draw_line.
public void DrawLine(double[] ink, int x1, int y1, int x2, int y2)
{
this.Call("draw_line", ink, x1, y1, x2, y2);
}
///
/// Draw a mask on an image.
///
///
///
/// image.Mutate(x => x.DrawMask(ink, mask, x, y));
///
///
/// Color for pixels.
/// Mask of pixels to draw.
/// Draw mask here.
/// Draw mask here.
public void DrawMask(double[] ink, Image mask, int x, int y)
{
this.Call("draw_mask", ink, mask, x, y);
}
///
/// Paint a rectangle on an image.
///
///
///
/// image.Mutate(x => x.DrawRect(ink, left, top, width, height, fill: bool));
///
///
/// Color for pixels.
/// Rect to fill.
/// Rect to fill.
/// Rect to fill.
/// Rect to fill.
/// Draw a solid object.
public void DrawRect(double[] ink, int left, int top, int width, int height, bool? fill = null)
{
var options = new VOption();
options.AddIfPresent(nameof(fill), fill);
this.Call("draw_rect", options, ink, left, top, width, height);
}
///
/// Blur a rectangle on an image.
///
///
///
/// image.Mutate(x => x.DrawSmudge(left, top, width, height));
///
///
/// Rect to fill.
/// Rect to fill.
/// Rect to fill.
/// Rect to fill.
public void DrawSmudge(int left, int top, int width, int height)
{
this.Call("draw_smudge", left, top, width, height);
}
#endregion
}