From 72b5e80c5583954ca637d9e9172d31082279e34b Mon Sep 17 00:00:00 2001 From: naqvis Date: Sun, 18 Feb 2024 12:26:01 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=2017faa?= =?UTF-8?q?c0e91b403905ab394da892629c97adc869f=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Vips.html | 94 +-- Vips/Cache.html | 18 +- Vips/Connection.html | 6 +- Vips/Enums.html | 2 +- Vips/Enums/Access.html | 8 +- Vips/Enums/Align.html | 8 +- Vips/Enums/Angle.html | 10 +- Vips/Enums/Angle45.html | 18 +- Vips/Enums/BandFormat.html | 24 +- Vips/Enums/BlendMode.html | 52 +- Vips/Enums/Coding.html | 10 +- Vips/Enums/Combine.html | 8 +- Vips/Enums/CombineMode.html | 6 +- Vips/Enums/CompassDirection.html | 20 +- Vips/Enums/DemandStyle.html | 10 +- Vips/Enums/Direction.html | 6 +- Vips/Enums/Extend.html | 14 +- Vips/Enums/FailOn.html | 10 +- Vips/Enums/ForeignDzContainer.html | 8 +- Vips/Enums/ForeignDzDepth.html | 8 +- Vips/Enums/ForeignDzLayout.html | 12 +- Vips/Enums/ForeignFlags.html | 41 +- Vips/Enums/ForeignHeifCompression.html | 10 +- Vips/Enums/ForeignJpegSubsample.html | 8 +- Vips/Enums/ForeignPpmFormat.html | 10 +- Vips/Enums/ForeignSubsample.html | 8 +- Vips/Enums/ForeignTiffCompression.html | 20 +- Vips/Enums/ForeignTiffPredictor.html | 8 +- Vips/Enums/ForeignTiffResunit.html | 6 +- Vips/Enums/ForeignWebpPreset.html | 14 +- Vips/Enums/ImageType.html | 18 +- Vips/Enums/Intent.html | 10 +- Vips/Enums/Interesting.html | 16 +- Vips/Enums/Interpretation.html | 42 +- Vips/Enums/Kernel.html | 14 +- Vips/Enums/OperationBoolean.html | 12 +- Vips/Enums/OperationComplex.html | 8 +- Vips/Enums/OperationComplex2.html | 4 +- Vips/Enums/OperationComplexget.html | 6 +- Vips/Enums/OperationFlags.html | 27 +- Vips/Enums/OperationMath.html | 34 +- Vips/Enums/OperationMath2.html | 8 +- Vips/Enums/OperationMorphology.html | 6 +- Vips/Enums/OperationRelational.html | 14 +- Vips/Enums/OperationRound.html | 8 +- Vips/Enums/PCS.html | 6 +- Vips/Enums/Precision.html | 8 +- Vips/Enums/RegionShrink.html | 14 +- Vips/Enums/Saveable.html | 14 +- Vips/Enums/Signal.html | 8 +- Vips/Enums/Size.html | 10 +- Vips/Enums/Token.html | 10 +- Vips/GObject.html | 22 +- Vips/GValue.html | 14 +- Vips/Image.html | 932 ++++++++++++------------- Vips/Image/EvalProc.html | 2 +- Vips/Interpolate.html | 4 +- Vips/Introspect.html | 20 +- Vips/Introspect/Argument.html | 8 +- Vips/MutableImage.html | 30 +- Vips/Operation.html | 18 +- Vips/Region.html | 10 +- Vips/Source.html | 10 +- Vips/SourceCustom.html | 10 +- Vips/SourceStream.html | 4 +- Vips/Stats.html | 10 +- Vips/Target.html | 10 +- Vips/TargetCustom.html | 8 +- Vips/TargetStream.html | 4 +- Vips/Type.html | 32 +- Vips/VipsBlob.html | 14 +- Vips/VipsException.html | 4 +- Vips/VipsObject.html | 20 +- index.json | 2 +- search-index.js | 2 +- 75 files changed, 974 insertions(+), 990 deletions(-) diff --git a/Vips.html b/Vips.html index f7683b1..e88afaf 100644 --- a/Vips.html +++ b/Vips.html @@ -496,126 +496,126 @@

- + vips.cr
- + vips/connection.cr
- + vips/ext/image.cr
- + vips/ext/mutableimage.cr
- + vips/gobject.cr
- + vips/gvalue.cr
- + vips/image.cr
- + vips/interpolate.cr
- + vips/introspect.cr
- + vips/mutableimage.cr
- + vips/operation.cr
- + vips/region.cr
- + vips/source.cr
- + vips/stats.cr
- + vips/target.cr
- + vips/vips.cr
- + vips/vipsblob.cr
- + vips/vipsobject.cr @@ -894,7 +894,7 @@


- [View source] + [View source]
@@ -910,7 +910,7 @@


- [View source] + [View source]
@@ -931,7 +931,7 @@


- [View source] + [View source]
@@ -952,7 +952,7 @@


- [View source] + [View source]
@@ -973,7 +973,7 @@


- [View source] + [View source]
@@ -994,7 +994,7 @@


- [View source] + [View source]
@@ -1015,7 +1015,7 @@


- [View source] + [View source]
@@ -1036,7 +1036,7 @@


- [View source] + [View source]
@@ -1057,7 +1057,7 @@


- [View source] + [View source]
@@ -1079,7 +1079,7 @@


- [View source] + [View source]
@@ -1101,7 +1101,7 @@


- [View source] + [View source]
@@ -1123,7 +1123,7 @@


- [View source] + [View source]
@@ -1146,7 +1146,7 @@


- [View source] + [View source]
@@ -1169,7 +1169,7 @@


- [View source] + [View source]
@@ -1192,7 +1192,7 @@


- [View source] + [View source]
@@ -1213,7 +1213,7 @@


- [View source] + [View source]
@@ -1229,7 +1229,7 @@


- [View source] + [View source]
@@ -1252,7 +1252,7 @@


- [View source] + [View source]
@@ -1275,7 +1275,7 @@


- [View source] + [View source]
@@ -1296,7 +1296,7 @@


- [View source] + [View source]
@@ -1312,7 +1312,7 @@


- [View source] + [View source]
@@ -1333,7 +1333,7 @@


- [View source] + [View source]
@@ -1356,7 +1356,7 @@


- [View source] + [View source]
@@ -1377,7 +1377,7 @@


- [View source] + [View source]
@@ -1400,7 +1400,7 @@


- [View source] + [View source]
@@ -1421,7 +1421,7 @@


- [View source] + [View source]
@@ -1444,7 +1444,7 @@


- [View source] + [View source]
@@ -1465,7 +1465,7 @@


- [View source] + [View source]
@@ -1486,7 +1486,7 @@


- [View source] + [View source]
diff --git a/Vips/Cache.html b/Vips/Cache.html index a3b4cdd..8f53b04 100644 --- a/Vips/Cache.html +++ b/Vips/Cache.html @@ -482,7 +482,7 @@

- + vips/cache.cr @@ -601,7 +601,7 @@


- [View source] + [View source]
@@ -622,7 +622,7 @@


- [View source] + [View source]
@@ -643,7 +643,7 @@


- [View source] + [View source]
@@ -664,7 +664,7 @@


- [View source] + [View source]
@@ -685,7 +685,7 @@


- [View source] + [View source]
@@ -706,7 +706,7 @@


- [View source] + [View source]
@@ -727,7 +727,7 @@


- [View source] + [View source]
@@ -748,7 +748,7 @@


- [View source] + [View source]
diff --git a/Vips/Connection.html b/Vips/Connection.html index d53fe8c..6cf95cb 100644 --- a/Vips/Connection.html +++ b/Vips/Connection.html @@ -500,7 +500,7 @@

- + vips/connection.cr @@ -721,7 +721,7 @@


- [View source] + [View source]
@@ -742,7 +742,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums.html b/Vips/Enums.html index b58c205..b345443 100644 --- a/Vips/Enums.html +++ b/Vips/Enums.html @@ -482,7 +482,7 @@

- + vips/enums.cr diff --git a/Vips/Enums/Access.html b/Vips/Enums/Access.html index 4b413d7..7e38e52 100644 --- a/Vips/Enums/Access.html +++ b/Vips/Enums/Access.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -654,7 +654,7 @@


- [View source] + [View source]
@@ -670,7 +670,7 @@


- [View source] + [View source]
@@ -686,7 +686,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/Align.html b/Vips/Enums/Align.html index 9a10b79..df0e524 100644 --- a/Vips/Enums/Align.html +++ b/Vips/Enums/Align.html @@ -493,7 +493,7 @@

- + vips/enums.cr @@ -663,7 +663,7 @@


- [View source] + [View source]
@@ -679,7 +679,7 @@


- [View source] + [View source]
@@ -695,7 +695,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/Angle.html b/Vips/Enums/Angle.html index 8b924eb..6c269b2 100644 --- a/Vips/Enums/Angle.html +++ b/Vips/Enums/Angle.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -650,7 +650,7 @@


- [View source] + [View source]
@@ -666,7 +666,7 @@


- [View source] + [View source]
@@ -682,7 +682,7 @@


- [View source] + [View source]
@@ -698,7 +698,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/Angle45.html b/Vips/Enums/Angle45.html index c2a3a82..c734e84 100644 --- a/Vips/Enums/Angle45.html +++ b/Vips/Enums/Angle45.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -690,7 +690,7 @@


- [View source] + [View source]
@@ -706,7 +706,7 @@


- [View source] + [View source]
@@ -722,7 +722,7 @@


- [View source] + [View source]
@@ -738,7 +738,7 @@


- [View source] + [View source]
@@ -754,7 +754,7 @@


- [View source] + [View source]
@@ -770,7 +770,7 @@


- [View source] + [View source]
@@ -786,7 +786,7 @@


- [View source] + [View source]
@@ -802,7 +802,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/BandFormat.html b/Vips/Enums/BandFormat.html index 401c375..aaa183c 100644 --- a/Vips/Enums/BandFormat.html +++ b/Vips/Enums/BandFormat.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -720,7 +720,7 @@


- [View source] + [View source]
@@ -736,7 +736,7 @@


- [View source] + [View source]
@@ -752,7 +752,7 @@


- [View source] + [View source]
@@ -768,7 +768,7 @@


- [View source] + [View source]
@@ -784,7 +784,7 @@


- [View source] + [View source]
@@ -800,7 +800,7 @@


- [View source] + [View source]
@@ -816,7 +816,7 @@


- [View source] + [View source]
@@ -832,7 +832,7 @@


- [View source] + [View source]
@@ -848,7 +848,7 @@


- [View source] + [View source]
@@ -864,7 +864,7 @@


- [View source] + [View source]
@@ -880,7 +880,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/BlendMode.html b/Vips/Enums/BlendMode.html index b9e4eae..b990259 100644 --- a/Vips/Enums/BlendMode.html +++ b/Vips/Enums/BlendMode.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -860,7 +860,7 @@


- [View source] + [View source]
@@ -876,7 +876,7 @@


- [View source] + [View source]
@@ -892,7 +892,7 @@


- [View source] + [View source]
@@ -908,7 +908,7 @@


- [View source] + [View source]
@@ -924,7 +924,7 @@


- [View source] + [View source]
@@ -940,7 +940,7 @@


- [View source] + [View source]
@@ -956,7 +956,7 @@


- [View source] + [View source]
@@ -972,7 +972,7 @@


- [View source] + [View source]
@@ -988,7 +988,7 @@


- [View source] + [View source]
@@ -1004,7 +1004,7 @@


- [View source] + [View source]
@@ -1020,7 +1020,7 @@


- [View source] + [View source]
@@ -1036,7 +1036,7 @@


- [View source] + [View source]
@@ -1052,7 +1052,7 @@


- [View source] + [View source]
@@ -1068,7 +1068,7 @@


- [View source] + [View source]
@@ -1084,7 +1084,7 @@


- [View source] + [View source]
@@ -1100,7 +1100,7 @@


- [View source] + [View source]
@@ -1116,7 +1116,7 @@


- [View source] + [View source]
@@ -1132,7 +1132,7 @@


- [View source] + [View source]
@@ -1148,7 +1148,7 @@


- [View source] + [View source]
@@ -1164,7 +1164,7 @@


- [View source] + [View source]
@@ -1180,7 +1180,7 @@


- [View source] + [View source]
@@ -1196,7 +1196,7 @@


- [View source] + [View source]
@@ -1212,7 +1212,7 @@


- [View source] + [View source]
@@ -1228,7 +1228,7 @@


- [View source] + [View source]
@@ -1244,7 +1244,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/Coding.html b/Vips/Enums/Coding.html index d1eeacb..0d811b3 100644 --- a/Vips/Enums/Coding.html +++ b/Vips/Enums/Coding.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -650,7 +650,7 @@


- [View source] + [View source]
@@ -666,7 +666,7 @@


- [View source] + [View source]
@@ -682,7 +682,7 @@


- [View source] + [View source]
@@ -698,7 +698,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/Combine.html b/Vips/Enums/Combine.html index 46ad58e..e210041 100644 --- a/Vips/Enums/Combine.html +++ b/Vips/Enums/Combine.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -640,7 +640,7 @@


- [View source] + [View source]
@@ -656,7 +656,7 @@


- [View source] + [View source]
@@ -672,7 +672,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/CombineMode.html b/Vips/Enums/CombineMode.html index 1979273..4915c0a 100644 --- a/Vips/Enums/CombineMode.html +++ b/Vips/Enums/CombineMode.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -630,7 +630,7 @@


- [View source] + [View source]
@@ -646,7 +646,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/CompassDirection.html b/Vips/Enums/CompassDirection.html index b541c47..ae8134d 100644 --- a/Vips/Enums/CompassDirection.html +++ b/Vips/Enums/CompassDirection.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -700,7 +700,7 @@


- [View source] + [View source]
@@ -716,7 +716,7 @@


- [View source] + [View source]
@@ -732,7 +732,7 @@


- [View source] + [View source]
@@ -748,7 +748,7 @@


- [View source] + [View source]
@@ -764,7 +764,7 @@


- [View source] + [View source]
@@ -780,7 +780,7 @@


- [View source] + [View source]
@@ -796,7 +796,7 @@


- [View source] + [View source]
@@ -812,7 +812,7 @@


- [View source] + [View source]
@@ -828,7 +828,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/DemandStyle.html b/Vips/Enums/DemandStyle.html index ff7f9ec..9652f26 100644 --- a/Vips/Enums/DemandStyle.html +++ b/Vips/Enums/DemandStyle.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -650,7 +650,7 @@


- [View source] + [View source]
@@ -666,7 +666,7 @@


- [View source] + [View source]
@@ -682,7 +682,7 @@


- [View source] + [View source]
@@ -698,7 +698,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/Direction.html b/Vips/Enums/Direction.html index 4db4f74..a03f454 100644 --- a/Vips/Enums/Direction.html +++ b/Vips/Enums/Direction.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -630,7 +630,7 @@


- [View source] + [View source]
@@ -646,7 +646,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/Extend.html b/Vips/Enums/Extend.html index 5a7d6f0..4d14acd 100644 --- a/Vips/Enums/Extend.html +++ b/Vips/Enums/Extend.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -670,7 +670,7 @@


- [View source] + [View source]
@@ -686,7 +686,7 @@


- [View source] + [View source]
@@ -702,7 +702,7 @@


- [View source] + [View source]
@@ -718,7 +718,7 @@


- [View source] + [View source]
@@ -734,7 +734,7 @@


- [View source] + [View source]
@@ -750,7 +750,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/FailOn.html b/Vips/Enums/FailOn.html index a0c932c..63143cb 100644 --- a/Vips/Enums/FailOn.html +++ b/Vips/Enums/FailOn.html @@ -495,7 +495,7 @@

- + vips/enums.cr @@ -679,7 +679,7 @@


- [View source] + [View source]
@@ -695,7 +695,7 @@


- [View source] + [View source]
@@ -711,7 +711,7 @@


- [View source] + [View source]
@@ -727,7 +727,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/ForeignDzContainer.html b/Vips/Enums/ForeignDzContainer.html index e8a5109..1bf2da4 100644 --- a/Vips/Enums/ForeignDzContainer.html +++ b/Vips/Enums/ForeignDzContainer.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -640,7 +640,7 @@


- [View source] + [View source]
@@ -656,7 +656,7 @@


- [View source] + [View source]
@@ -672,7 +672,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/ForeignDzDepth.html b/Vips/Enums/ForeignDzDepth.html index b605526..f8014de 100644 --- a/Vips/Enums/ForeignDzDepth.html +++ b/Vips/Enums/ForeignDzDepth.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -640,7 +640,7 @@


- [View source] + [View source]
@@ -656,7 +656,7 @@


- [View source] + [View source]
@@ -672,7 +672,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/ForeignDzLayout.html b/Vips/Enums/ForeignDzLayout.html index 6f4b965..1da6e76 100644 --- a/Vips/Enums/ForeignDzLayout.html +++ b/Vips/Enums/ForeignDzLayout.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -660,7 +660,7 @@


- [View source] + [View source]
@@ -676,7 +676,7 @@


- [View source] + [View source]
@@ -692,7 +692,7 @@


- [View source] + [View source]
@@ -708,7 +708,7 @@


- [View source] + [View source]
@@ -724,7 +724,7 @@


- [View source] + [View source]
diff --git a/Vips/Enums/ForeignFlags.html b/Vips/Enums/ForeignFlags.html index 237beb7..476426e 100644 --- a/Vips/Enums/ForeignFlags.html +++ b/Vips/Enums/ForeignFlags.html @@ -482,7 +482,7 @@

- + vips/enums.cr @@ -503,11 +503,6 @@

-
- None = 0 -
- -
Partial = 1
@@ -523,6 +518,11 @@

+
+ None = 0 +
+ +
All = 7
@@ -548,11 +548,6 @@

    -
  • - #all? - -
  • -
  • #bigendian? @@ -649,22 +644,6 @@

    Instance Method Detail

    -
    -
    - - def all? - - # -
    - -
    -
    - - [View source] - -
    -
    -
    @@ -676,7 +655,7 @@


    @@ -692,7 +671,7 @@


    @@ -708,7 +687,7 @@


    @@ -724,7 +703,7 @@


    diff --git a/Vips/Enums/ForeignHeifCompression.html b/Vips/Enums/ForeignHeifCompression.html index fbd97c1..902c191 100644 --- a/Vips/Enums/ForeignHeifCompression.html +++ b/Vips/Enums/ForeignHeifCompression.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -650,7 +650,7 @@


    @@ -666,7 +666,7 @@


    @@ -682,7 +682,7 @@


    @@ -698,7 +698,7 @@


    diff --git a/Vips/Enums/ForeignJpegSubsample.html b/Vips/Enums/ForeignJpegSubsample.html index 982c653..114b876 100644 --- a/Vips/Enums/ForeignJpegSubsample.html +++ b/Vips/Enums/ForeignJpegSubsample.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -640,7 +640,7 @@


    @@ -656,7 +656,7 @@


    @@ -672,7 +672,7 @@


    diff --git a/Vips/Enums/ForeignPpmFormat.html b/Vips/Enums/ForeignPpmFormat.html index 490c0f8..b8ebf34 100644 --- a/Vips/Enums/ForeignPpmFormat.html +++ b/Vips/Enums/ForeignPpmFormat.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -650,7 +650,7 @@


    @@ -666,7 +666,7 @@


    @@ -682,7 +682,7 @@


    @@ -698,7 +698,7 @@


    diff --git a/Vips/Enums/ForeignSubsample.html b/Vips/Enums/ForeignSubsample.html index c564473..5bc8f8d 100644 --- a/Vips/Enums/ForeignSubsample.html +++ b/Vips/Enums/ForeignSubsample.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -640,7 +640,7 @@


    @@ -656,7 +656,7 @@


    @@ -672,7 +672,7 @@


    diff --git a/Vips/Enums/ForeignTiffCompression.html b/Vips/Enums/ForeignTiffCompression.html index 0be9f16..8c2d7d3 100644 --- a/Vips/Enums/ForeignTiffCompression.html +++ b/Vips/Enums/ForeignTiffCompression.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -700,7 +700,7 @@


    @@ -716,7 +716,7 @@


    @@ -732,7 +732,7 @@


    @@ -748,7 +748,7 @@


    @@ -764,7 +764,7 @@


    @@ -780,7 +780,7 @@


    @@ -796,7 +796,7 @@


    @@ -812,7 +812,7 @@


    @@ -828,7 +828,7 @@


    diff --git a/Vips/Enums/ForeignTiffPredictor.html b/Vips/Enums/ForeignTiffPredictor.html index b94d9e9..ff62625 100644 --- a/Vips/Enums/ForeignTiffPredictor.html +++ b/Vips/Enums/ForeignTiffPredictor.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -640,7 +640,7 @@


    @@ -656,7 +656,7 @@


    @@ -672,7 +672,7 @@


    diff --git a/Vips/Enums/ForeignTiffResunit.html b/Vips/Enums/ForeignTiffResunit.html index 35265b7..7753db4 100644 --- a/Vips/Enums/ForeignTiffResunit.html +++ b/Vips/Enums/ForeignTiffResunit.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -630,7 +630,7 @@


    @@ -646,7 +646,7 @@


    diff --git a/Vips/Enums/ForeignWebpPreset.html b/Vips/Enums/ForeignWebpPreset.html index 48216dc..62c6871 100644 --- a/Vips/Enums/ForeignWebpPreset.html +++ b/Vips/Enums/ForeignWebpPreset.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -670,7 +670,7 @@


    @@ -686,7 +686,7 @@


    @@ -702,7 +702,7 @@


    @@ -718,7 +718,7 @@


    @@ -734,7 +734,7 @@


    @@ -750,7 +750,7 @@


    diff --git a/Vips/Enums/ImageType.html b/Vips/Enums/ImageType.html index 5f919e4..ff4c420 100644 --- a/Vips/Enums/ImageType.html +++ b/Vips/Enums/ImageType.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -690,7 +690,7 @@


    @@ -706,7 +706,7 @@


    @@ -722,7 +722,7 @@


    @@ -738,7 +738,7 @@


    @@ -754,7 +754,7 @@


    @@ -770,7 +770,7 @@


    @@ -786,7 +786,7 @@


    @@ -802,7 +802,7 @@


    diff --git a/Vips/Enums/Intent.html b/Vips/Enums/Intent.html index e77f9f0..71982b8 100644 --- a/Vips/Enums/Intent.html +++ b/Vips/Enums/Intent.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -650,7 +650,7 @@


    @@ -666,7 +666,7 @@


    @@ -682,7 +682,7 @@


    @@ -698,7 +698,7 @@


    diff --git a/Vips/Enums/Interesting.html b/Vips/Enums/Interesting.html index 2f0c526..ecc02ce 100644 --- a/Vips/Enums/Interesting.html +++ b/Vips/Enums/Interesting.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -680,7 +680,7 @@


    @@ -696,7 +696,7 @@


    @@ -712,7 +712,7 @@


    @@ -728,7 +728,7 @@


    @@ -744,7 +744,7 @@


    @@ -760,7 +760,7 @@


    @@ -776,7 +776,7 @@


    diff --git a/Vips/Enums/Interpretation.html b/Vips/Enums/Interpretation.html index d98c8e1..6368d0b 100644 --- a/Vips/Enums/Interpretation.html +++ b/Vips/Enums/Interpretation.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -810,7 +810,7 @@


    @@ -826,7 +826,7 @@


    @@ -842,7 +842,7 @@


    @@ -858,7 +858,7 @@


    @@ -874,7 +874,7 @@


    @@ -890,7 +890,7 @@


    @@ -906,7 +906,7 @@


    @@ -922,7 +922,7 @@


    @@ -938,7 +938,7 @@


    @@ -954,7 +954,7 @@


    @@ -970,7 +970,7 @@


    @@ -986,7 +986,7 @@


    @@ -1002,7 +1002,7 @@


    @@ -1018,7 +1018,7 @@


    @@ -1034,7 +1034,7 @@


    @@ -1050,7 +1050,7 @@


    @@ -1066,7 +1066,7 @@


    @@ -1082,7 +1082,7 @@


    @@ -1098,7 +1098,7 @@


    @@ -1114,7 +1114,7 @@


    diff --git a/Vips/Enums/Kernel.html b/Vips/Enums/Kernel.html index 96b4d13..26653eb 100644 --- a/Vips/Enums/Kernel.html +++ b/Vips/Enums/Kernel.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -670,7 +670,7 @@


    @@ -686,7 +686,7 @@


    @@ -702,7 +702,7 @@


    @@ -718,7 +718,7 @@


    @@ -734,7 +734,7 @@


    @@ -750,7 +750,7 @@


    diff --git a/Vips/Enums/OperationBoolean.html b/Vips/Enums/OperationBoolean.html index c92e68c..88c3385 100644 --- a/Vips/Enums/OperationBoolean.html +++ b/Vips/Enums/OperationBoolean.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -660,7 +660,7 @@


    @@ -676,7 +676,7 @@


    @@ -692,7 +692,7 @@


    @@ -708,7 +708,7 @@


    @@ -724,7 +724,7 @@


    diff --git a/Vips/Enums/OperationComplex.html b/Vips/Enums/OperationComplex.html index 3592b3c..826f480 100644 --- a/Vips/Enums/OperationComplex.html +++ b/Vips/Enums/OperationComplex.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -640,7 +640,7 @@


    @@ -656,7 +656,7 @@


    @@ -672,7 +672,7 @@


    diff --git a/Vips/Enums/OperationComplex2.html b/Vips/Enums/OperationComplex2.html index 61aaa2d..8d894a0 100644 --- a/Vips/Enums/OperationComplex2.html +++ b/Vips/Enums/OperationComplex2.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -620,7 +620,7 @@


    diff --git a/Vips/Enums/OperationComplexget.html b/Vips/Enums/OperationComplexget.html index 76bb190..1d1000c 100644 --- a/Vips/Enums/OperationComplexget.html +++ b/Vips/Enums/OperationComplexget.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -630,7 +630,7 @@


    @@ -646,7 +646,7 @@


    diff --git a/Vips/Enums/OperationFlags.html b/Vips/Enums/OperationFlags.html index f42c154..9696f01 100644 --- a/Vips/Enums/OperationFlags.html +++ b/Vips/Enums/OperationFlags.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -503,11 +503,6 @@

    -
    - None = 0 -
    - -
    Sequential = 1
    @@ -528,6 +523,16 @@

    +
    + None = 0 +
    + + +
    + All = 15 +
    + +

    @@ -660,7 +665,7 @@


    @@ -676,7 +681,7 @@


    @@ -692,7 +697,7 @@


    @@ -708,7 +713,7 @@


    @@ -724,7 +729,7 @@


    diff --git a/Vips/Enums/OperationMath.html b/Vips/Enums/OperationMath.html index 4275c85..3cd6190 100644 --- a/Vips/Enums/OperationMath.html +++ b/Vips/Enums/OperationMath.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -770,7 +770,7 @@


    @@ -786,7 +786,7 @@


    @@ -802,7 +802,7 @@


    @@ -818,7 +818,7 @@


    @@ -834,7 +834,7 @@


    @@ -850,7 +850,7 @@


    @@ -866,7 +866,7 @@


    @@ -882,7 +882,7 @@


    @@ -898,7 +898,7 @@


    @@ -914,7 +914,7 @@


    @@ -930,7 +930,7 @@


    @@ -946,7 +946,7 @@


    @@ -962,7 +962,7 @@


    @@ -978,7 +978,7 @@


    @@ -994,7 +994,7 @@


    @@ -1010,7 +1010,7 @@


    diff --git a/Vips/Enums/OperationMath2.html b/Vips/Enums/OperationMath2.html index ee43f6e..f93c04b 100644 --- a/Vips/Enums/OperationMath2.html +++ b/Vips/Enums/OperationMath2.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -640,7 +640,7 @@


    @@ -656,7 +656,7 @@


    @@ -672,7 +672,7 @@


    diff --git a/Vips/Enums/OperationMorphology.html b/Vips/Enums/OperationMorphology.html index 8ad37dd..e354b3d 100644 --- a/Vips/Enums/OperationMorphology.html +++ b/Vips/Enums/OperationMorphology.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -630,7 +630,7 @@


    @@ -646,7 +646,7 @@


    diff --git a/Vips/Enums/OperationRelational.html b/Vips/Enums/OperationRelational.html index 77d45fa..1ba9f6c 100644 --- a/Vips/Enums/OperationRelational.html +++ b/Vips/Enums/OperationRelational.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -670,7 +670,7 @@


    @@ -686,7 +686,7 @@


    @@ -702,7 +702,7 @@


    @@ -718,7 +718,7 @@


    @@ -734,7 +734,7 @@


    @@ -750,7 +750,7 @@


    diff --git a/Vips/Enums/OperationRound.html b/Vips/Enums/OperationRound.html index c3de9df..ddcc244 100644 --- a/Vips/Enums/OperationRound.html +++ b/Vips/Enums/OperationRound.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -640,7 +640,7 @@


    @@ -656,7 +656,7 @@


    @@ -672,7 +672,7 @@


    diff --git a/Vips/Enums/PCS.html b/Vips/Enums/PCS.html index e0d2183..aca9465 100644 --- a/Vips/Enums/PCS.html +++ b/Vips/Enums/PCS.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -630,7 +630,7 @@


    @@ -646,7 +646,7 @@


    diff --git a/Vips/Enums/Precision.html b/Vips/Enums/Precision.html index 5203204..3d71b5a 100644 --- a/Vips/Enums/Precision.html +++ b/Vips/Enums/Precision.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -640,7 +640,7 @@


    @@ -656,7 +656,7 @@


    @@ -672,7 +672,7 @@


    diff --git a/Vips/Enums/RegionShrink.html b/Vips/Enums/RegionShrink.html index 676cce1..6bbe439 100644 --- a/Vips/Enums/RegionShrink.html +++ b/Vips/Enums/RegionShrink.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -670,7 +670,7 @@


    @@ -686,7 +686,7 @@


    @@ -702,7 +702,7 @@


    @@ -718,7 +718,7 @@


    @@ -734,7 +734,7 @@


    @@ -750,7 +750,7 @@


    diff --git a/Vips/Enums/Saveable.html b/Vips/Enums/Saveable.html index ea3b1e4..a6efd7c 100644 --- a/Vips/Enums/Saveable.html +++ b/Vips/Enums/Saveable.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -670,7 +670,7 @@


    @@ -686,7 +686,7 @@


    @@ -702,7 +702,7 @@


    @@ -718,7 +718,7 @@


    @@ -734,7 +734,7 @@


    @@ -750,7 +750,7 @@


    diff --git a/Vips/Enums/Signal.html b/Vips/Enums/Signal.html index 1d66545..5809e4d 100644 --- a/Vips/Enums/Signal.html +++ b/Vips/Enums/Signal.html @@ -493,7 +493,7 @@

    - + vips/enums.cr @@ -670,7 +670,7 @@


    @@ -686,7 +686,7 @@


    @@ -702,7 +702,7 @@


    diff --git a/Vips/Enums/Size.html b/Vips/Enums/Size.html index d179d8f..e59611b 100644 --- a/Vips/Enums/Size.html +++ b/Vips/Enums/Size.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -650,7 +650,7 @@


    @@ -666,7 +666,7 @@


    @@ -682,7 +682,7 @@


    @@ -698,7 +698,7 @@


    diff --git a/Vips/Enums/Token.html b/Vips/Enums/Token.html index 8a2c462..c30be2c 100644 --- a/Vips/Enums/Token.html +++ b/Vips/Enums/Token.html @@ -482,7 +482,7 @@

    - + vips/enums.cr @@ -650,7 +650,7 @@


    @@ -666,7 +666,7 @@


    @@ -682,7 +682,7 @@


    @@ -698,7 +698,7 @@


    diff --git a/Vips/GObject.html b/Vips/GObject.html index 6c4f34a..c2ab463 100644 --- a/Vips/GObject.html +++ b/Vips/GObject.html @@ -498,7 +498,7 @@

    - + vips/gobject.cr @@ -650,7 +650,7 @@


    @@ -666,7 +666,7 @@


    @@ -687,7 +687,7 @@


    @@ -708,7 +708,7 @@


    @@ -730,7 +730,7 @@


    @@ -746,7 +746,7 @@


    @@ -768,7 +768,7 @@


    @@ -789,7 +789,7 @@


    @@ -810,7 +810,7 @@


    @@ -831,7 +831,7 @@


    diff --git a/Vips/GValue.html b/Vips/GValue.html index c83942e..534dfa8 100644 --- a/Vips/GValue.html +++ b/Vips/GValue.html @@ -500,7 +500,7 @@

    - + vips/gvalue.cr @@ -817,7 +817,7 @@


    @@ -838,7 +838,7 @@


    @@ -876,7 +876,7 @@


    @@ -897,7 +897,7 @@


    @@ -919,7 +919,7 @@


    @@ -943,7 +943,7 @@


    diff --git a/Vips/Image.html b/Vips/Image.html index 92826cd..7f6d2a2 100644 --- a/Vips/Image.html +++ b/Vips/Image.html @@ -498,14 +498,14 @@

    - + vips/ext/image.cr
    - + vips/image.cr @@ -3940,7 +3940,7 @@


    @@ -3973,7 +3973,7 @@


    @@ -4006,7 +4006,7 @@


    @@ -4039,7 +4039,7 @@


    @@ -4068,7 +4068,7 @@


    @@ -4091,7 +4091,7 @@


    @@ -4125,7 +4125,7 @@


    @@ -4148,7 +4148,7 @@


    @@ -4179,7 +4179,7 @@


    @@ -4224,7 +4224,7 @@


    @@ -4259,7 +4259,7 @@


    @@ -4289,7 +4289,7 @@


    @@ -4326,7 +4326,7 @@


    @@ -4363,7 +4363,7 @@


    @@ -4400,7 +4400,7 @@


    @@ -4431,7 +4431,7 @@


    @@ -4454,7 +4454,7 @@


    @@ -4477,7 +4477,7 @@


    @@ -4500,7 +4500,7 @@


    @@ -4523,7 +4523,7 @@


    @@ -4546,7 +4546,7 @@


    @@ -4579,7 +4579,7 @@


    @@ -4612,7 +4612,7 @@


    @@ -4645,7 +4645,7 @@


    @@ -4674,7 +4674,7 @@


    @@ -4705,7 +4705,7 @@


    @@ -4737,7 +4737,7 @@


    @@ -4772,7 +4772,7 @@


    @@ -4807,7 +4807,7 @@


    @@ -4842,7 +4842,7 @@


    @@ -4877,7 +4877,7 @@


    @@ -4907,7 +4907,7 @@


    @@ -4944,7 +4944,7 @@


    @@ -4981,7 +4981,7 @@


    @@ -5018,7 +5018,7 @@


    @@ -5055,7 +5055,7 @@


    @@ -5084,7 +5084,7 @@


    @@ -5118,7 +5118,7 @@


    @@ -5152,7 +5152,7 @@


    @@ -5186,7 +5186,7 @@


    @@ -5220,7 +5220,7 @@


    @@ -5256,7 +5256,7 @@


    @@ -5292,7 +5292,7 @@


    @@ -5328,7 +5328,7 @@


    @@ -5364,7 +5364,7 @@


    @@ -5397,7 +5397,7 @@


    @@ -5430,7 +5430,7 @@


    @@ -5463,7 +5463,7 @@


    @@ -5496,7 +5496,7 @@


    @@ -5527,7 +5527,7 @@


    @@ -5563,7 +5563,7 @@


    @@ -5599,7 +5599,7 @@


    @@ -5635,7 +5635,7 @@


    @@ -5673,7 +5673,7 @@


    @@ -5710,7 +5710,7 @@


    @@ -5744,7 +5744,7 @@


    @@ -5779,7 +5779,7 @@


    @@ -5816,7 +5816,7 @@


    @@ -5852,7 +5852,7 @@


    @@ -5886,7 +5886,7 @@


    @@ -5922,7 +5922,7 @@


    @@ -5957,7 +5957,7 @@


    @@ -5990,7 +5990,7 @@


    @@ -6023,7 +6023,7 @@


    @@ -6056,7 +6056,7 @@


    @@ -6089,7 +6089,7 @@


    @@ -6122,7 +6122,7 @@


    @@ -6160,7 +6160,7 @@


    @@ -6198,7 +6198,7 @@


    @@ -6236,7 +6236,7 @@


    @@ -6275,7 +6275,7 @@


    @@ -6314,7 +6314,7 @@


    @@ -6353,7 +6353,7 @@


    @@ -6392,7 +6392,7 @@


    @@ -6424,7 +6424,7 @@


    @@ -6458,7 +6458,7 @@


    @@ -6492,7 +6492,7 @@


    @@ -6526,7 +6526,7 @@


    @@ -6560,7 +6560,7 @@


    @@ -6593,7 +6593,7 @@


    @@ -6626,7 +6626,7 @@


    @@ -6659,7 +6659,7 @@


    @@ -6686,7 +6686,7 @@


    @@ -6719,7 +6719,7 @@


    @@ -6752,7 +6752,7 @@


    @@ -6785,7 +6785,7 @@


    @@ -6818,7 +6818,7 @@


    @@ -6857,7 +6857,7 @@


    @@ -6880,7 +6880,7 @@


    @@ -6912,7 +6912,7 @@


    @@ -6939,7 +6939,7 @@


    @@ -6975,7 +6975,7 @@


    @@ -7011,7 +7011,7 @@


    @@ -7047,7 +7047,7 @@


    @@ -7083,7 +7083,7 @@


    @@ -7110,7 +7110,7 @@


    @@ -7144,7 +7144,7 @@


    @@ -7182,7 +7182,7 @@


    @@ -7221,7 +7221,7 @@


    @@ -7260,7 +7260,7 @@


    @@ -7300,7 +7300,7 @@


    @@ -7337,7 +7337,7 @@


    @@ -7374,7 +7374,7 @@


    @@ -7411,7 +7411,7 @@


    @@ -7448,7 +7448,7 @@


    @@ -7484,7 +7484,7 @@


    @@ -7517,7 +7517,7 @@


    @@ -7550,7 +7550,7 @@


    @@ -7583,7 +7583,7 @@


    @@ -7619,7 +7619,7 @@


    @@ -7655,7 +7655,7 @@


    @@ -7691,7 +7691,7 @@


    @@ -7727,7 +7727,7 @@


    @@ -7758,7 +7758,7 @@


    @@ -7790,7 +7790,7 @@


    @@ -7820,7 +7820,7 @@


    @@ -7862,7 +7862,7 @@


    @@ -7878,7 +7878,7 @@


    @@ -7894,7 +7894,7 @@


    @@ -7910,7 +7910,7 @@


    @@ -7931,7 +7931,7 @@


    @@ -7952,7 +7952,7 @@


    @@ -7973,7 +7973,7 @@


    @@ -7989,7 +7989,7 @@


    @@ -8005,7 +8005,7 @@


    @@ -8021,7 +8021,7 @@


    @@ -8037,7 +8037,7 @@


    @@ -8053,7 +8053,7 @@


    @@ -8069,7 +8069,7 @@


    @@ -8094,7 +8094,7 @@


    @@ -8110,7 +8110,7 @@


    @@ -8126,7 +8126,7 @@


    @@ -8142,7 +8142,7 @@


    @@ -8163,7 +8163,7 @@


    @@ -8184,7 +8184,7 @@


    @@ -8205,7 +8205,7 @@


    @@ -8221,7 +8221,7 @@


    @@ -8237,7 +8237,7 @@


    @@ -8258,7 +8258,7 @@


    @@ -8279,7 +8279,7 @@


    @@ -8300,7 +8300,7 @@


    @@ -8321,7 +8321,7 @@


    @@ -8345,7 +8345,7 @@


    @@ -8366,7 +8366,7 @@


    @@ -8393,7 +8393,7 @@


    @@ -8414,7 +8414,7 @@


    @@ -8451,7 +8451,7 @@


    @@ -8472,7 +8472,7 @@


    @@ -8493,7 +8493,7 @@


    @@ -8520,7 +8520,7 @@


    @@ -8544,7 +8544,7 @@


    @@ -8565,7 +8565,7 @@


    @@ -8586,7 +8586,7 @@


    @@ -8613,7 +8613,7 @@


    @@ -8634,7 +8634,7 @@


    @@ -8661,7 +8661,7 @@


    @@ -8677,7 +8677,7 @@


    @@ -8693,7 +8693,7 @@


    @@ -8709,7 +8709,7 @@


    @@ -8730,7 +8730,7 @@


    @@ -8751,7 +8751,7 @@


    @@ -8772,7 +8772,7 @@


    @@ -8793,7 +8793,7 @@


    @@ -8820,7 +8820,7 @@


    @@ -8844,7 +8844,7 @@


    @@ -8865,7 +8865,7 @@


    @@ -8888,7 +8888,7 @@


    @@ -8911,7 +8911,7 @@


    @@ -8934,7 +8934,7 @@


    @@ -8957,7 +8957,7 @@


    @@ -8978,7 +8978,7 @@


    @@ -8999,7 +8999,7 @@


    @@ -9026,7 +9026,7 @@


    @@ -9054,7 +9054,7 @@


    @@ -9082,7 +9082,7 @@


    @@ -9106,7 +9106,7 @@


    @@ -9130,7 +9130,7 @@


    @@ -9159,7 +9159,7 @@


    @@ -9187,7 +9187,7 @@


    @@ -9208,7 +9208,7 @@


    @@ -9229,7 +9229,7 @@


    @@ -9250,7 +9250,7 @@


    @@ -9271,7 +9271,7 @@


    @@ -9300,7 +9300,7 @@


    @@ -9321,7 +9321,7 @@


    @@ -9345,7 +9345,7 @@


    @@ -9369,7 +9369,7 @@


    @@ -9390,7 +9390,7 @@


    @@ -9419,7 +9419,7 @@


    @@ -9453,7 +9453,7 @@


    @@ -9480,7 +9480,7 @@


    @@ -9508,7 +9508,7 @@


    @@ -9535,7 +9535,7 @@


    @@ -9562,7 +9562,7 @@


    @@ -9595,7 +9595,7 @@


    @@ -9628,7 +9628,7 @@


    @@ -9661,7 +9661,7 @@


    @@ -9682,7 +9682,7 @@


    @@ -9703,7 +9703,7 @@


    @@ -9734,7 +9734,7 @@


    @@ -9764,7 +9764,7 @@


    @@ -9793,7 +9793,7 @@


    @@ -9820,7 +9820,7 @@


    @@ -9847,7 +9847,7 @@


    @@ -9878,7 +9878,7 @@


    @@ -9914,7 +9914,7 @@


    @@ -9939,7 +9939,7 @@


    @@ -9960,7 +9960,7 @@


    @@ -9981,7 +9981,7 @@


    @@ -10008,7 +10008,7 @@


    @@ -10029,7 +10029,7 @@


    @@ -10060,7 +10060,7 @@


    @@ -10091,7 +10091,7 @@


    @@ -10122,7 +10122,7 @@


    @@ -10149,7 +10149,7 @@


    @@ -10176,7 +10176,7 @@


    @@ -10203,7 +10203,7 @@


    @@ -10227,7 +10227,7 @@


    @@ -10248,7 +10248,7 @@


    @@ -10275,7 +10275,7 @@


    @@ -10319,7 +10319,7 @@


    @@ -10362,7 +10362,7 @@


    @@ -10406,7 +10406,7 @@


    @@ -10450,7 +10450,7 @@


    @@ -10483,7 +10483,7 @@


    @@ -10504,7 +10504,7 @@


    @@ -10525,7 +10525,7 @@


    @@ -10546,7 +10546,7 @@


    @@ -10576,7 +10576,7 @@


    @@ -10605,7 +10605,7 @@


    @@ -10629,7 +10629,7 @@


    @@ -10656,7 +10656,7 @@


    @@ -10677,7 +10677,7 @@


    @@ -10703,7 +10703,7 @@


    @@ -10734,7 +10734,7 @@


    @@ -10764,7 +10764,7 @@


    @@ -10792,7 +10792,7 @@


    @@ -10819,7 +10819,7 @@


    @@ -10840,7 +10840,7 @@


    @@ -10861,7 +10861,7 @@


    @@ -10885,7 +10885,7 @@


    @@ -10906,7 +10906,7 @@


    @@ -10927,7 +10927,7 @@


    @@ -10954,7 +10954,7 @@


    @@ -10978,7 +10978,7 @@


    @@ -11005,7 +11005,7 @@


    @@ -11035,7 +11035,7 @@


    @@ -11060,7 +11060,7 @@


    @@ -11082,7 +11082,7 @@


    @@ -11107,7 +11107,7 @@


    @@ -11135,7 +11135,7 @@


    @@ -11172,7 +11172,7 @@


    @@ -11208,7 +11208,7 @@


    @@ -11245,7 +11245,7 @@


    @@ -11282,7 +11282,7 @@


    @@ -11310,7 +11310,7 @@


    @@ -11342,7 +11342,7 @@


    @@ -11371,7 +11371,7 @@


    @@ -11392,7 +11392,7 @@


    @@ -11413,7 +11413,7 @@


    @@ -11437,7 +11437,7 @@


    @@ -11461,7 +11461,7 @@


    @@ -11488,7 +11488,7 @@


    @@ -11515,7 +11515,7 @@


    @@ -11544,7 +11544,7 @@


    @@ -11571,7 +11571,7 @@


    @@ -11595,7 +11595,7 @@


    @@ -11625,7 +11625,7 @@


    @@ -11652,7 +11652,7 @@


    @@ -11676,7 +11676,7 @@


    @@ -11700,7 +11700,7 @@


    @@ -11729,7 +11729,7 @@


    @@ -11757,7 +11757,7 @@


    @@ -11781,7 +11781,7 @@


    @@ -11812,7 +11812,7 @@


    @@ -11843,7 +11843,7 @@


    @@ -11877,7 +11877,7 @@


    @@ -11905,7 +11905,7 @@


    @@ -11926,7 +11926,7 @@


    @@ -11958,7 +11958,7 @@


    @@ -11979,7 +11979,7 @@


    @@ -12003,7 +12003,7 @@


    @@ -12030,7 +12030,7 @@


    @@ -12057,7 +12057,7 @@


    @@ -12090,7 +12090,7 @@


    @@ -12125,7 +12125,7 @@


    @@ -12159,7 +12159,7 @@


    @@ -12194,7 +12194,7 @@


    @@ -12229,7 +12229,7 @@


    @@ -12269,7 +12269,7 @@


    @@ -12308,7 +12308,7 @@


    @@ -12346,7 +12346,7 @@


    @@ -12386,7 +12386,7 @@


    @@ -12426,7 +12426,7 @@


    @@ -12461,7 +12461,7 @@


    @@ -12495,7 +12495,7 @@


    @@ -12530,7 +12530,7 @@


    @@ -12565,7 +12565,7 @@


    @@ -12590,7 +12590,7 @@


    @@ -12614,7 +12614,7 @@


    @@ -12638,7 +12638,7 @@


    @@ -12662,7 +12662,7 @@


    @@ -12689,7 +12689,7 @@


    @@ -12715,7 +12715,7 @@


    @@ -12739,7 +12739,7 @@


    @@ -12763,7 +12763,7 @@


    @@ -12787,7 +12787,7 @@


    @@ -12811,7 +12811,7 @@


    @@ -12835,7 +12835,7 @@


    @@ -12859,7 +12859,7 @@


    @@ -12883,7 +12883,7 @@


    @@ -12913,7 +12913,7 @@


    @@ -12943,7 +12943,7 @@


    @@ -12964,7 +12964,7 @@


    @@ -12985,7 +12985,7 @@


    @@ -13020,7 +13020,7 @@


    @@ -13055,7 +13055,7 @@


    @@ -13089,7 +13089,7 @@


    @@ -13123,7 +13123,7 @@


    @@ -13155,7 +13155,7 @@


    @@ -13184,7 +13184,7 @@


    @@ -13224,7 +13224,7 @@


    @@ -13251,7 +13251,7 @@


    @@ -13279,7 +13279,7 @@


    @@ -13307,7 +13307,7 @@


    @@ -13331,7 +13331,7 @@


    @@ -13359,7 +13359,7 @@


    @@ -13389,7 +13389,7 @@


    @@ -13419,7 +13419,7 @@


    @@ -13449,7 +13449,7 @@


    @@ -13482,7 +13482,7 @@


    @@ -13503,7 +13503,7 @@


    @@ -13536,7 +13536,7 @@


    @@ -13557,7 +13557,7 @@


    @@ -13589,7 +13589,7 @@


    @@ -13622,7 +13622,7 @@


    @@ -13643,7 +13643,7 @@


    @@ -13671,7 +13671,7 @@


    @@ -13715,7 +13715,7 @@


    @@ -13757,7 +13757,7 @@


    @@ -13784,7 +13784,7 @@


    @@ -13811,7 +13811,7 @@


    @@ -13841,7 +13841,7 @@


    @@ -13866,7 +13866,7 @@


    @@ -13891,7 +13891,7 @@


    @@ -13907,7 +13907,7 @@


    @@ -13930,7 +13930,7 @@


    @@ -13963,7 +13963,7 @@


    @@ -13996,7 +13996,7 @@


    @@ -14023,7 +14023,7 @@


    @@ -14056,7 +14056,7 @@


    @@ -14089,7 +14089,7 @@


    @@ -14122,7 +14122,7 @@


    @@ -14155,7 +14155,7 @@


    @@ -14182,7 +14182,7 @@


    @@ -14221,7 +14221,7 @@


    @@ -14259,7 +14259,7 @@


    @@ -14298,7 +14298,7 @@


    @@ -14337,7 +14337,7 @@


    @@ -14370,7 +14370,7 @@


    @@ -14403,7 +14403,7 @@


    @@ -14424,7 +14424,7 @@


    @@ -14457,7 +14457,7 @@


    @@ -14490,7 +14490,7 @@


    @@ -14523,7 +14523,7 @@


    @@ -14550,7 +14550,7 @@


    @@ -14575,7 +14575,7 @@


    @@ -14600,7 +14600,7 @@


    @@ -14629,7 +14629,7 @@


    @@ -14653,7 +14653,7 @@


    @@ -14683,7 +14683,7 @@


    @@ -14712,7 +14712,7 @@


    @@ -14742,7 +14742,7 @@


    @@ -14772,7 +14772,7 @@


    @@ -14801,7 +14801,7 @@


    @@ -14831,7 +14831,7 @@


    @@ -14861,7 +14861,7 @@


    @@ -14882,7 +14882,7 @@


    @@ -14909,7 +14909,7 @@


    @@ -14930,7 +14930,7 @@


    @@ -14961,7 +14961,7 @@


    @@ -14991,7 +14991,7 @@


    @@ -15021,7 +15021,7 @@


    @@ -15049,7 +15049,7 @@


    @@ -15077,7 +15077,7 @@


    @@ -15104,7 +15104,7 @@


    @@ -15131,7 +15131,7 @@


    @@ -15159,7 +15159,7 @@


    @@ -15190,7 +15190,7 @@


    @@ -15211,7 +15211,7 @@


    @@ -15238,7 +15238,7 @@


    @@ -15259,7 +15259,7 @@


    @@ -15280,7 +15280,7 @@


    @@ -15307,7 +15307,7 @@


    @@ -15328,7 +15328,7 @@


    @@ -15362,7 +15362,7 @@


    @@ -15389,7 +15389,7 @@


    @@ -15405,7 +15405,7 @@


    @@ -15427,7 +15427,7 @@


    @@ -15454,7 +15454,7 @@


    @@ -15481,7 +15481,7 @@


    @@ -15505,7 +15505,7 @@


    @@ -15532,7 +15532,7 @@


    @@ -15554,7 +15554,7 @@


    @@ -15578,7 +15578,7 @@


    @@ -15603,7 +15603,7 @@


    @@ -15635,7 +15635,7 @@


    @@ -15665,7 +15665,7 @@


    @@ -15694,7 +15694,7 @@


    @@ -15723,7 +15723,7 @@


    @@ -15747,7 +15747,7 @@


    @@ -15769,7 +15769,7 @@


    @@ -15803,7 +15803,7 @@


    @@ -15824,7 +15824,7 @@


    @@ -15845,7 +15845,7 @@


    @@ -15866,7 +15866,7 @@


    @@ -15899,7 +15899,7 @@


    @@ -15923,7 +15923,7 @@


    @@ -15950,7 +15950,7 @@


    @@ -15974,7 +15974,7 @@


    @@ -15998,7 +15998,7 @@


    @@ -16022,7 +16022,7 @@


    @@ -16046,7 +16046,7 @@


    @@ -16079,7 +16079,7 @@


    @@ -16109,7 +16109,7 @@


    @@ -16136,7 +16136,7 @@


    @@ -16157,7 +16157,7 @@


    @@ -16178,7 +16178,7 @@


    @@ -16215,7 +16215,7 @@


    @@ -16266,7 +16266,7 @@


    @@ -16316,7 +16316,7 @@


    @@ -16367,7 +16367,7 @@


    @@ -16418,7 +16418,7 @@


    @@ -16450,7 +16450,7 @@


    @@ -16482,7 +16482,7 @@


    @@ -16509,7 +16509,7 @@


    @@ -16537,7 +16537,7 @@


    @@ -16567,7 +16567,7 @@


    @@ -16597,7 +16597,7 @@


    @@ -16627,7 +16627,7 @@


    @@ -16669,7 +16669,7 @@


    @@ -16710,7 +16710,7 @@


    @@ -16750,7 +16750,7 @@


    @@ -16792,7 +16792,7 @@


    @@ -16834,7 +16834,7 @@


    @@ -16855,7 +16855,7 @@


    @@ -16883,7 +16883,7 @@


    @@ -16906,7 +16906,7 @@


    @@ -16937,7 +16937,7 @@


    @@ -16964,7 +16964,7 @@


    @@ -16995,7 +16995,7 @@


    @@ -17018,7 +17018,7 @@


    @@ -17042,7 +17042,7 @@


    @@ -17066,7 +17066,7 @@


    @@ -17087,7 +17087,7 @@


    @@ -17108,7 +17108,7 @@


    @@ -17132,7 +17132,7 @@


    @@ -17159,7 +17159,7 @@


    @@ -17183,7 +17183,7 @@


    @@ -17207,7 +17207,7 @@


    @@ -17228,7 +17228,7 @@


    @@ -17249,7 +17249,7 @@


    @@ -17273,7 +17273,7 @@


    @@ -17301,7 +17301,7 @@


    diff --git a/Vips/Image/EvalProc.html b/Vips/Image/EvalProc.html index 9778844..704621e 100644 --- a/Vips/Image/EvalProc.html +++ b/Vips/Image/EvalProc.html @@ -504,7 +504,7 @@

    - + vips/image.cr diff --git a/Vips/Interpolate.html b/Vips/Interpolate.html index 335d980..4f54150 100644 --- a/Vips/Interpolate.html +++ b/Vips/Interpolate.html @@ -495,7 +495,7 @@

    - + vips/interpolate.cr @@ -710,7 +710,7 @@


    diff --git a/Vips/Introspect.html b/Vips/Introspect.html index cc370de..e913498 100644 --- a/Vips/Introspect.html +++ b/Vips/Introspect.html @@ -497,7 +497,7 @@

    - + vips/introspect.cr @@ -661,7 +661,7 @@


    @@ -696,7 +696,7 @@


    @@ -717,7 +717,7 @@


    @@ -738,7 +738,7 @@


    @@ -759,7 +759,7 @@


    @@ -780,7 +780,7 @@


    @@ -801,7 +801,7 @@


    @@ -822,7 +822,7 @@


    @@ -843,7 +843,7 @@


    diff --git a/Vips/Introspect/Argument.html b/Vips/Introspect/Argument.html index 024d703..a67031e 100644 --- a/Vips/Introspect/Argument.html +++ b/Vips/Introspect/Argument.html @@ -496,7 +496,7 @@

    - + vips/introspect.cr @@ -633,7 +633,7 @@


    @@ -665,7 +665,7 @@


    @@ -681,7 +681,7 @@


    diff --git a/Vips/MutableImage.html b/Vips/MutableImage.html index f126f35..ec75d85 100644 --- a/Vips/MutableImage.html +++ b/Vips/MutableImage.html @@ -484,14 +484,14 @@

    - + vips/ext/mutableimage.cr
    - + vips/mutableimage.cr @@ -3031,7 +3031,7 @@


    @@ -3061,7 +3061,7 @@


    @@ -3091,7 +3091,7 @@


    @@ -3120,7 +3120,7 @@


    @@ -3149,7 +3149,7 @@


    @@ -3177,7 +3177,7 @@


    @@ -3208,7 +3208,7 @@


    @@ -3236,7 +3236,7 @@


    @@ -3270,7 +3270,7 @@


    @@ -3292,7 +3292,7 @@


    @@ -3314,7 +3314,7 @@


    @@ -3335,7 +3335,7 @@


    @@ -3367,7 +3367,7 @@


    diff --git a/Vips/Operation.html b/Vips/Operation.html index f93aec5..54b4138 100644 --- a/Vips/Operation.html +++ b/Vips/Operation.html @@ -484,7 +484,7 @@

    - + vips/operation.cr @@ -754,7 +754,7 @@


    @@ -770,7 +770,7 @@


    @@ -798,7 +798,7 @@


    @@ -814,7 +814,7 @@


    @@ -830,7 +830,7 @@


    @@ -846,7 +846,7 @@


    @@ -881,7 +881,7 @@


    @@ -897,7 +897,7 @@


    diff --git a/Vips/Region.html b/Vips/Region.html index c61f3cb..63f3f87 100644 --- a/Vips/Region.html +++ b/Vips/Region.html @@ -498,7 +498,7 @@

    - + vips/region.cr @@ -739,7 +739,7 @@


    @@ -781,7 +781,7 @@


    @@ -802,7 +802,7 @@


    @@ -823,7 +823,7 @@


    diff --git a/Vips/Source.html b/Vips/Source.html index 670d472..36f9ecf 100644 --- a/Vips/Source.html +++ b/Vips/Source.html @@ -511,7 +511,7 @@

    - + vips/source.cr @@ -782,7 +782,7 @@


    @@ -805,7 +805,7 @@


    @@ -829,7 +829,7 @@


    @@ -859,7 +859,7 @@


    diff --git a/Vips/SourceCustom.html b/Vips/SourceCustom.html index 8c8926f..d46b96a 100644 --- a/Vips/SourceCustom.html +++ b/Vips/SourceCustom.html @@ -517,7 +517,7 @@

    - + vips/source.cr @@ -817,7 +817,7 @@


    @@ -849,7 +849,7 @@


    @@ -873,7 +873,7 @@


    @@ -899,7 +899,7 @@


    diff --git a/Vips/SourceStream.html b/Vips/SourceStream.html index 6fc0f70..be64a19 100644 --- a/Vips/SourceStream.html +++ b/Vips/SourceStream.html @@ -495,7 +495,7 @@

    - + vips/source.cr @@ -807,7 +807,7 @@


    diff --git a/Vips/Stats.html b/Vips/Stats.html index 3513cb8..e128e9d 100644 --- a/Vips/Stats.html +++ b/Vips/Stats.html @@ -496,7 +496,7 @@

    - + vips/stats.cr @@ -591,7 +591,7 @@


    @@ -613,7 +613,7 @@


    @@ -635,7 +635,7 @@


    @@ -656,7 +656,7 @@


    diff --git a/Vips/Target.html b/Vips/Target.html index 40803cf..4dcf11d 100644 --- a/Vips/Target.html +++ b/Vips/Target.html @@ -509,7 +509,7 @@

    - + vips/target.cr @@ -782,7 +782,7 @@


    @@ -805,7 +805,7 @@


    @@ -830,7 +830,7 @@


    @@ -865,7 +865,7 @@


    diff --git a/Vips/TargetCustom.html b/Vips/TargetCustom.html index 43bf209..70b63a3 100644 --- a/Vips/TargetCustom.html +++ b/Vips/TargetCustom.html @@ -509,7 +509,7 @@

    - + vips/target.cr @@ -804,7 +804,7 @@


    @@ -842,7 +842,7 @@


    @@ -865,7 +865,7 @@


    diff --git a/Vips/TargetStream.html b/Vips/TargetStream.html index f0d2c48..b62adfb 100644 --- a/Vips/TargetStream.html +++ b/Vips/TargetStream.html @@ -495,7 +495,7 @@

    - + vips/target.cr @@ -802,7 +802,7 @@


    diff --git a/Vips/Type.html b/Vips/Type.html index a3e5e7c..5d2f128 100644 --- a/Vips/Type.html +++ b/Vips/Type.html @@ -484,7 +484,7 @@

    - + vips/vips.cr @@ -666,7 +666,7 @@


    @@ -698,7 +698,7 @@


    @@ -714,7 +714,7 @@


    @@ -730,7 +730,7 @@


    @@ -746,7 +746,7 @@


    @@ -762,7 +762,7 @@


    @@ -778,7 +778,7 @@


    @@ -794,7 +794,7 @@


    @@ -810,7 +810,7 @@


    @@ -826,7 +826,7 @@


    @@ -842,7 +842,7 @@


    @@ -858,7 +858,7 @@


    @@ -874,7 +874,7 @@


    @@ -890,7 +890,7 @@


    @@ -906,7 +906,7 @@


    diff --git a/Vips/VipsBlob.html b/Vips/VipsBlob.html index f0e0e49..e9c9fbe 100644 --- a/Vips/VipsBlob.html +++ b/Vips/VipsBlob.html @@ -484,7 +484,7 @@

    - + vips/vipsblob.cr @@ -608,7 +608,7 @@


    @@ -640,7 +640,7 @@


    @@ -656,7 +656,7 @@


    @@ -672,7 +672,7 @@


    @@ -688,7 +688,7 @@


    @@ -704,7 +704,7 @@


    diff --git a/Vips/VipsException.html b/Vips/VipsException.html index 3c0bb6a..ae4fff7 100644 --- a/Vips/VipsException.html +++ b/Vips/VipsException.html @@ -484,7 +484,7 @@

    - + vips/vips.cr @@ -584,7 +584,7 @@


    diff --git a/Vips/VipsObject.html b/Vips/VipsObject.html index 9c88ffd..45d5351 100644 --- a/Vips/VipsObject.html +++ b/Vips/VipsObject.html @@ -506,7 +506,7 @@

    - + vips/vipsobject.cr @@ -715,7 +715,7 @@


    @@ -736,7 +736,7 @@


    @@ -757,7 +757,7 @@


    @@ -773,7 +773,7 @@


    @@ -794,7 +794,7 @@


    @@ -810,7 +810,7 @@


    @@ -831,7 +831,7 @@


    @@ -852,7 +852,7 @@


    @@ -873,7 +873,7 @@


    diff --git a/index.json b/index.json index 4041095..4805d37 100644 --- a/index.json +++ b/index.json @@ -1 +1 @@ -{"repository_name":"vips","body":"# CrystalVips\n\n[![crystal-vips CI](https://github.com/naqvis/crystal-vips/actions/workflows/ci.yml/badge.svg)](https://github.com/naqvis/crystal-vips/actions/workflows/ci.yml)\n[![Latest release](https://img.shields.io/github/release/naqvis/crystal-vips.svg)](https://github.com/naqvis/crystal-vips/releases)\n[![Docs](https://img.shields.io/badge/docs-available-brightgreen.svg)](https://naqvis.github.io/crystal-vips/)\n\nProvides Crystal language interface to the [libvips](https://github.com/libvips/libvips) image processing library.\nPrograms that use `CrystalVips` don't manipulate images directly, instead they create pipelines of image processing operations starting from a source image. When the pipe is connected to a destination, the whole pipeline executes at once and in parallel, streaming the image from source to destination in a set of small fragments.\n\nBecause `CrystalVips` is parallel, its' quick, and because it doesn't need to keep entire images in memory, its light. For example, the libvips speed and memory use benchmark:\n\n[https://github.com/libvips/libvips/wiki/Speed-and-memory-use](https://github.com/libvips/libvips/wiki/Speed-and-memory-use)\n\n## Pre-requisites\n\nYou need to [install the libvips\nlibrary](https://www.libvips.org/install.html). It's in the linux package managers, homebrew and MacPorts, and there are Windows binaries on the vips website. For example, on Debian:\n\n```\nsudo apt-get install --no-install-recommends libvips42\n```\n\n(`--no-install-recommends` stops Debian installing a *lot* of extra packages)\n\nOr macOS:\n\n```\nbrew install vips\n```\n\n## Installation\n\n1. Add the dependency to your `shard.yml`:\n\n ```yaml\n dependencies:\n vips:\n github: naqvis/crystal-vips\n ```\n\n2. Run `shards install`\n\n## Usage\n\n```crystal\nrequire \"vips\"\n\nim = Vips::Image.new_from_file(\"image.jpg\")\n\n# put im at position (100, 100) in a 3000 x 3000 pixel image, \n# make the other pixels in the image by mirroring im up / down / \n# left / right, see\n# https://libvips.github.io/libvips/API/current/libvips-conversion.html#vips-embed\nim = im.embed(100, 100, 3000, 3000, extend: Vips::Enums::Extend::Mirror)\n\n# multiply the green (middle) band by 2, leave the other two alone\nim *= [1, 2, 1]\n\n# make an image from an array constant, convolve with it\nmask = Vips::Image.new_from_array([\n [-1, -1, -1],\n [-1, 16, -1],\n [-1, -1, -1]], 8)\nim = im.conv(mask, precision: Vips::Enums::Precision::Integer)\n\n# finally, write the result back to a file on disk\nim.write_to_file(\"output.jpg\")\n```\n\nRefer to [example](example) folder for more samples\n\n## Development\n\nTo run all tests:\n\n```\ncrystal spec\n```\n\n# Getting more help\n\nThe libvips website has a handy table of [all the libvips\noperators](http://libvips.github.io/libvips/API/current/func-list.html). Each\none links to the main API docs so you can see what you need to pass to it.\n\nA simple way to see the arguments for an operation is to try running it\nfrom the command-line. For example:\n\n```bash\n$ vips embed\nembed an image in a larger image\nusage:\n embed in out x y width height\nwhere:\n in - Input image, input VipsImage\n out - Output image, output VipsImage\n x - Left edge of input in output, input gint\n\t\t\tdefault: 0\n\t\t\tmin: -1000000000, max: 1000000000\n y - Top edge of input in output, input gint\n\t\t\tdefault: 0\n\t\t\tmin: -1000000000, max: 1000000000\n width - Image width in pixels, input gint\n\t\t\tdefault: 1\n\t\t\tmin: 1, max: 1000000000\n height - Image height in pixels, input gint\n\t\t\tdefault: 1\n\t\t\tmin: 1, max: 1000000000\noptional arguments:\n extend - How to generate the extra pixels, input VipsExtend\n\t\t\tdefault: black\n\t\t\tallowed: black, copy, repeat, mirror, white, background\n background - Color for background pixels, input VipsArrayDouble\noperation flags: sequential \n```\n\n## Contributing\n\n1. Fork it ()\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n\n## Contributors\n\n- [Ali Naqvi](https://github.com/naqvis) - creator and maintainer\n","program":{"html_id":"vips/toplevel","path":"toplevel.html","kind":"module","full_name":"Top Level Namespace","name":"Top Level Namespace","abstract":false,"locations":[],"repository_name":"vips","program":true,"enum":false,"alias":false,"const":false,"types":[{"html_id":"vips/Vips","path":"Vips.html","kind":"module","full_name":"Vips","name":"Vips","abstract":false,"locations":[{"filename":"src/vips.cr","line_number":25,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips.cr#L25"},{"filename":"src/vips/connection.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/connection.cr#L1"},{"filename":"src/vips/ext/image.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L12"},{"filename":"src/vips/ext/mutableimage.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L12"},{"filename":"src/vips/gobject.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L1"},{"filename":"src/vips/gvalue.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L1"},{"filename":"src/vips/image.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1"},{"filename":"src/vips/interpolate.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/interpolate.cr#L1"},{"filename":"src/vips/introspect.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L1"},{"filename":"src/vips/mutableimage.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L3"},{"filename":"src/vips/operation.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L1"},{"filename":"src/vips/region.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/region.cr#L1"},{"filename":"src/vips/source.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L1"},{"filename":"src/vips/stats.cr","line_number":6,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/stats.cr#L6"},{"filename":"src/vips/target.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L1"},{"filename":"src/vips/vips.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L1"},{"filename":"src/vips/vipsblob.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L3"},{"filename":"src/vips/vipsobject.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L1"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"VERSION","name":"VERSION","value":"{{ (`shards version \\\"/home/runner/work/crystal-vips/crystal-vips/src\\\"`).chomp.stringify }}"}],"doc":"Provides Crystal language interface to the [libvips](https://github.com/libvips/libvips) image processing library.\nPrograms that use libvips don't manipulate images directly, instead they create pipelines of image processing\noperations starting from a source image. When the pipe is connected to a destination, the whole pipeline executes\nat once and in parallel, streaming the image from source to destination in a set of small fragments.","summary":"

    Provides Crystal language interface to the libvips image processing library.

    ","class_methods":[{"html_id":"at_least_libvips?(x:Int,y:Int,z=0)-class-method","name":"at_least_libvips?","doc":"Is this at least libvips major.minor.[.patch]?","summary":"

    Is this at least libvips major.minor.[.patch]?

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int"},{"name":"y","external_name":"y","restriction":"Int"},{"name":"z","default_value":"0","external_name":"z","restriction":""}],"args_string":"(x : Int, y : Int, z = 0)","args_html":"(x : Int, y : Int, z = 0)","location":{"filename":"src/vips/vips.cr","line_number":87,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L87"},"def":{"name":"at_least_libvips?","args":[{"name":"x","external_name":"x","restriction":"Int"},{"name":"y","external_name":"y","restriction":"Int"},{"name":"z","default_value":"0","external_name":"z","restriction":""}],"visibility":"Public","body":"major = version(0)\nminor = version(1)\npatch = version(2)\n(major > x || ((major == x) && minor > y)) || (((major == x) && (minor == y)) && patch >= z)\n"}},{"html_id":"clear_error-class-method","name":"clear_error","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":186,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L186"},"def":{"name":"clear_error","visibility":"Public","body":"LibVips.vips_error_clear"}},{"html_id":"concurrency-class-method","name":"concurrency","doc":"Returns the number of worker threads that vips uses for image evaluation.","summary":"

    Returns the number of worker threads that vips uses for image evaluation.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L35"},"def":{"name":"concurrency","visibility":"Public","body":"LibVips.vips_concurrency_get"}},{"html_id":"concurrency=(value:Int)-class-method","name":"concurrency=","doc":"Set the size of the pools of worker threads vips uses for image evaluation.","summary":"

    Set the size of the pools of worker threads vips uses for image evaluation.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int"}],"args_string":"(value : Int)","args_html":"(value : Int)","location":{"filename":"src/vips/vips.cr","line_number":40,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L40"},"def":{"name":"concurrency=","args":[{"name":"value","external_name":"value","restriction":"Int"}],"visibility":"Public","body":"if value > 0\nelse\n value = default_concurrency\nend\nLibVips.vips_concurrency_set(value)\n"}},{"html_id":"default_concurrency:Int32-class-method","name":"default_concurrency","doc":"Track the original default concurrency so we can reset to it.","summary":"

    Track the original default concurrency so we can reset to it.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":206,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L206"},"def":{"name":"default_concurrency","return_type":"Int32","visibility":"Public","body":"if (value = @@default_concurrency).nil?\n @@default_concurrency = (LibVips.vips_concurrency_get)\nelse\n value\nend"}},{"html_id":"enum_values(type:LibC::ULong)-class-method","name":"enum_values","doc":"Get all values for a enum (GType).","summary":"

    Get all values for a enum (GType).

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":156,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L156"},"def":{"name":"enum_values","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"typecls = LibVips.g_type_class_ref(type)\nvalues = Hash(String, Int32).new\nif typecls.null?\n return values\nend\nenumcls = (typecls.as(Pointer(LibVips::GEnumClass))).value\nptr = enumcls.values.as(Pointer(LibVips::GEnumValue))\n0.upto(enumcls.n_values - 2) do |i|\n enumval = ptr[i]\n values[String.new(enumval.value_nick)] = enumval.value\nend\nvalues\n"}},{"html_id":"free(mem:Pointer(Void))-class-method","name":"free","doc":"Frees the memory pointed to by `mem`","summary":"

    Frees the memory pointed to by mem

    ","abstract":false,"args":[{"name":"mem","external_name":"mem","restriction":"::Pointer(Void)"}],"args_string":"(mem : Pointer(Void))","args_html":"(mem : Pointer(Void))","location":{"filename":"src/vips/vips.cr","line_number":172,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L172"},"def":{"name":"free","args":[{"name":"mem","external_name":"mem","restriction":"::Pointer(Void)"}],"visibility":"Public","body":"LibVips.g_free(mem)"}},{"html_id":"fundamental_type(type:LibC::ULong)-class-method","name":"fundamental_type","doc":"Extract the fundamental type ID portion.","summary":"

    Extract the fundamental type ID portion.

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":182,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L182"},"def":{"name":"fundamental_type","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"LibVips.g_type_fundamental(type)"}},{"html_id":"get_enums-class-method","name":"get_enums","doc":"Get a list of enums available within the libvips library.","summary":"

    Get a list of enums available within the libvips library.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":149,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L149"},"def":{"name":"get_enums","visibility":"Public","body":"enums = Array(String).new\nLibVips.vips_type_map(type_from_name(\"GEnum\"), ->enum_cb, Box.box(enums), nil)\nenums.sort!\n"}},{"html_id":"get_operations-class-method","name":"get_operations","doc":"Get a list of operations available within the libvips library.\nThis can be useful for documentation generators","summary":"

    Get a list of operations available within the libvips library.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":142,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L142"},"def":{"name":"get_operations","visibility":"Public","body":"nicknames = Array(String).new\nLibVips.vips_type_map(type_from_name(\"VipsOperation\"), ->ops_cb, Box.box(nicknames), nil)\nnicknames.uniq!.sort!\n"}},{"html_id":"get_suffixes-class-method","name":"get_suffixes","doc":"Get a list of all the filename suffixes supported by libvips\nNote: At least libvips 8.8 is needed","summary":"

    Get a list of all the filename suffixes supported by libvips Note: At least libvips 8.8 is needed

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":98,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L98"},"def":{"name":"get_suffixes","visibility":"Public","body":"names = [] of String\nif at_least_libvips?(8, 8)\nelse\n return names\nend\nptr = LibVips.vips_foreign_get_suffixes\ncount = 0\nwhile (strptr = (ptr + count).value)\n names << (String.new(strptr))\n LibVips.g_free(strptr)\n count = count + 1\nend\nLibVips.g_free(ptr)\nnames.uniq!.sort!\n"}},{"html_id":"init-class-method","name":"init","doc":"Starts up the world of VIPS.\nthis function is automatically called","summary":"

    Starts up the world of VIPS.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":16,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L16"},"def":{"name":"init","visibility":"Public","body":"@@initialized || (@@initialized = (LibVips.vips_init(\"CrystalVips\")) == 0)\nif @@initialized\nelse\n raise(VipsException.new(\"unable to initialize libvips\"))\nend\n@@initialized\n"}},{"html_id":"initialized?-class-method","name":"initialized?","doc":"Flag to tell if libvips has been initialized or not.\ninitialization will happen at the load of module and you should only call\n`Vips#init` if auto initialization failed.","summary":"

    Flag to tell if libvips has been initialized or not.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":193,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L193"},"def":{"name":"initialized?","visibility":"Public","body":"@@initialized"}},{"html_id":"leak=(leak)-class-method","name":"leak=","doc":"Enable or disable libvips leak checking.\nWhen enabled, libvips will check for object and area leaks on exit.\nEnabling this option will make libvips run slightly more slowly.","summary":"

    Enable or disable libvips leak checking.

    ","abstract":false,"args":[{"name":"leak","external_name":"leak","restriction":""}],"args_string":"(leak)","args_html":"(leak)","location":{"filename":"src/vips/vips.cr","line_number":198,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L198"},"def":{"name":"leak=","args":[{"name":"leak","external_name":"leak","restriction":""}],"visibility":"Public","body":"@@leak = leak"}},{"html_id":"leak?-class-method","name":"leak?","doc":"Enable or disable libvips leak checking.\nWhen enabled, libvips will check for object and area leaks on exit.\nEnabling this option will make libvips run slightly more slowly.","summary":"

    Enable or disable libvips leak checking.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":198,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L198"},"def":{"name":"leak?","visibility":"Public","body":"@@leak"}},{"html_id":"nickname(type:LibC::ULong)-class-method","name":"nickname","doc":"Return the nickname for a GType.","summary":"

    Return the nickname for a GType.

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":136,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L136"},"def":{"name":"nickname","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"String.new((LibVips.vips_nickname_find(type)) || Bytes.empty)"}},{"html_id":"profile(profile)-class-method","name":"profile","abstract":false,"args":[{"name":"profile","external_name":"profile","restriction":""}],"args_string":"(profile)","args_html":"(profile)","location":{"filename":"src/vips/vips.cr","line_number":30,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L30"},"def":{"name":"profile","args":[{"name":"profile","external_name":"profile","restriction":""}],"visibility":"Public","body":"@@profile = profile\nLibVips.vips_profile_set(@@profile)\n"}},{"html_id":"profile=(profile)-class-method","name":"profile=","doc":"Enable or disable libvips profile recording.\nIf set, vips will record profiling information, and dump it on program\nexit. These profiles can be analyzed with the `vipsprofile` program.","summary":"

    Enable or disable libvips profile recording.

    ","abstract":false,"args":[{"name":"profile","external_name":"profile","restriction":""}],"args_string":"(profile)","args_html":"(profile)","location":{"filename":"src/vips/vips.cr","line_number":203,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L203"},"def":{"name":"profile=","args":[{"name":"profile","external_name":"profile","restriction":""}],"visibility":"Public","body":"@@profile = profile"}},{"html_id":"profile?-class-method","name":"profile?","doc":"Enable or disable libvips profile recording.\nIf set, vips will record profiling information, and dump it on program\nexit. These profiles can be analyzed with the `vipsprofile` program.","summary":"

    Enable or disable libvips profile recording.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":203,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L203"},"def":{"name":"profile?","visibility":"Public","body":"@@profile"}},{"html_id":"report_leaks-class-method","name":"report_leaks","doc":"Reports leaks (hopefully there are none) it also tracks and reports peak memory use.","summary":"

    Reports leaks (hopefully there are none) it also tracks and reports peak memory use.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":114,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L114"},"def":{"name":"report_leaks","visibility":"Public","body":"LibVips.vips_object_print_all\nputs(\"memory: #{Stats.allocations} allocations, #{Stats.mem} bytes\")\nputs(\"files: #{Stats.open_files} open\")\nputs(\"memory: high-water mark: #{Stats.mem_highwater}\")\nerrbuf = String.new(LibVips.vips_error_buffer)\nif errbuf.blank?\nelse\n puts(\"error buffer: #{errbuf}\")\nend\n"}},{"html_id":"shutdown-class-method","name":"shutdown","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":22,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L22"},"def":{"name":"shutdown","visibility":"Public","body":"LibVips.vips_shutdown"}},{"html_id":"type_from_name(nickname:String)-class-method","name":"type_from_name","doc":"Return the GType for a name.","summary":"

    Return the GType for a name.

    ","abstract":false,"args":[{"name":"nickname","external_name":"nickname","restriction":"String"}],"args_string":"(nickname : String)","args_html":"(nickname : String)","location":{"filename":"src/vips/vips.cr","line_number":177,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L177"},"def":{"name":"type_from_name","args":[{"name":"nickname","external_name":"nickname","restriction":"String"}],"visibility":"Public","body":"LibVips.g_type_from_name(nickname)"}},{"html_id":"typefind(basename:String,nickname:String)-class-method","name":"typefind","doc":"Get the GType for a name.\nLooks up the GType for a nickname. Types below basename in the type\nhierarchy are searched.","summary":"

    Get the GType for a name.

    ","abstract":false,"args":[{"name":"basename","external_name":"basename","restriction":"String"},{"name":"nickname","external_name":"nickname","restriction":"String"}],"args_string":"(basename : String, nickname : String)","args_html":"(basename : String, nickname : String)","location":{"filename":"src/vips/vips.cr","line_number":126,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L126"},"def":{"name":"typefind","args":[{"name":"basename","external_name":"basename","restriction":"String"},{"name":"nickname","external_name":"nickname","restriction":"String"}],"visibility":"Public","body":"LibVips.vips_type_find(basename, nickname)"}},{"html_id":"typename(type:LibC::ULong)-class-method","name":"typename","doc":"Returns the name for a GType","summary":"

    Returns the name for a GType

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":131,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L131"},"def":{"name":"typename","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"String.new((LibVips.g_type_name(type)) || Bytes.empty)"}},{"html_id":"vector=(val:Bool)-class-method","name":"vector=","doc":"Enable SIMD and the run-time compiler.\nThis can give a nice speed-up, but can also be unstable on\nsome systems or with some versions of the run-time compiler.","summary":"

    Enable SIMD and the run-time compiler.

    ","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Bool"}],"args_string":"(val : Bool)","args_html":"(val : Bool)","location":{"filename":"src/vips/vips.cr","line_number":82,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L82"},"def":{"name":"vector=","args":[{"name":"val","external_name":"val","restriction":"Bool"}],"visibility":"Public","body":"LibVips.vips_vector_set_enabled(val)"}},{"html_id":"vector?-class-method","name":"vector?","doc":"Returns if SIMD and the run-time compiler is enabled or not","summary":"

    Returns if SIMD and the run-time compiler is enabled or not

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":75,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L75"},"def":{"name":"vector?","visibility":"Public","body":"LibVips.vips_vector_isenabled == 1"}},{"html_id":"version(flag:Int)-class-method","name":"version","doc":"Get the major, minor or patch version number of the libvips library.\nPass 0 to get the major version number\n1 to get minor, 2 to get patch.","summary":"

    Get the major, minor or patch version number of the libvips library.

    ","abstract":false,"args":[{"name":"flag","external_name":"flag","restriction":"Int"}],"args_string":"(flag : Int)","args_html":"(flag : Int)","location":{"filename":"src/vips/vips.cr","line_number":48,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L48"},"def":{"name":"version","args":[{"name":"flag","external_name":"flag","restriction":"Int"}],"visibility":"Public","body":"if (0..2).includes?(flag)\nelse\n raise(ArgumentError.new(\"Flag must be in the range of 0 to 2\"))\nend\n(LibVips.vips_version(flag)).tap do |v|\n if v < 0\n raise(VipsException.new(\"Unable to get library version\"))\n end\nend\n"}},{"html_id":"version-class-method","name":"version","doc":"Returns version of libvips in 3-byte integer","summary":"

    Returns version of libvips in 3-byte integer

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":56,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L56"},"def":{"name":"version","visibility":"Public","body":"if initialized\nelse\n raise(VipsException.new(\"Unable to initialize libvips\"))\nend\nvalue = 0\n0.upto(2) do |flag|\n if flag == 0\n value = version(flag)\n else\n value = (value << 8) + (version(flag))\n end\nend\nvalue\n"}},{"html_id":"version_string-class-method","name":"version_string","doc":"Returns version string of libvips","summary":"

    Returns version string of libvips

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":70,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L70"},"def":{"name":"version_string","visibility":"Public","body":"String.new(LibVips.vips_version_string)"}}],"types":[{"html_id":"vips/Vips/Cache","path":"Vips/Cache.html","kind":"module","full_name":"Vips::Cache","name":"Cache","abstract":false,"locations":[{"filename":"src/vips/cache.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L1"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"class_methods":[{"html_id":"max:Int32-class-method","name":"max","doc":"Gets the maximum number of operations libvips keep in cache","summary":"

    Gets the maximum number of operations libvips keep in cache

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L3"},"def":{"name":"max","return_type":"Int32","visibility":"Public","body":"LibVips.vips_cache_get_max"}},{"html_id":"max=(value:Int32)-class-method","name":"max=","doc":"Sets the maximum number of operations libvips keep in cache","summary":"

    Sets the maximum number of operations libvips keep in cache

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32"}],"args_string":"(value : Int32)","args_html":"(value : Int32)","location":{"filename":"src/vips/cache.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L8"},"def":{"name":"max=","args":[{"name":"value","external_name":"value","restriction":"Int32"}],"visibility":"Public","body":"LibVips.vips_cache_set_max(value)"}},{"html_id":"max_files-class-method","name":"max_files","doc":"Gets the maximum amount of tracked files allowed.","summary":"

    Gets the maximum amount of tracked files allowed.

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":23,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L23"},"def":{"name":"max_files","visibility":"Public","body":"LibVips.vips_cache_get_max_files"}},{"html_id":"max_files=(value:Int32)-class-method","name":"max_files=","doc":"Sets the maximum amount of tracked files allowed.","summary":"

    Sets the maximum amount of tracked files allowed.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32"}],"args_string":"(value : Int32)","args_html":"(value : Int32)","location":{"filename":"src/vips/cache.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L28"},"def":{"name":"max_files=","args":[{"name":"value","external_name":"value","restriction":"Int32"}],"visibility":"Public","body":"LibVips.vips_cache_set_max_files(value)"}},{"html_id":"max_mem-class-method","name":"max_mem","doc":"Gets the maximum amount of tracked memory allowed.","summary":"

    Gets the maximum amount of tracked memory allowed.

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":13,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L13"},"def":{"name":"max_mem","visibility":"Public","body":"LibVips.vips_cache_get_max_mem"}},{"html_id":"max_mem=(value:LibC::SizeT)-class-method","name":"max_mem=","doc":"Sets the maximum amount of tracked memory allowed.","summary":"

    Sets the maximum amount of tracked memory allowed.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"LibC::SizeT"}],"args_string":"(value : LibC::SizeT)","args_html":"(value : LibC::SizeT)","location":{"filename":"src/vips/cache.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L18"},"def":{"name":"max_mem=","args":[{"name":"value","external_name":"value","restriction":"LibC::SizeT"}],"visibility":"Public","body":"LibVips.vips_cache_set_max_mem(value)"}},{"html_id":"size-class-method","name":"size","doc":"Gets the current number of operations in cache.","summary":"

    Gets the current number of operations in cache.

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":33,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L33"},"def":{"name":"size","visibility":"Public","body":"LibVips.vips_cache_get_size"}},{"html_id":"trace=(value:Bool)-class-method","name":"trace=","doc":"Enable or disable libvips cache tracing.","summary":"

    Enable or disable libvips cache tracing.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool)","args_html":"(value : Bool)","location":{"filename":"src/vips/cache.cr","line_number":38,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L38"},"def":{"name":"trace=","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"visibility":"Public","body":"LibVips.vips_cache_set_trace(value)"}}]},{"html_id":"vips/Vips/Connection","path":"Vips/Connection.html","kind":"class","full_name":"Vips::Connection","name":"Connection","abstract":true,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/connection.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/connection.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"filename:String|Nil-instance-method","name":"filename","doc":"Get the filename associated with a connection or nil if there is no associated file","summary":"

    Get the filename associated with a connection or nil if there is no associated file

    ","abstract":false,"location":{"filename":"src/vips/connection.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/connection.cr#L8"},"def":{"name":"filename","return_type":"String | ::Nil","visibility":"Public","body":"ptr = LibVips.vips_connection_filename(@chandle)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"nick:String|Nil-instance-method","name":"nick","doc":"Make a human-readable name for a connection suitable for error messages","summary":"

    Make a human-readable name for a connection suitable for error messages

    ","abstract":false,"location":{"filename":"src/vips/connection.cr","line_number":14,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/connection.cr#L14"},"def":{"name":"nick","return_type":"String | ::Nil","visibility":"Public","body":"ptr = LibVips.vips_connection_nick(@chandle)\nptr.null? ? nil : String.new(ptr)\n"}}]},{"html_id":"vips/Vips/Enums","path":"Vips/Enums.html","kind":"module","full_name":"Vips::Enums","name":"Enums","abstract":false,"locations":[{"filename":"src/vips/enums.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L1"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"types":[{"html_id":"vips/Vips/Enums/Access","path":"Vips/Enums/Access.html","kind":"enum","full_name":"Vips::Enums::Access","name":"Access","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L2"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Random","name":"Random","value":"0","doc":"Requests can come in any order","summary":"

    Requests can come in any order

    "},{"id":"Sequential","name":"Sequential","value":"1","doc":"Means requests will be top-to-bottom, but with some\namount of buffering behind the read point for small non-local\naccesses.","summary":"

    Means requests will be top-to-bottom, but with some amount of buffering behind the read point for small non-local accesses.

    "},{"id":"SequentialUnbuffered","name":"SequentialUnbuffered","value":"2","doc":"Top-to-bottom without a buffer.","summary":"

    Top-to-bottom without a buffer.

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"random?-instance-method","name":"random?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":4,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L4"},"def":{"name":"random?","visibility":"Public","body":"self == Random"}},{"html_id":"sequential?-instance-method","name":"sequential?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L9"},"def":{"name":"sequential?","visibility":"Public","body":"self == Sequential"}},{"html_id":"sequential_unbuffered?-instance-method","name":"sequential_unbuffered?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L12"},"def":{"name":"sequential_unbuffered?","visibility":"Public","body":"self == SequentialUnbuffered"}}]},{"html_id":"vips/Vips/Enums/Align","path":"Vips/Enums/Align.html","kind":"enum","full_name":"Vips::Enums::Align","name":"Align","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":16,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L16"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Low","name":"Low","value":"0","doc":"Align on the low coordinate edge","summary":"

    Align on the low coordinate edge

    "},{"id":"Centre","name":"Centre","value":"1","doc":"Align on the centre.","summary":"

    Align on the centre.

    "},{"id":"High","name":"High","value":"2","doc":"Align on the high coordinate edge","summary":"

    Align on the high coordinate edge

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"doc":"Various types of alignment.","summary":"

    Various types of alignment.

    ","instance_methods":[{"html_id":"centre?-instance-method","name":"centre?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":21,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L21"},"def":{"name":"centre?","visibility":"Public","body":"self == Centre"}},{"html_id":"high?-instance-method","name":"high?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":24,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L24"},"def":{"name":"high?","visibility":"Public","body":"self == High"}},{"html_id":"low?-instance-method","name":"low?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L18"},"def":{"name":"low?","visibility":"Public","body":"self == Low"}}]},{"html_id":"vips/Vips/Enums/Angle","path":"Vips/Enums/Angle.html","kind":"enum","full_name":"Vips::Enums::Angle","name":"Angle","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L27"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"D0","name":"D0","value":"0"},{"id":"D90","name":"D90","value":"1"},{"id":"D180","name":"D180","value":"2"},{"id":"D270","name":"D270","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"d0?-instance-method","name":"d0?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L28"},"def":{"name":"d0?","visibility":"Public","body":"self == D0"}},{"html_id":"d180?-instance-method","name":"d180?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":30,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L30"},"def":{"name":"d180?","visibility":"Public","body":"self == D180"}},{"html_id":"d270?-instance-method","name":"d270?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":31,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L31"},"def":{"name":"d270?","visibility":"Public","body":"self == D270"}},{"html_id":"d90?-instance-method","name":"d90?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":29,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L29"},"def":{"name":"d90?","visibility":"Public","body":"self == D90"}}]},{"html_id":"vips/Vips/Enums/Angle45","path":"Vips/Enums/Angle45.html","kind":"enum","full_name":"Vips::Enums::Angle45","name":"Angle45","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":34,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L34"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"D0","name":"D0","value":"0"},{"id":"D45","name":"D45","value":"1"},{"id":"D90","name":"D90","value":"2"},{"id":"D135","name":"D135","value":"3"},{"id":"D180","name":"D180","value":"4"},{"id":"D225","name":"D225","value":"5"},{"id":"D270","name":"D270","value":"6"},{"id":"D315","name":"D315","value":"7"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"d0?-instance-method","name":"d0?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L35"},"def":{"name":"d0?","visibility":"Public","body":"self == D0"}},{"html_id":"d135?-instance-method","name":"d135?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":38,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L38"},"def":{"name":"d135?","visibility":"Public","body":"self == D135"}},{"html_id":"d180?-instance-method","name":"d180?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":39,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L39"},"def":{"name":"d180?","visibility":"Public","body":"self == D180"}},{"html_id":"d225?-instance-method","name":"d225?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":40,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L40"},"def":{"name":"d225?","visibility":"Public","body":"self == D225"}},{"html_id":"d270?-instance-method","name":"d270?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":41,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L41"},"def":{"name":"d270?","visibility":"Public","body":"self == D270"}},{"html_id":"d315?-instance-method","name":"d315?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":42,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L42"},"def":{"name":"d315?","visibility":"Public","body":"self == D315"}},{"html_id":"d45?-instance-method","name":"d45?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":36,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L36"},"def":{"name":"d45?","visibility":"Public","body":"self == D45"}},{"html_id":"d90?-instance-method","name":"d90?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":37,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L37"},"def":{"name":"d90?","visibility":"Public","body":"self == D90"}}]},{"html_id":"vips/Vips/Enums/BandFormat","path":"Vips/Enums/BandFormat.html","kind":"enum","full_name":"Vips::Enums::BandFormat","name":"BandFormat","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":45,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L45"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Notset","name":"Notset","value":"-1"},{"id":"Uchar","name":"Uchar","value":"0"},{"id":"Char","name":"Char","value":"1"},{"id":"Ushort","name":"Ushort","value":"2"},{"id":"Short","name":"Short","value":"3"},{"id":"Uint","name":"Uint","value":"4"},{"id":"Int","name":"Int","value":"5"},{"id":"Float","name":"Float","value":"6"},{"id":"Complex","name":"Complex","value":"7"},{"id":"Double","name":"Double","value":"8"},{"id":"Dpcomplex","name":"Dpcomplex","value":"9"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"char?-instance-method","name":"char?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":48,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L48"},"def":{"name":"char?","visibility":"Public","body":"self == Char"}},{"html_id":"complex?-instance-method","name":"complex?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":54,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L54"},"def":{"name":"complex?","visibility":"Public","body":"self == Complex"}},{"html_id":"double?-instance-method","name":"double?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":55,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L55"},"def":{"name":"double?","visibility":"Public","body":"self == Double"}},{"html_id":"dpcomplex?-instance-method","name":"dpcomplex?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":56,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L56"},"def":{"name":"dpcomplex?","visibility":"Public","body":"self == Dpcomplex"}},{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":53,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L53"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"int?-instance-method","name":"int?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":52,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L52"},"def":{"name":"int?","visibility":"Public","body":"self == Int"}},{"html_id":"notset?-instance-method","name":"notset?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":46,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L46"},"def":{"name":"notset?","visibility":"Public","body":"self == Notset"}},{"html_id":"short?-instance-method","name":"short?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":50,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L50"},"def":{"name":"short?","visibility":"Public","body":"self == Short"}},{"html_id":"uchar?-instance-method","name":"uchar?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L47"},"def":{"name":"uchar?","visibility":"Public","body":"self == Uchar"}},{"html_id":"uint?-instance-method","name":"uint?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":51,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L51"},"def":{"name":"uint?","visibility":"Public","body":"self == Uint"}},{"html_id":"ushort?-instance-method","name":"ushort?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":49,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L49"},"def":{"name":"ushort?","visibility":"Public","body":"self == Ushort"}}]},{"html_id":"vips/Vips/Enums/BlendMode","path":"Vips/Enums/BlendMode.html","kind":"enum","full_name":"Vips::Enums::BlendMode","name":"BlendMode","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":59,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L59"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Clear","name":"Clear","value":"0"},{"id":"Source","name":"Source","value":"1"},{"id":"Over","name":"Over","value":"2"},{"id":"In","name":"In","value":"3"},{"id":"Out","name":"Out","value":"4"},{"id":"Atop","name":"Atop","value":"5"},{"id":"Dest","name":"Dest","value":"6"},{"id":"DestOver","name":"DestOver","value":"7"},{"id":"DestIn","name":"DestIn","value":"8"},{"id":"DestOut","name":"DestOut","value":"9"},{"id":"DestAtop","name":"DestAtop","value":"10"},{"id":"Xor","name":"Xor","value":"11"},{"id":"Add","name":"Add","value":"12"},{"id":"Saturate","name":"Saturate","value":"13"},{"id":"Multiply","name":"Multiply","value":"14"},{"id":"Screen","name":"Screen","value":"15"},{"id":"Overlay","name":"Overlay","value":"16"},{"id":"Darken","name":"Darken","value":"17"},{"id":"Lighten","name":"Lighten","value":"18"},{"id":"ColourDodge","name":"ColourDodge","value":"19"},{"id":"ColourBurn","name":"ColourBurn","value":"20"},{"id":"HardLight","name":"HardLight","value":"21"},{"id":"SoftLight","name":"SoftLight","value":"22"},{"id":"Difference","name":"Difference","value":"23"},{"id":"Exclusion","name":"Exclusion","value":"24"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"add?-instance-method","name":"add?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":72,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L72"},"def":{"name":"add?","visibility":"Public","body":"self == Add"}},{"html_id":"atop?-instance-method","name":"atop?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L65"},"def":{"name":"atop?","visibility":"Public","body":"self == Atop"}},{"html_id":"clear?-instance-method","name":"clear?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":60,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L60"},"def":{"name":"clear?","visibility":"Public","body":"self == Clear"}},{"html_id":"colour_burn?-instance-method","name":"colour_burn?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":80,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L80"},"def":{"name":"colour_burn?","visibility":"Public","body":"self == ColourBurn"}},{"html_id":"colour_dodge?-instance-method","name":"colour_dodge?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L79"},"def":{"name":"colour_dodge?","visibility":"Public","body":"self == ColourDodge"}},{"html_id":"darken?-instance-method","name":"darken?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":77,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L77"},"def":{"name":"darken?","visibility":"Public","body":"self == Darken"}},{"html_id":"dest?-instance-method","name":"dest?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":66,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L66"},"def":{"name":"dest?","visibility":"Public","body":"self == Dest"}},{"html_id":"dest_atop?-instance-method","name":"dest_atop?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":70,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L70"},"def":{"name":"dest_atop?","visibility":"Public","body":"self == DestAtop"}},{"html_id":"dest_in?-instance-method","name":"dest_in?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":68,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L68"},"def":{"name":"dest_in?","visibility":"Public","body":"self == DestIn"}},{"html_id":"dest_out?-instance-method","name":"dest_out?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":69,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L69"},"def":{"name":"dest_out?","visibility":"Public","body":"self == DestOut"}},{"html_id":"dest_over?-instance-method","name":"dest_over?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":67,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L67"},"def":{"name":"dest_over?","visibility":"Public","body":"self == DestOver"}},{"html_id":"difference?-instance-method","name":"difference?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":83,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L83"},"def":{"name":"difference?","visibility":"Public","body":"self == Difference"}},{"html_id":"exclusion?-instance-method","name":"exclusion?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":84,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L84"},"def":{"name":"exclusion?","visibility":"Public","body":"self == Exclusion"}},{"html_id":"hard_light?-instance-method","name":"hard_light?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":81,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L81"},"def":{"name":"hard_light?","visibility":"Public","body":"self == HardLight"}},{"html_id":"in?-instance-method","name":"in?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":63,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L63"},"def":{"name":"in?","visibility":"Public","body":"self == In"}},{"html_id":"lighten?-instance-method","name":"lighten?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":78,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L78"},"def":{"name":"lighten?","visibility":"Public","body":"self == Lighten"}},{"html_id":"multiply?-instance-method","name":"multiply?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":74,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L74"},"def":{"name":"multiply?","visibility":"Public","body":"self == Multiply"}},{"html_id":"out?-instance-method","name":"out?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":64,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L64"},"def":{"name":"out?","visibility":"Public","body":"self == Out"}},{"html_id":"over?-instance-method","name":"over?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":62,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L62"},"def":{"name":"over?","visibility":"Public","body":"self == Over"}},{"html_id":"overlay?-instance-method","name":"overlay?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":76,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L76"},"def":{"name":"overlay?","visibility":"Public","body":"self == Overlay"}},{"html_id":"saturate?-instance-method","name":"saturate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":73,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L73"},"def":{"name":"saturate?","visibility":"Public","body":"self == Saturate"}},{"html_id":"screen?-instance-method","name":"screen?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":75,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L75"},"def":{"name":"screen?","visibility":"Public","body":"self == Screen"}},{"html_id":"soft_light?-instance-method","name":"soft_light?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":82,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L82"},"def":{"name":"soft_light?","visibility":"Public","body":"self == SoftLight"}},{"html_id":"source?-instance-method","name":"source?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":61,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L61"},"def":{"name":"source?","visibility":"Public","body":"self == Source"}},{"html_id":"xor?-instance-method","name":"xor?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":71,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L71"},"def":{"name":"xor?","visibility":"Public","body":"self == Xor"}}]},{"html_id":"vips/Vips/Enums/Coding","path":"Vips/Enums/Coding.html","kind":"enum","full_name":"Vips::Enums::Coding","name":"Coding","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":87,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L87"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"None","name":"None","value":"0"},{"id":"Labq","name":"Labq","value":"2"},{"id":"Rad","name":"Rad","value":"6"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":88,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L88"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"labq?-instance-method","name":"labq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":90,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L90"},"def":{"name":"labq?","visibility":"Public","body":"self == Labq"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":89,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L89"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"rad?-instance-method","name":"rad?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":91,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L91"},"def":{"name":"rad?","visibility":"Public","body":"self == Rad"}}]},{"html_id":"vips/Vips/Enums/Combine","path":"Vips/Enums/Combine.html","kind":"enum","full_name":"Vips::Enums::Combine","name":"Combine","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":94,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L94"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Max","name":"Max","value":"0"},{"id":"Sum","name":"Sum","value":"1"},{"id":"Min","name":"Min","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"max?-instance-method","name":"max?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":95,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L95"},"def":{"name":"max?","visibility":"Public","body":"self == Max"}},{"html_id":"min?-instance-method","name":"min?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":97,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L97"},"def":{"name":"min?","visibility":"Public","body":"self == Min"}},{"html_id":"sum?-instance-method","name":"sum?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":96,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L96"},"def":{"name":"sum?","visibility":"Public","body":"self == Sum"}}]},{"html_id":"vips/Vips/Enums/CombineMode","path":"Vips/Enums/CombineMode.html","kind":"enum","full_name":"Vips::Enums::CombineMode","name":"CombineMode","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":100,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L100"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Set","name":"Set","value":"0"},{"id":"Add","name":"Add","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"add?-instance-method","name":"add?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":102,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L102"},"def":{"name":"add?","visibility":"Public","body":"self == Add"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":101,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L101"},"def":{"name":"set?","visibility":"Public","body":"self == Set"}}]},{"html_id":"vips/Vips/Enums/CompassDirection","path":"Vips/Enums/CompassDirection.html","kind":"enum","full_name":"Vips::Enums::CompassDirection","name":"CompassDirection","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":105,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L105"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Centre","name":"Centre","value":"0"},{"id":"North","name":"North","value":"1"},{"id":"East","name":"East","value":"2"},{"id":"South","name":"South","value":"3"},{"id":"West","name":"West","value":"4"},{"id":"NorthEast","name":"NorthEast","value":"5"},{"id":"SouthEast","name":"SouthEast","value":"6"},{"id":"SouthWest","name":"SouthWest","value":"7"},{"id":"NorthWest","name":"NorthWest","value":"8"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"centre?-instance-method","name":"centre?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":106,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L106"},"def":{"name":"centre?","visibility":"Public","body":"self == Centre"}},{"html_id":"east?-instance-method","name":"east?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":108,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L108"},"def":{"name":"east?","visibility":"Public","body":"self == East"}},{"html_id":"north?-instance-method","name":"north?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":107,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L107"},"def":{"name":"north?","visibility":"Public","body":"self == North"}},{"html_id":"north_east?-instance-method","name":"north_east?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":111,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L111"},"def":{"name":"north_east?","visibility":"Public","body":"self == NorthEast"}},{"html_id":"north_west?-instance-method","name":"north_west?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":114,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L114"},"def":{"name":"north_west?","visibility":"Public","body":"self == NorthWest"}},{"html_id":"south?-instance-method","name":"south?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":109,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L109"},"def":{"name":"south?","visibility":"Public","body":"self == South"}},{"html_id":"south_east?-instance-method","name":"south_east?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":112,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L112"},"def":{"name":"south_east?","visibility":"Public","body":"self == SouthEast"}},{"html_id":"south_west?-instance-method","name":"south_west?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":113,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L113"},"def":{"name":"south_west?","visibility":"Public","body":"self == SouthWest"}},{"html_id":"west?-instance-method","name":"west?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":110,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L110"},"def":{"name":"west?","visibility":"Public","body":"self == West"}}]},{"html_id":"vips/Vips/Enums/DemandStyle","path":"Vips/Enums/DemandStyle.html","kind":"enum","full_name":"Vips::Enums::DemandStyle","name":"DemandStyle","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":117,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L117"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"Smalltile","name":"Smalltile","value":"0"},{"id":"Fatstrip","name":"Fatstrip","value":"1"},{"id":"Thinstrip","name":"Thinstrip","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":118,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L118"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"fatstrip?-instance-method","name":"fatstrip?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":120,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L120"},"def":{"name":"fatstrip?","visibility":"Public","body":"self == Fatstrip"}},{"html_id":"smalltile?-instance-method","name":"smalltile?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":119,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L119"},"def":{"name":"smalltile?","visibility":"Public","body":"self == Smalltile"}},{"html_id":"thinstrip?-instance-method","name":"thinstrip?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":121,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L121"},"def":{"name":"thinstrip?","visibility":"Public","body":"self == Thinstrip"}}]},{"html_id":"vips/Vips/Enums/Direction","path":"Vips/Enums/Direction.html","kind":"enum","full_name":"Vips::Enums::Direction","name":"Direction","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":124,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L124"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Horizontal","name":"Horizontal","value":"0"},{"id":"Vertical","name":"Vertical","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"horizontal?-instance-method","name":"horizontal?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":125,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L125"},"def":{"name":"horizontal?","visibility":"Public","body":"self == Horizontal"}},{"html_id":"vertical?-instance-method","name":"vertical?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":126,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L126"},"def":{"name":"vertical?","visibility":"Public","body":"self == Vertical"}}]},{"html_id":"vips/Vips/Enums/Extend","path":"Vips/Enums/Extend.html","kind":"enum","full_name":"Vips::Enums::Extend","name":"Extend","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":129,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L129"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Black","name":"Black","value":"0"},{"id":"Copy","name":"Copy","value":"1"},{"id":"Repeat","name":"Repeat","value":"2"},{"id":"Mirror","name":"Mirror","value":"3"},{"id":"White","name":"White","value":"4"},{"id":"Background","name":"Background","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"background?-instance-method","name":"background?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":135,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L135"},"def":{"name":"background?","visibility":"Public","body":"self == Background"}},{"html_id":"black?-instance-method","name":"black?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":130,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L130"},"def":{"name":"black?","visibility":"Public","body":"self == Black"}},{"html_id":"copy?-instance-method","name":"copy?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":131,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L131"},"def":{"name":"copy?","visibility":"Public","body":"self == Copy"}},{"html_id":"mirror?-instance-method","name":"mirror?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":133,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L133"},"def":{"name":"mirror?","visibility":"Public","body":"self == Mirror"}},{"html_id":"repeat?-instance-method","name":"repeat?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":132,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L132"},"def":{"name":"repeat?","visibility":"Public","body":"self == Repeat"}},{"html_id":"white?-instance-method","name":"white?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":134,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L134"},"def":{"name":"white?","visibility":"Public","body":"self == White"}}]},{"html_id":"vips/Vips/Enums/FailOn","path":"Vips/Enums/FailOn.html","kind":"enum","full_name":"Vips::Enums::FailOn","name":"FailOn","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":142,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L142"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0","doc":"Never stop","summary":"

    Never stop

    "},{"id":"Truncated","name":"Truncated","value":"1","doc":"Stop on image truncated, nothing else","summary":"

    Stop on image truncated, nothing else

    "},{"id":"Error","name":"Error","value":"2","doc":"Stop on serious error or truncation","summary":"

    Stop on serious error or truncation

    "},{"id":"Warning","name":"Warning","value":"3","doc":"Stop on anything, even warnings","summary":"

    Stop on anything, even warnings

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"doc":"How sensitive loaders are to errors, from never stop (very insensitive), to\nstop on the smallest warning (very sensitive).\n\nEach one implies the ones before it, so `Error` implies `Truncated`","summary":"

    How sensitive loaders are to errors, from never stop (very insensitive), to stop on the smallest warning (very sensitive).

    ","instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":150,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L150"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":144,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L144"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"truncated?-instance-method","name":"truncated?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":147,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L147"},"def":{"name":"truncated?","visibility":"Public","body":"self == Truncated"}},{"html_id":"warning?-instance-method","name":"warning?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":153,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L153"},"def":{"name":"warning?","visibility":"Public","body":"self == Warning"}}]},{"html_id":"vips/Vips/Enums/ForeignDzContainer","path":"Vips/Enums/ForeignDzContainer.html","kind":"enum","full_name":"Vips::Enums::ForeignDzContainer","name":"ForeignDzContainer","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":156,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L156"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Fs","name":"Fs","value":"0"},{"id":"Zip","name":"Zip","value":"1"},{"id":"Szi","name":"Szi","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"fs?-instance-method","name":"fs?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":157,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L157"},"def":{"name":"fs?","visibility":"Public","body":"self == Fs"}},{"html_id":"szi?-instance-method","name":"szi?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":159,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L159"},"def":{"name":"szi?","visibility":"Public","body":"self == Szi"}},{"html_id":"zip?-instance-method","name":"zip?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":158,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L158"},"def":{"name":"zip?","visibility":"Public","body":"self == Zip"}}]},{"html_id":"vips/Vips/Enums/ForeignDzDepth","path":"Vips/Enums/ForeignDzDepth.html","kind":"enum","full_name":"Vips::Enums::ForeignDzDepth","name":"ForeignDzDepth","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":162,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L162"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Onepixel","name":"Onepixel","value":"0"},{"id":"Onetile","name":"Onetile","value":"1"},{"id":"One","name":"One","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"one?-instance-method","name":"one?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":165,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L165"},"def":{"name":"one?","visibility":"Public","body":"self == One"}},{"html_id":"onepixel?-instance-method","name":"onepixel?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":163,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L163"},"def":{"name":"onepixel?","visibility":"Public","body":"self == Onepixel"}},{"html_id":"onetile?-instance-method","name":"onetile?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":164,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L164"},"def":{"name":"onetile?","visibility":"Public","body":"self == Onetile"}}]},{"html_id":"vips/Vips/Enums/ForeignDzLayout","path":"Vips/Enums/ForeignDzLayout.html","kind":"enum","full_name":"Vips::Enums::ForeignDzLayout","name":"ForeignDzLayout","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":168,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L168"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Dz","name":"Dz","value":"0"},{"id":"Zoomify","name":"Zoomify","value":"1"},{"id":"Google","name":"Google","value":"2"},{"id":"Iiif","name":"Iiif","value":"3"},{"id":"Iiif3","name":"Iiif3","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"dz?-instance-method","name":"dz?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":169,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L169"},"def":{"name":"dz?","visibility":"Public","body":"self == Dz"}},{"html_id":"google?-instance-method","name":"google?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":171,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L171"},"def":{"name":"google?","visibility":"Public","body":"self == Google"}},{"html_id":"iiif3?-instance-method","name":"iiif3?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":173,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L173"},"def":{"name":"iiif3?","visibility":"Public","body":"self == Iiif3"}},{"html_id":"iiif?-instance-method","name":"iiif?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":172,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L172"},"def":{"name":"iiif?","visibility":"Public","body":"self == Iiif"}},{"html_id":"zoomify?-instance-method","name":"zoomify?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":170,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L170"},"def":{"name":"zoomify?","visibility":"Public","body":"self == Zoomify"}}]},{"html_id":"vips/Vips/Enums/ForeignFlags","path":"Vips/Enums/ForeignFlags.html","kind":"enum","full_name":"Vips::Enums::ForeignFlags","name":"ForeignFlags","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":413,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L413"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Partial","name":"Partial","value":"1"},{"id":"Bigendian","name":"Bigendian","value":"2"},{"id":"Sequential","name":"Sequential","value":"4"},{"id":"All","name":"All","value":"7"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":418,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L418"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"bigendian?-instance-method","name":"bigendian?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":416,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L416"},"def":{"name":"bigendian?","visibility":"Public","body":"self == Bigendian"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":414,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L414"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"partial?-instance-method","name":"partial?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":415,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L415"},"def":{"name":"partial?","visibility":"Public","body":"self == Partial"}},{"html_id":"sequential?-instance-method","name":"sequential?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":417,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L417"},"def":{"name":"sequential?","visibility":"Public","body":"self == Sequential"}}]},{"html_id":"vips/Vips/Enums/ForeignHeifCompression","path":"Vips/Enums/ForeignHeifCompression.html","kind":"enum","full_name":"Vips::Enums::ForeignHeifCompression","name":"ForeignHeifCompression","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":176,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L176"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Hevc","name":"Hevc","value":"1"},{"id":"Avc","name":"Avc","value":"2"},{"id":"Jpeg","name":"Jpeg","value":"3"},{"id":"Av1","name":"Av1","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"av1?-instance-method","name":"av1?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":180,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L180"},"def":{"name":"av1?","visibility":"Public","body":"self == Av1"}},{"html_id":"avc?-instance-method","name":"avc?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":178,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L178"},"def":{"name":"avc?","visibility":"Public","body":"self == Avc"}},{"html_id":"hevc?-instance-method","name":"hevc?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":177,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L177"},"def":{"name":"hevc?","visibility":"Public","body":"self == Hevc"}},{"html_id":"jpeg?-instance-method","name":"jpeg?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":179,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L179"},"def":{"name":"jpeg?","visibility":"Public","body":"self == Jpeg"}}]},{"html_id":"vips/Vips/Enums/ForeignJpegSubsample","path":"Vips/Enums/ForeignJpegSubsample.html","kind":"enum","full_name":"Vips::Enums::ForeignJpegSubsample","name":"ForeignJpegSubsample","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":183,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L183"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"On","name":"On","value":"1"},{"id":"Off","name":"Off","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":184,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L184"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":186,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L186"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":185,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L185"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"vips/Vips/Enums/ForeignPpmFormat","path":"Vips/Enums/ForeignPpmFormat.html","kind":"enum","full_name":"Vips::Enums::ForeignPpmFormat","name":"ForeignPpmFormat","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":189,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L189"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pbm","name":"Pbm","value":"0"},{"id":"Pgm","name":"Pgm","value":"1"},{"id":"Ppm","name":"Ppm","value":"2"},{"id":"Pfm","name":"Pfm","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"pbm?-instance-method","name":"pbm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":190,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L190"},"def":{"name":"pbm?","visibility":"Public","body":"self == Pbm"}},{"html_id":"pfm?-instance-method","name":"pfm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":193,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L193"},"def":{"name":"pfm?","visibility":"Public","body":"self == Pfm"}},{"html_id":"pgm?-instance-method","name":"pgm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":191,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L191"},"def":{"name":"pgm?","visibility":"Public","body":"self == Pgm"}},{"html_id":"ppm?-instance-method","name":"ppm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":192,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L192"},"def":{"name":"ppm?","visibility":"Public","body":"self == Ppm"}}]},{"html_id":"vips/Vips/Enums/ForeignSubsample","path":"Vips/Enums/ForeignSubsample.html","kind":"enum","full_name":"Vips::Enums::ForeignSubsample","name":"ForeignSubsample","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":196,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L196"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"On","name":"On","value":"1"},{"id":"Off","name":"Off","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":197,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L197"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":199,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L199"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":198,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L198"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"vips/Vips/Enums/ForeignTiffCompression","path":"Vips/Enums/ForeignTiffCompression.html","kind":"enum","full_name":"Vips::Enums::ForeignTiffCompression","name":"ForeignTiffCompression","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":202,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L202"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Jpeg","name":"Jpeg","value":"1"},{"id":"Deflate","name":"Deflate","value":"2"},{"id":"Packbits","name":"Packbits","value":"3"},{"id":"Ccittfax4","name":"Ccittfax4","value":"4"},{"id":"Lzw","name":"Lzw","value":"5"},{"id":"Webp","name":"Webp","value":"6"},{"id":"Zstd","name":"Zstd","value":"7"},{"id":"Jp2k","name":"Jp2k","value":"8"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"ccittfax4?-instance-method","name":"ccittfax4?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":207,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L207"},"def":{"name":"ccittfax4?","visibility":"Public","body":"self == Ccittfax4"}},{"html_id":"deflate?-instance-method","name":"deflate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":205,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L205"},"def":{"name":"deflate?","visibility":"Public","body":"self == Deflate"}},{"html_id":"jp2k?-instance-method","name":"jp2k?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":211,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L211"},"def":{"name":"jp2k?","visibility":"Public","body":"self == Jp2k"}},{"html_id":"jpeg?-instance-method","name":"jpeg?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":204,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L204"},"def":{"name":"jpeg?","visibility":"Public","body":"self == Jpeg"}},{"html_id":"lzw?-instance-method","name":"lzw?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":208,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L208"},"def":{"name":"lzw?","visibility":"Public","body":"self == Lzw"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":203,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L203"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"packbits?-instance-method","name":"packbits?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":206,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L206"},"def":{"name":"packbits?","visibility":"Public","body":"self == Packbits"}},{"html_id":"webp?-instance-method","name":"webp?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":209,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L209"},"def":{"name":"webp?","visibility":"Public","body":"self == Webp"}},{"html_id":"zstd?-instance-method","name":"zstd?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":210,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L210"},"def":{"name":"zstd?","visibility":"Public","body":"self == Zstd"}}]},{"html_id":"vips/Vips/Enums/ForeignTiffPredictor","path":"Vips/Enums/ForeignTiffPredictor.html","kind":"enum","full_name":"Vips::Enums::ForeignTiffPredictor","name":"ForeignTiffPredictor","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":214,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L214"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"1"},{"id":"Horizontal","name":"Horizontal","value":"2"},{"id":"Float","name":"Float","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":217,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L217"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"horizontal?-instance-method","name":"horizontal?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":216,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L216"},"def":{"name":"horizontal?","visibility":"Public","body":"self == Horizontal"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":215,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L215"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"vips/Vips/Enums/ForeignTiffResunit","path":"Vips/Enums/ForeignTiffResunit.html","kind":"enum","full_name":"Vips::Enums::ForeignTiffResunit","name":"ForeignTiffResunit","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":220,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L220"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Cm","name":"Cm","value":"0"},{"id":"Inch","name":"Inch","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"cm?-instance-method","name":"cm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":221,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L221"},"def":{"name":"cm?","visibility":"Public","body":"self == Cm"}},{"html_id":"inch?-instance-method","name":"inch?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":222,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L222"},"def":{"name":"inch?","visibility":"Public","body":"self == Inch"}}]},{"html_id":"vips/Vips/Enums/ForeignWebpPreset","path":"Vips/Enums/ForeignWebpPreset.html","kind":"enum","full_name":"Vips::Enums::ForeignWebpPreset","name":"ForeignWebpPreset","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":225,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L225"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Default","name":"Default","value":"0"},{"id":"Picture","name":"Picture","value":"1"},{"id":"Photo","name":"Photo","value":"2"},{"id":"Drawing","name":"Drawing","value":"3"},{"id":"Icon","name":"Icon","value":"4"},{"id":"Text","name":"Text","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"default?-instance-method","name":"default?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":226,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L226"},"def":{"name":"default?","visibility":"Public","body":"self == Default"}},{"html_id":"drawing?-instance-method","name":"drawing?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":229,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L229"},"def":{"name":"drawing?","visibility":"Public","body":"self == Drawing"}},{"html_id":"icon?-instance-method","name":"icon?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":230,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L230"},"def":{"name":"icon?","visibility":"Public","body":"self == Icon"}},{"html_id":"photo?-instance-method","name":"photo?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":228,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L228"},"def":{"name":"photo?","visibility":"Public","body":"self == Photo"}},{"html_id":"picture?-instance-method","name":"picture?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":227,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L227"},"def":{"name":"picture?","visibility":"Public","body":"self == Picture"}},{"html_id":"text?-instance-method","name":"text?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":231,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L231"},"def":{"name":"text?","visibility":"Public","body":"self == Text"}}]},{"html_id":"vips/Vips/Enums/ImageType","path":"Vips/Enums/ImageType.html","kind":"enum","full_name":"Vips::Enums::ImageType","name":"ImageType","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":234,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L234"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"None","name":"None","value":"0"},{"id":"Setbuf","name":"Setbuf","value":"1"},{"id":"SetbufForeign","name":"SetbufForeign","value":"2"},{"id":"Openin","name":"Openin","value":"3"},{"id":"Mmapin","name":"Mmapin","value":"4"},{"id":"Mmapinrw","name":"Mmapinrw","value":"5"},{"id":"Openout","name":"Openout","value":"6"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":235,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L235"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"mmapin?-instance-method","name":"mmapin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":240,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L240"},"def":{"name":"mmapin?","visibility":"Public","body":"self == Mmapin"}},{"html_id":"mmapinrw?-instance-method","name":"mmapinrw?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":241,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L241"},"def":{"name":"mmapinrw?","visibility":"Public","body":"self == Mmapinrw"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":236,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L236"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"openin?-instance-method","name":"openin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":239,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L239"},"def":{"name":"openin?","visibility":"Public","body":"self == Openin"}},{"html_id":"openout?-instance-method","name":"openout?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":242,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L242"},"def":{"name":"openout?","visibility":"Public","body":"self == Openout"}},{"html_id":"setbuf?-instance-method","name":"setbuf?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":237,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L237"},"def":{"name":"setbuf?","visibility":"Public","body":"self == Setbuf"}},{"html_id":"setbuf_foreign?-instance-method","name":"setbuf_foreign?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":238,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L238"},"def":{"name":"setbuf_foreign?","visibility":"Public","body":"self == SetbufForeign"}}]},{"html_id":"vips/Vips/Enums/Intent","path":"Vips/Enums/Intent.html","kind":"enum","full_name":"Vips::Enums::Intent","name":"Intent","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":245,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L245"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Perceptual","name":"Perceptual","value":"0"},{"id":"Relative","name":"Relative","value":"1"},{"id":"Saturation","name":"Saturation","value":"2"},{"id":"Absolute","name":"Absolute","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"absolute?-instance-method","name":"absolute?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":249,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L249"},"def":{"name":"absolute?","visibility":"Public","body":"self == Absolute"}},{"html_id":"perceptual?-instance-method","name":"perceptual?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":246,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L246"},"def":{"name":"perceptual?","visibility":"Public","body":"self == Perceptual"}},{"html_id":"relative?-instance-method","name":"relative?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":247,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L247"},"def":{"name":"relative?","visibility":"Public","body":"self == Relative"}},{"html_id":"saturation?-instance-method","name":"saturation?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":248,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L248"},"def":{"name":"saturation?","visibility":"Public","body":"self == Saturation"}}]},{"html_id":"vips/Vips/Enums/Interesting","path":"Vips/Enums/Interesting.html","kind":"enum","full_name":"Vips::Enums::Interesting","name":"Interesting","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":252,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L252"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Centre","name":"Centre","value":"1"},{"id":"Entropy","name":"Entropy","value":"2"},{"id":"Attention","name":"Attention","value":"3"},{"id":"Low","name":"Low","value":"4"},{"id":"High","name":"High","value":"5"},{"id":"All","name":"All","value":"6"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":259,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L259"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"attention?-instance-method","name":"attention?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":256,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L256"},"def":{"name":"attention?","visibility":"Public","body":"self == Attention"}},{"html_id":"centre?-instance-method","name":"centre?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":254,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L254"},"def":{"name":"centre?","visibility":"Public","body":"self == Centre"}},{"html_id":"entropy?-instance-method","name":"entropy?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":255,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L255"},"def":{"name":"entropy?","visibility":"Public","body":"self == Entropy"}},{"html_id":"high?-instance-method","name":"high?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":258,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L258"},"def":{"name":"high?","visibility":"Public","body":"self == High"}},{"html_id":"low?-instance-method","name":"low?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":257,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L257"},"def":{"name":"low?","visibility":"Public","body":"self == Low"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":253,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L253"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"vips/Vips/Enums/Interpretation","path":"Vips/Enums/Interpretation.html","kind":"enum","full_name":"Vips::Enums::Interpretation","name":"Interpretation","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":262,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L262"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"Multiband","name":"Multiband","value":"0"},{"id":"Bw","name":"Bw","value":"1"},{"id":"Histogram","name":"Histogram","value":"10"},{"id":"Xyz","name":"Xyz","value":"12"},{"id":"Lab","name":"Lab","value":"13"},{"id":"Cmyk","name":"Cmyk","value":"15"},{"id":"Labq","name":"Labq","value":"16"},{"id":"Rgb","name":"Rgb","value":"17"},{"id":"Cmc","name":"Cmc","value":"18"},{"id":"Lch","name":"Lch","value":"19"},{"id":"Labs","name":"Labs","value":"21"},{"id":"Srgb","name":"Srgb","value":"22"},{"id":"Yxy","name":"Yxy","value":"23"},{"id":"Fourier","name":"Fourier","value":"24"},{"id":"Rgb16","name":"Rgb16","value":"25"},{"id":"Grey16","name":"Grey16","value":"26"},{"id":"Matrix","name":"Matrix","value":"27"},{"id":"Scrgb","name":"Scrgb","value":"28"},{"id":"Hsv","name":"Hsv","value":"29"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"bw?-instance-method","name":"bw?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":265,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L265"},"def":{"name":"bw?","visibility":"Public","body":"self == Bw"}},{"html_id":"cmc?-instance-method","name":"cmc?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":272,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L272"},"def":{"name":"cmc?","visibility":"Public","body":"self == Cmc"}},{"html_id":"cmyk?-instance-method","name":"cmyk?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":269,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L269"},"def":{"name":"cmyk?","visibility":"Public","body":"self == Cmyk"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":263,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L263"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"fourier?-instance-method","name":"fourier?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":277,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L277"},"def":{"name":"fourier?","visibility":"Public","body":"self == Fourier"}},{"html_id":"grey16?-instance-method","name":"grey16?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":279,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L279"},"def":{"name":"grey16?","visibility":"Public","body":"self == Grey16"}},{"html_id":"histogram?-instance-method","name":"histogram?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":266,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L266"},"def":{"name":"histogram?","visibility":"Public","body":"self == Histogram"}},{"html_id":"hsv?-instance-method","name":"hsv?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":282,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L282"},"def":{"name":"hsv?","visibility":"Public","body":"self == Hsv"}},{"html_id":"lab?-instance-method","name":"lab?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":268,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L268"},"def":{"name":"lab?","visibility":"Public","body":"self == Lab"}},{"html_id":"labq?-instance-method","name":"labq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":270,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L270"},"def":{"name":"labq?","visibility":"Public","body":"self == Labq"}},{"html_id":"labs?-instance-method","name":"labs?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":274,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L274"},"def":{"name":"labs?","visibility":"Public","body":"self == Labs"}},{"html_id":"lch?-instance-method","name":"lch?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":273,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L273"},"def":{"name":"lch?","visibility":"Public","body":"self == Lch"}},{"html_id":"matrix?-instance-method","name":"matrix?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":280,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L280"},"def":{"name":"matrix?","visibility":"Public","body":"self == Matrix"}},{"html_id":"multiband?-instance-method","name":"multiband?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":264,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L264"},"def":{"name":"multiband?","visibility":"Public","body":"self == Multiband"}},{"html_id":"rgb16?-instance-method","name":"rgb16?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":278,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L278"},"def":{"name":"rgb16?","visibility":"Public","body":"self == Rgb16"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":271,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L271"},"def":{"name":"rgb?","visibility":"Public","body":"self == Rgb"}},{"html_id":"scrgb?-instance-method","name":"scrgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":281,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L281"},"def":{"name":"scrgb?","visibility":"Public","body":"self == Scrgb"}},{"html_id":"srgb?-instance-method","name":"srgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":275,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L275"},"def":{"name":"srgb?","visibility":"Public","body":"self == Srgb"}},{"html_id":"xyz?-instance-method","name":"xyz?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":267,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L267"},"def":{"name":"xyz?","visibility":"Public","body":"self == Xyz"}},{"html_id":"yxy?-instance-method","name":"yxy?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":276,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L276"},"def":{"name":"yxy?","visibility":"Public","body":"self == Yxy"}}]},{"html_id":"vips/Vips/Enums/Kernel","path":"Vips/Enums/Kernel.html","kind":"enum","full_name":"Vips::Enums::Kernel","name":"Kernel","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":285,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L285"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Nearest","name":"Nearest","value":"0"},{"id":"Linear","name":"Linear","value":"1"},{"id":"Cubic","name":"Cubic","value":"2"},{"id":"Mitchell","name":"Mitchell","value":"3"},{"id":"Lanczos2","name":"Lanczos2","value":"4"},{"id":"Lanczos3","name":"Lanczos3","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"cubic?-instance-method","name":"cubic?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":288,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L288"},"def":{"name":"cubic?","visibility":"Public","body":"self == Cubic"}},{"html_id":"lanczos2?-instance-method","name":"lanczos2?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":290,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L290"},"def":{"name":"lanczos2?","visibility":"Public","body":"self == Lanczos2"}},{"html_id":"lanczos3?-instance-method","name":"lanczos3?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":291,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L291"},"def":{"name":"lanczos3?","visibility":"Public","body":"self == Lanczos3"}},{"html_id":"linear?-instance-method","name":"linear?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":287,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L287"},"def":{"name":"linear?","visibility":"Public","body":"self == Linear"}},{"html_id":"mitchell?-instance-method","name":"mitchell?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":289,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L289"},"def":{"name":"mitchell?","visibility":"Public","body":"self == Mitchell"}},{"html_id":"nearest?-instance-method","name":"nearest?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":286,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L286"},"def":{"name":"nearest?","visibility":"Public","body":"self == Nearest"}}]},{"html_id":"vips/Vips/Enums/OperationBoolean","path":"Vips/Enums/OperationBoolean.html","kind":"enum","full_name":"Vips::Enums::OperationBoolean","name":"OperationBoolean","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":294,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L294"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"And","name":"And","value":"0"},{"id":"Or","name":"Or","value":"1"},{"id":"Eor","name":"Eor","value":"2"},{"id":"Lshift","name":"Lshift","value":"3"},{"id":"Rshift","name":"Rshift","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"and?-instance-method","name":"and?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":295,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L295"},"def":{"name":"and?","visibility":"Public","body":"self == And"}},{"html_id":"eor?-instance-method","name":"eor?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":297,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L297"},"def":{"name":"eor?","visibility":"Public","body":"self == Eor"}},{"html_id":"lshift?-instance-method","name":"lshift?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":298,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L298"},"def":{"name":"lshift?","visibility":"Public","body":"self == Lshift"}},{"html_id":"or?-instance-method","name":"or?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":296,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L296"},"def":{"name":"or?","visibility":"Public","body":"self == Or"}},{"html_id":"rshift?-instance-method","name":"rshift?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":299,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L299"},"def":{"name":"rshift?","visibility":"Public","body":"self == Rshift"}}]},{"html_id":"vips/Vips/Enums/OperationComplex","path":"Vips/Enums/OperationComplex.html","kind":"enum","full_name":"Vips::Enums::OperationComplex","name":"OperationComplex","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":302,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L302"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Polar","name":"Polar","value":"0"},{"id":"Rect","name":"Rect","value":"1"},{"id":"Conj","name":"Conj","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"conj?-instance-method","name":"conj?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":305,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L305"},"def":{"name":"conj?","visibility":"Public","body":"self == Conj"}},{"html_id":"polar?-instance-method","name":"polar?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":303,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L303"},"def":{"name":"polar?","visibility":"Public","body":"self == Polar"}},{"html_id":"rect?-instance-method","name":"rect?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":304,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L304"},"def":{"name":"rect?","visibility":"Public","body":"self == Rect"}}]},{"html_id":"vips/Vips/Enums/OperationComplex2","path":"Vips/Enums/OperationComplex2.html","kind":"enum","full_name":"Vips::Enums::OperationComplex2","name":"OperationComplex2","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":308,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L308"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"CrossPhase","name":"CrossPhase","value":"0"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"cross_phase?-instance-method","name":"cross_phase?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":309,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L309"},"def":{"name":"cross_phase?","visibility":"Public","body":"self == CrossPhase"}}]},{"html_id":"vips/Vips/Enums/OperationComplexget","path":"Vips/Enums/OperationComplexget.html","kind":"enum","full_name":"Vips::Enums::OperationComplexget","name":"OperationComplexget","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":312,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L312"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Real","name":"Real","value":"0"},{"id":"Imag","name":"Imag","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"imag?-instance-method","name":"imag?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":314,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L314"},"def":{"name":"imag?","visibility":"Public","body":"self == Imag"}},{"html_id":"real?-instance-method","name":"real?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":313,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L313"},"def":{"name":"real?","visibility":"Public","body":"self == Real"}}]},{"html_id":"vips/Vips/Enums/OperationFlags","path":"Vips/Enums/OperationFlags.html","kind":"enum","full_name":"Vips::Enums::OperationFlags","name":"OperationFlags","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":405,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L405"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Sequential","name":"Sequential","value":"1"},{"id":"SequentialUnbuffered","name":"SequentialUnbuffered","value":"2"},{"id":"Nocache","name":"Nocache","value":"4"},{"id":"Deprecated","name":"Deprecated","value":"8"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"deprecated?-instance-method","name":"deprecated?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":410,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L410"},"def":{"name":"deprecated?","visibility":"Public","body":"self == Deprecated"}},{"html_id":"nocache?-instance-method","name":"nocache?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":409,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L409"},"def":{"name":"nocache?","visibility":"Public","body":"self == Nocache"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":406,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L406"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"sequential?-instance-method","name":"sequential?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":407,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L407"},"def":{"name":"sequential?","visibility":"Public","body":"self == Sequential"}},{"html_id":"sequential_unbuffered?-instance-method","name":"sequential_unbuffered?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":408,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L408"},"def":{"name":"sequential_unbuffered?","visibility":"Public","body":"self == SequentialUnbuffered"}}]},{"html_id":"vips/Vips/Enums/OperationMath","path":"Vips/Enums/OperationMath.html","kind":"enum","full_name":"Vips::Enums::OperationMath","name":"OperationMath","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":317,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L317"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Sin","name":"Sin","value":"0"},{"id":"Cos","name":"Cos","value":"1"},{"id":"Tan","name":"Tan","value":"2"},{"id":"Asin","name":"Asin","value":"3"},{"id":"Acos","name":"Acos","value":"4"},{"id":"Atan","name":"Atan","value":"5"},{"id":"Log","name":"Log","value":"6"},{"id":"Log10","name":"Log10","value":"7"},{"id":"Exp","name":"Exp","value":"8"},{"id":"Exp10","name":"Exp10","value":"9"},{"id":"Sinh","name":"Sinh","value":"10"},{"id":"Cosh","name":"Cosh","value":"11"},{"id":"Tanh","name":"Tanh","value":"12"},{"id":"Asinh","name":"Asinh","value":"13"},{"id":"Acosh","name":"Acosh","value":"14"},{"id":"Atanh","name":"Atanh","value":"15"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"acos?-instance-method","name":"acos?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":322,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L322"},"def":{"name":"acos?","visibility":"Public","body":"self == Acos"}},{"html_id":"acosh?-instance-method","name":"acosh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":332,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L332"},"def":{"name":"acosh?","visibility":"Public","body":"self == Acosh"}},{"html_id":"asin?-instance-method","name":"asin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":321,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L321"},"def":{"name":"asin?","visibility":"Public","body":"self == Asin"}},{"html_id":"asinh?-instance-method","name":"asinh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":331,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L331"},"def":{"name":"asinh?","visibility":"Public","body":"self == Asinh"}},{"html_id":"atan?-instance-method","name":"atan?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":323,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L323"},"def":{"name":"atan?","visibility":"Public","body":"self == Atan"}},{"html_id":"atanh?-instance-method","name":"atanh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":333,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L333"},"def":{"name":"atanh?","visibility":"Public","body":"self == Atanh"}},{"html_id":"cos?-instance-method","name":"cos?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":319,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L319"},"def":{"name":"cos?","visibility":"Public","body":"self == Cos"}},{"html_id":"cosh?-instance-method","name":"cosh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":329,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L329"},"def":{"name":"cosh?","visibility":"Public","body":"self == Cosh"}},{"html_id":"exp10?-instance-method","name":"exp10?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":327,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L327"},"def":{"name":"exp10?","visibility":"Public","body":"self == Exp10"}},{"html_id":"exp?-instance-method","name":"exp?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":326,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L326"},"def":{"name":"exp?","visibility":"Public","body":"self == Exp"}},{"html_id":"log10?-instance-method","name":"log10?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":325,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L325"},"def":{"name":"log10?","visibility":"Public","body":"self == Log10"}},{"html_id":"log?-instance-method","name":"log?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":324,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L324"},"def":{"name":"log?","visibility":"Public","body":"self == Log"}},{"html_id":"sin?-instance-method","name":"sin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":318,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L318"},"def":{"name":"sin?","visibility":"Public","body":"self == Sin"}},{"html_id":"sinh?-instance-method","name":"sinh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":328,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L328"},"def":{"name":"sinh?","visibility":"Public","body":"self == Sinh"}},{"html_id":"tan?-instance-method","name":"tan?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":320,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L320"},"def":{"name":"tan?","visibility":"Public","body":"self == Tan"}},{"html_id":"tanh?-instance-method","name":"tanh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":330,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L330"},"def":{"name":"tanh?","visibility":"Public","body":"self == Tanh"}}]},{"html_id":"vips/Vips/Enums/OperationMath2","path":"Vips/Enums/OperationMath2.html","kind":"enum","full_name":"Vips::Enums::OperationMath2","name":"OperationMath2","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":336,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L336"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pow","name":"Pow","value":"0"},{"id":"Wop","name":"Wop","value":"1"},{"id":"Atan2","name":"Atan2","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"atan2?-instance-method","name":"atan2?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":339,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L339"},"def":{"name":"atan2?","visibility":"Public","body":"self == Atan2"}},{"html_id":"pow?-instance-method","name":"pow?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":337,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L337"},"def":{"name":"pow?","visibility":"Public","body":"self == Pow"}},{"html_id":"wop?-instance-method","name":"wop?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":338,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L338"},"def":{"name":"wop?","visibility":"Public","body":"self == Wop"}}]},{"html_id":"vips/Vips/Enums/OperationMorphology","path":"Vips/Enums/OperationMorphology.html","kind":"enum","full_name":"Vips::Enums::OperationMorphology","name":"OperationMorphology","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":342,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L342"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Erode","name":"Erode","value":"0"},{"id":"Dilate","name":"Dilate","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"dilate?-instance-method","name":"dilate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":344,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L344"},"def":{"name":"dilate?","visibility":"Public","body":"self == Dilate"}},{"html_id":"erode?-instance-method","name":"erode?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":343,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L343"},"def":{"name":"erode?","visibility":"Public","body":"self == Erode"}}]},{"html_id":"vips/Vips/Enums/OperationRelational","path":"Vips/Enums/OperationRelational.html","kind":"enum","full_name":"Vips::Enums::OperationRelational","name":"OperationRelational","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":347,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L347"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Equal","name":"Equal","value":"0"},{"id":"Noteq","name":"Noteq","value":"1"},{"id":"Less","name":"Less","value":"2"},{"id":"Lesseq","name":"Lesseq","value":"3"},{"id":"More","name":"More","value":"4"},{"id":"Moreeq","name":"Moreeq","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":348,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L348"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"less?-instance-method","name":"less?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":350,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L350"},"def":{"name":"less?","visibility":"Public","body":"self == Less"}},{"html_id":"lesseq?-instance-method","name":"lesseq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":351,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L351"},"def":{"name":"lesseq?","visibility":"Public","body":"self == Lesseq"}},{"html_id":"more?-instance-method","name":"more?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":352,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L352"},"def":{"name":"more?","visibility":"Public","body":"self == More"}},{"html_id":"moreeq?-instance-method","name":"moreeq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":353,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L353"},"def":{"name":"moreeq?","visibility":"Public","body":"self == Moreeq"}},{"html_id":"noteq?-instance-method","name":"noteq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":349,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L349"},"def":{"name":"noteq?","visibility":"Public","body":"self == Noteq"}}]},{"html_id":"vips/Vips/Enums/OperationRound","path":"Vips/Enums/OperationRound.html","kind":"enum","full_name":"Vips::Enums::OperationRound","name":"OperationRound","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":356,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L356"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Rint","name":"Rint","value":"0"},{"id":"Ceil","name":"Ceil","value":"1"},{"id":"Floor","name":"Floor","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"ceil?-instance-method","name":"ceil?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":358,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L358"},"def":{"name":"ceil?","visibility":"Public","body":"self == Ceil"}},{"html_id":"floor?-instance-method","name":"floor?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":359,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L359"},"def":{"name":"floor?","visibility":"Public","body":"self == Floor"}},{"html_id":"rint?-instance-method","name":"rint?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":357,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L357"},"def":{"name":"rint?","visibility":"Public","body":"self == Rint"}}]},{"html_id":"vips/Vips/Enums/PCS","path":"Vips/Enums/PCS.html","kind":"enum","full_name":"Vips::Enums::PCS","name":"PCS","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":362,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L362"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Lab","name":"Lab","value":"0"},{"id":"Xyz","name":"Xyz","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"lab?-instance-method","name":"lab?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":363,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L363"},"def":{"name":"lab?","visibility":"Public","body":"self == Lab"}},{"html_id":"xyz?-instance-method","name":"xyz?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":364,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L364"},"def":{"name":"xyz?","visibility":"Public","body":"self == Xyz"}}]},{"html_id":"vips/Vips/Enums/Precision","path":"Vips/Enums/Precision.html","kind":"enum","full_name":"Vips::Enums::Precision","name":"Precision","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":367,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L367"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Integer","name":"Integer","value":"0"},{"id":"Float","name":"Float","value":"1"},{"id":"Approximate","name":"Approximate","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"approximate?-instance-method","name":"approximate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":370,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L370"},"def":{"name":"approximate?","visibility":"Public","body":"self == Approximate"}},{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":369,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L369"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"integer?-instance-method","name":"integer?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":368,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L368"},"def":{"name":"integer?","visibility":"Public","body":"self == Integer"}}]},{"html_id":"vips/Vips/Enums/RegionShrink","path":"Vips/Enums/RegionShrink.html","kind":"enum","full_name":"Vips::Enums::RegionShrink","name":"RegionShrink","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":373,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L373"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Mean","name":"Mean","value":"0"},{"id":"Median","name":"Median","value":"1"},{"id":"Mode","name":"Mode","value":"2"},{"id":"Max","name":"Max","value":"3"},{"id":"Min","name":"Min","value":"4"},{"id":"Nearest","name":"Nearest","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"max?-instance-method","name":"max?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":377,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L377"},"def":{"name":"max?","visibility":"Public","body":"self == Max"}},{"html_id":"mean?-instance-method","name":"mean?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":374,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L374"},"def":{"name":"mean?","visibility":"Public","body":"self == Mean"}},{"html_id":"median?-instance-method","name":"median?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":375,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L375"},"def":{"name":"median?","visibility":"Public","body":"self == Median"}},{"html_id":"min?-instance-method","name":"min?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":378,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L378"},"def":{"name":"min?","visibility":"Public","body":"self == Min"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":376,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L376"},"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"nearest?-instance-method","name":"nearest?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":379,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L379"},"def":{"name":"nearest?","visibility":"Public","body":"self == Nearest"}}]},{"html_id":"vips/Vips/Enums/Saveable","path":"Vips/Enums/Saveable.html","kind":"enum","full_name":"Vips::Enums::Saveable","name":"Saveable","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":382,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L382"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Mono","name":"Mono","value":"0"},{"id":"Rgb","name":"Rgb","value":"1"},{"id":"Rgba","name":"Rgba","value":"2"},{"id":"RgbaOnly","name":"RgbaOnly","value":"3"},{"id":"RgbCmyk","name":"RgbCmyk","value":"4"},{"id":"Any","name":"Any","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"any?-instance-method","name":"any?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":388,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L388"},"def":{"name":"any?","visibility":"Public","body":"self == Any"}},{"html_id":"mono?-instance-method","name":"mono?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":383,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L383"},"def":{"name":"mono?","visibility":"Public","body":"self == Mono"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":384,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L384"},"def":{"name":"rgb?","visibility":"Public","body":"self == Rgb"}},{"html_id":"rgb_cmyk?-instance-method","name":"rgb_cmyk?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":387,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L387"},"def":{"name":"rgb_cmyk?","visibility":"Public","body":"self == RgbCmyk"}},{"html_id":"rgba?-instance-method","name":"rgba?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":385,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L385"},"def":{"name":"rgba?","visibility":"Public","body":"self == Rgba"}},{"html_id":"rgba_only?-instance-method","name":"rgba_only?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":386,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L386"},"def":{"name":"rgba_only?","visibility":"Public","body":"self == RgbaOnly"}}]},{"html_id":"vips/Vips/Enums/Signal","path":"Vips/Enums/Signal.html","kind":"enum","full_name":"Vips::Enums::Signal","name":"Signal","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":422,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L422"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PreEval","name":"PreEval","value":"0","doc":"Evaluation is starting\nThe preeval signal is emitted once before computation of `Image` starts.\nIt's a good place to set up evaluation feedback.","summary":"

    Evaluation is starting The preeval signal is emitted once before computation of Image starts.

    "},{"id":"Eval","name":"Eval","value":"1","doc":"The eval signal is emitted once per work unit (typically a 128 x 128 are of pixels)\nduring image computation\n\nYou can use this signal to update user-interfaces with progress feedback.\nBeware of updating too frequently: you will usually need some throttling mechanism","summary":"

    The eval signal is emitted once per work unit (typically a 128 x 128 are of pixels) during image computation

    "},{"id":"PostEval","name":"PostEval","value":"2","doc":"Ealuation is ending\nThe posteval signal is emitted once at the end of the computation of `Image`.\nIt's a good place to shut down evaluation feedback.","summary":"

    Ealuation is ending The posteval signal is emitted once at the end of the computation of Image.

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"doc":"Signals that can be used on an `Image`. See `GObject#signal_connect`","summary":"

    Signals that can be used on an Image.

    ","instance_methods":[{"html_id":"eval?-instance-method","name":"eval?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":433,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L433"},"def":{"name":"eval?","visibility":"Public","body":"self == Eval"}},{"html_id":"post_eval?-instance-method","name":"post_eval?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":438,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L438"},"def":{"name":"post_eval?","visibility":"Public","body":"self == PostEval"}},{"html_id":"pre_eval?-instance-method","name":"pre_eval?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":426,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L426"},"def":{"name":"pre_eval?","visibility":"Public","body":"self == PreEval"}}]},{"html_id":"vips/Vips/Enums/Size","path":"Vips/Enums/Size.html","kind":"enum","full_name":"Vips::Enums::Size","name":"Size","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":391,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L391"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Both","name":"Both","value":"0"},{"id":"Up","name":"Up","value":"1"},{"id":"Down","name":"Down","value":"2"},{"id":"Force","name":"Force","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"both?-instance-method","name":"both?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":392,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L392"},"def":{"name":"both?","visibility":"Public","body":"self == Both"}},{"html_id":"down?-instance-method","name":"down?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":394,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L394"},"def":{"name":"down?","visibility":"Public","body":"self == Down"}},{"html_id":"force?-instance-method","name":"force?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":395,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L395"},"def":{"name":"force?","visibility":"Public","body":"self == Force"}},{"html_id":"up?-instance-method","name":"up?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":393,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L393"},"def":{"name":"up?","visibility":"Public","body":"self == Up"}}]},{"html_id":"vips/Vips/Enums/Token","path":"Vips/Enums/Token.html","kind":"enum","full_name":"Vips::Enums::Token","name":"Token","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":398,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L398"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Left","name":"Left","value":"1"},{"id":"Right","name":"Right","value":"2"},{"id":"String","name":"String","value":"3"},{"id":"Equals","name":"Equals","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"equals?-instance-method","name":"equals?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":402,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L402"},"def":{"name":"equals?","visibility":"Public","body":"self == Equals"}},{"html_id":"left?-instance-method","name":"left?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":399,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L399"},"def":{"name":"left?","visibility":"Public","body":"self == Left"}},{"html_id":"right?-instance-method","name":"right?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":400,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L400"},"def":{"name":"right?","visibility":"Public","body":"self == Right"}},{"html_id":"string?-instance-method","name":"string?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":401,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L401"},"def":{"name":"string?","visibility":"Public","body":"self == String"}}]}]},{"html_id":"vips/Vips/GObject","path":"Vips/GObject.html","kind":"class","full_name":"Vips::GObject","name":"GObject","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/gobject.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"finalize-instance-method","name":"finalize","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L79"},"def":{"name":"finalize","visibility":"Public","body":"LibVips.g_object_unref(@handle)"}},{"html_id":"get(name:String,gval:GValue)-instance-method","name":"get","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"args_string":"(name : String, gval : GValue)","args_html":"(name : String, gval : GValue)","location":{"filename":"src/vips/gobject.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L65"},"def":{"name":"get","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"visibility":"Public","body":"LibVips.g_object_get_property(@handle, name, gval)\ngval.get\n"}},{"html_id":"object_ref-instance-method","name":"object_ref","doc":"Increases the reference count of object","summary":"

    Increases the reference count of object

    ","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":56,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L56"},"def":{"name":"object_ref","visibility":"Public","body":"LibVips.g_object_ref(@handle)"}},{"html_id":"ref_count-instance-method","name":"ref_count","doc":"Get the reference count of object.","summary":"

    Get the reference count of object.

    ","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":61,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L61"},"def":{"name":"ref_count","visibility":"Public","body":"@handle.value.ref_count"}},{"html_id":"release_handle-instance-method","name":"release_handle","doc":"Decreases the reference count of object.\nWhen its reference count drops to 0, its memory is freed.","summary":"

    Decreases the reference count of object.

    ","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":50,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L50"},"def":{"name":"release_handle","visibility":"Public","body":"if @handle.null?\nelse\n LibVips.g_object_unref(@handle)\nend\ntrue\n"}},{"html_id":"set(name:String,gval:GValue)-instance-method","name":"set","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"args_string":"(name : String, gval : GValue)","args_html":"(name : String, gval : GValue)","location":{"filename":"src/vips/gobject.cr","line_number":70,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L70"},"def":{"name":"set","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"visibility":"Public","body":"LibVips.g_object_set_property(@handle, name, gval)"}},{"html_id":"signal_connect(signal:String,callback:Proc,data:Pointer(Void)=Pointer(Void).null):LibVips::Gulong-instance-method","name":"signal_connect","doc":"Connects a `callback` to a signal on this object.\nThe callback will be triggered every time this signal is issued on this instance.","summary":"

    Connects a callback to a signal on this object.

    ","abstract":false,"args":[{"name":"signal","external_name":"signal","restriction":"String"},{"name":"callback","external_name":"callback","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"args_string":"(signal : String, callback : Proc, data : Pointer(Void) = Pointer(Void).null) : LibVips::Gulong","args_html":"(signal : String, callback : Proc, data : Pointer(Void) = Pointer(Void).null) : LibVips::Gulong","location":{"filename":"src/vips/gobject.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L8"},"def":{"name":"signal_connect","args":[{"name":"signal","external_name":"signal","restriction":"String"},{"name":"callback","external_name":"callback","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"return_type":"LibVips::Gulong","visibility":"Public","body":"if (cb = callback.as?(Image::EvalProc))\n em = LibVips::EvalSignal.new do |imgptr, progressptr, data|\n if imgptr.null? || progressptr.null?\n next\n end\n img = Image.new(imgptr)\n progress = progressptr.value\n cb.call(img, progress)\n end\n callback = em\nend\n(LibVips.g_signal_connect_data(@handle, signal, callback.pointer, data, nil, LibVips::GConnectFlags::GConnectAfter)).tap do |ret|\n if ret == 0\n raise(VipsException.new(\"Couldn't connect signal #{signal}\"))\n end\nend\n"}},{"html_id":"signal_disconnect(handler_id:LibVips::Gulong)-instance-method","name":"signal_disconnect","doc":"Disconnects a handler from this object","summary":"

    Disconnects a handler from this object

    ","abstract":false,"args":[{"name":"handler_id","external_name":"handler_id","restriction":"LibVips::Gulong"}],"args_string":"(handler_id : LibVips::Gulong)","args_html":"(handler_id : LibVips::Gulong)","location":{"filename":"src/vips/gobject.cr","line_number":29,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L29"},"def":{"name":"signal_disconnect","args":[{"name":"handler_id","external_name":"handler_id","restriction":"LibVips::Gulong"}],"visibility":"Public","body":"if handler_id == 0\nelse\n LibVips.g_signal_handler_disconnect(@handle, handler_id)\nend"}},{"html_id":"signal_disconnect(func:Proc,data:Pointer(Void)=Pointer(Void).null)-instance-method","name":"signal_disconnect","doc":"Disconnects all handlers from this object that match `func` and `data`","summary":"

    Disconnects all handlers from this object that match func and data

    ","abstract":false,"args":[{"name":"func","external_name":"func","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"::Pointer(Void)"}],"args_string":"(func : Proc, data : Pointer(Void) = Pointer(Void).null)","args_html":"(func : Proc, data : Pointer(Void) = Pointer(Void).null)","location":{"filename":"src/vips/gobject.cr","line_number":34,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L34"},"def":{"name":"signal_disconnect","args":[{"name":"func","external_name":"func","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"::Pointer(Void)"}],"visibility":"Public","body":"LibVips.g_signal_handlers_disconnect_matched(@handle, LibVips::GSignalMatchType::GSignalMatchFunc | LibVips::GSignalMatchType::GSignalMatchData, 0, 0, Pointer(LibVips::GClosure).null, nil, data)"}},{"html_id":"signal_disconnect(data:LibVips::Gpointer)-instance-method","name":"signal_disconnect","doc":"Disconnects all handlers from this object that match","summary":"

    Disconnects all handlers from this object that match

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"LibVips::Gpointer"}],"args_string":"(data : LibVips::Gpointer)","args_html":"(data : LibVips::Gpointer)","location":{"filename":"src/vips/gobject.cr","line_number":42,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L42"},"def":{"name":"signal_disconnect","args":[{"name":"data","external_name":"data","restriction":"LibVips::Gpointer"}],"visibility":"Public","body":"LibVips.g_signal_handlers_disconnect_matched(@handle, LibVips::GSignalMatchType::GSignalMatchData, 0, 0, Pointer(LibVips::GClosure).null, nil, data)"}}]},{"html_id":"vips/Vips/GValue","path":"Vips/GValue.html","kind":"class","full_name":"Vips::GValue","name":"GValue","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/gvalue.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L8"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"GBool","name":"GBool","value":"Vips.type_from_name(\"gboolean\")","doc":"The fundamental type corresponding to gboolean","summary":"

    The fundamental type corresponding to gboolean

    "},{"id":"GDouble","name":"GDouble","value":"Vips.type_from_name(\"gdouble\")","doc":"The fundamental type corresponding to gdouble","summary":"

    The fundamental type corresponding to gdouble

    "},{"id":"GEnum","name":"GEnum","value":"Vips.type_from_name(\"GEnum\")","doc":"The fundamental type from which all enumeration types are derived","summary":"

    The fundamental type from which all enumeration types are derived

    "},{"id":"GFlags","name":"GFlags","value":"Vips.type_from_name(\"GFlags\")","doc":"The fundamental type from which all flags types are derived","summary":"

    The fundamental type from which all flags types are derived

    "},{"id":"GInt","name":"GInt","value":"Vips.type_from_name(\"gint\")","doc":"The fundamental type corresponding to gint","summary":"

    The fundamental type corresponding to gint

    "},{"id":"GObject","name":"GObject","value":"Vips.type_from_name(\"GObject\")","doc":"The fundamental type for GObject","summary":"

    The fundamental type for GObject

    "},{"id":"GString","name":"GString","value":"Vips.type_from_name(\"gchararray\")","doc":"The fundamental type corresponding to null-terminated C strings.","summary":"

    The fundamental type corresponding to null-terminated C strings.

    "},{"id":"GUint64","name":"GUint64","value":"Vips.type_from_name(\"guint64\")","doc":"The fundamental type corresponding to guint64","summary":"

    The fundamental type corresponding to guint64

    "},{"id":"VArrayDouble","name":"VArrayDouble","value":"Vips.type_from_name(\"VipsArrayDouble\")","doc":"The fundamental type for VipsArrayDouble","summary":"

    The fundamental type for VipsArrayDouble

    "},{"id":"VArrayImage","name":"VArrayImage","value":"Vips.type_from_name(\"VipsArrayImage\")","doc":"The fundamental type for VipsArrayImage","summary":"

    The fundamental type for VipsArrayImage

    "},{"id":"VArrayInt","name":"VArrayInt","value":"Vips.type_from_name(\"VipsArrayInt\")","doc":"The fundamental type for VipsArrayInt","summary":"

    The fundamental type for VipsArrayInt

    "},{"id":"VBandFormat","name":"VBandFormat","value":"LibVips.vips_band_format_get_type","doc":"The fundamental type for VipsBandFormat","summary":"

    The fundamental type for VipsBandFormat

    "},{"id":"VBlendMode","name":"VBlendMode","value":"Vips.at_least_libvips?(8, 6) ? LibVips.vips_blend_mode_get_type : 0","doc":"The fundamental type for VipsBlendMode","summary":"

    The fundamental type for VipsBlendMode

    "},{"id":"VBlob","name":"VBlob","value":"Vips.type_from_name(\"VipsBlob\")","doc":"The fundamental type for VipsBlob","summary":"

    The fundamental type for VipsBlob

    "},{"id":"VImageType","name":"VImageType","value":"Vips.type_from_name(\"VipsImage\")","doc":"The fundamental type for VipsImage","summary":"

    The fundamental type for VipsImage

    "},{"id":"VRefStr","name":"VRefStr","value":"Vips.type_from_name(\"VipsRefString\")","doc":"The fundamental type for VipsRefString","summary":"

    The fundamental type for VipsRefString

    "},{"id":"VSource","name":"VSource","value":"Vips.at_least_libvips?(8, 9) ? Vips.type_from_name(\"VipsSource\") : 0","doc":"The fundamental type for VipsSource","summary":"

    The fundamental type for VipsSource

    "},{"id":"VTarget","name":"VTarget","value":"Vips.at_least_libvips?(8, 9) ? Vips.type_from_name(\"VipsTarget\") : 0","doc":"The fundamental type for VipsTarget","summary":"

    The fundamental type for VipsTarget

    "}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Class to wrap `LibVips::GValue` in a Crystal class.\nThis class wraps `LibVips::GValue` in a convenient interface. You can use\ninstances of this class to get and set `GObject` properties.\nOn construction, `LibVips::GValue` is all zero (empty). You can pass it to\na get function to have it filled by `GObject`, or use `initialize(gvalue)` to\nset a type, `set` to set a value, then use it to set an object property.","summary":"

    Class to wrap LibVips::GValue in a Crystal class.

    ","constructors":[{"html_id":"new(value:GValue)-class-method","name":"new","doc":"Initialize new instance with specified `GValue`","summary":"

    Initialize new instance with specified GValue

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"GValue"}],"args_string":"(value : GValue)","args_html":"(value : GValue)","location":{"filename":"src/vips/gvalue.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L18"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"GValue"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new-class-method","name":"new","doc":"Initialize new instance of `GValue`","summary":"

    Initialize new instance of GValue

    ","abstract":false,"location":{"filename":"src/vips/gvalue.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L12"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"get:Type-instance-method","name":"get","doc":"Get the contents of a GValue\nThe contents of the GValue are read out as a Crystal type","summary":"

    Get the contents of a GValue The contents of the GValue are read out as a Crystal type

    ","abstract":false,"location":{"filename":"src/vips/gvalue.cr","line_number":113,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L113"},"def":{"name":"get","return_type":"Type","visibility":"Public","body":"gtype = get_type\nfundamental = Vips.fundamental_type(gtype)\nresult = if gtype == GBool\n LibVips.g_value_get_boolean(self)\nelse\n if gtype == GInt\n LibVips.g_value_get_int(self)\n else\n if gtype == GUint64\n LibVips.g_value_get_uint64(self)\n else\n if gtype == GDouble\n LibVips.g_value_get_double(self)\n else\n if fundamental == GEnum\n LibVips.g_value_get_enum(self)\n else\n if fundamental == GFlags\n LibVips.g_value_get_flags(self)\n else\n if gtype == GString\n String.new((LibVips.g_value_get_string(self)) || Bytes.empty)\n else\n if gtype == VRefStr\n res = LibVips.vips_value_get_ref_string(self, out size)\n String.new(res, size)\n else\n if gtype == VImageType\n vi = LibVips.g_value_get_object(self)\n image = Image.new(vi.as(::Pointer(LibVips::VipsImage)))\n image.object_ref\n image\n else\n if gtype == VArrayInt\n ptr = LibVips.vips_value_get_array_int(self, out vsize)\n Array(Int32).new(vsize) do |i|\n ptr[i]\n end\n else\n if gtype == VArrayDouble\n ptr = LibVips.vips_value_get_array_double(self, out dsize)\n Array(Float64).new(dsize) do |i|\n ptr[i]\n end\n else\n if gtype == VArrayImage\n ptr = LibVips.vips_value_get_array_image(self, out isize)\n Array(Image).new(isize) do |i|\n image = Image.new(ptr[i])\n image.object_ref\n image\n end\n else\n if gtype == VBlob\n ptr = LibVips.vips_value_get_blob(self, out bsize)\n res = Bytes.new(bsize)\n res.to_unsafe.copy_from(ptr.as(::Pointer(UInt8)), bsize.to_i)\n res\n else\n raise(VipsException.new(\"unsupported gtype for get #{Vips.typename(gtype)}, fundamental #{Vips.typename(fundamental)}\"))\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\nend\nType.new(result)\n"}},{"html_id":"get_type-instance-method","name":"get_type","doc":"Get the GType of this GValue","summary":"

    Get the GType of this GValue

    ","abstract":false,"location":{"filename":"src/vips/gvalue.cr","line_number":170,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L170"},"def":{"name":"get_type","visibility":"Public","body":"@value.g_type"}},{"html_id":"set(value)-instance-method","name":"set","doc":"Set a GValue\nThe value is converted to the type of the GValue, if possible, and assigned","summary":"

    Set a GValue The value is converted to the type of the GValue, if possible, and assigned

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""}],"args_string":"(value)","args_html":"(value)","location":{"filename":"src/vips/gvalue.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L35"},"def":{"name":"set","args":[{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gtype = get_type\nfundamental = Vips.fundamental_type(gtype)\nif value.is_a?(Type)\n value = value.value\nend\nif gtype == GBool\n LibVips.g_value_set_boolean(self, ( value ? 1 : 0))\nelse\n if gtype == GInt\n LibVips.g_value_set_int(self, Converter.to_i32(value))\n else\n if gtype == GUint64\n LibVips.g_value_set_uint64(self, Converter.to_u64(value))\n else\n if gtype == GDouble\n LibVips.g_value_set_double(self, Converter.to_double(value))\n else\n if fundamental == GEnum\n LibVips.g_value_set_enum(self, Converter.to_i32(value))\n else\n if fundamental == GFlags\n LibVips.g_value_set_flags(self, Converter.to_u32(value))\n else\n if gtype == GString\n LibVips.g_value_set_string(self, Converter.to_string(value))\n else\n if gtype == VRefStr\n LibVips.vips_value_set_ref_string(self, Converter.to_string(value))\n else\n if (fundamental == GObject) && (obj = value.as?(Vips::GObject))\n LibVips.g_value_set_object(self, obj.handle)\n else\n if gtype == VArrayInt\n aval = value.is_a?(Array) ? value : [value]\n intarr = case aval\n when Array(Int32)\n aval\n when Array\n Array(Int32).new(aval.size) do |i|\n Converter.to_i32(aval[i])\n end\n else\n raise(VipsException.new(\"unsuported value type #{typeof(value)} for gtype #{Vips.typename(gtype)} \"))\n end\n LibVips.vips_value_set_array_int(self, intarr, intarr.size)\n else\n if gtype == VArrayDouble\n aval = value.is_a?(Array) ? value : [value]\n intarr = case aval\n when Array(Float64)\n aval\n when Array\n Array(Float64).new(aval.size) do |i|\n Converter.to_double(aval[i])\n end\n else\n raise(VipsException.new(\"unsuported value type #{typeof(value)} for gtype #{Vips.typename(gtype)} \"))\n end\n LibVips.vips_value_set_array_double(self, intarr, intarr.size)\n else\n if (gtype == VArrayImage) && (images = value.as?(Array(Image)))\n size = images.size\n LibVips.vips_value_set_array_image(self, size)\n ptr = LibVips.vips_value_get_array_image(self, out _)\n ptr.map_with_index!(size) do |_, i|\n images[i].object_ref.as(::Pointer(LibVips::VipsImage))\n end\n else\n if (gtype == VBlob) && (blob = value.as?(VipsBlob))\n LibVips.g_value_set_boxed(self, blob)\n else\n if gtype == VBlob\n mem = case value\n when String\n value.to_slice\n when Array(Char)\n (String.new(value)).to_slice\n when Bytes\n value\n else\n raise(VipsException.new(\"unsuported value type #{typeof(value)} for gtype #{Vips.typename(gtype)} \"))\n end\n ptr = LibVips.g_malloc(mem.size)\n ptr.copy_from(mem.to_unsafe.as(::Pointer(Void)), mem.size)\n if Vips.at_least_libvips?(8, 6)\n LibVips.vips_value_set_blob_free(self, ptr, mem.size)\n else\n free = LibVips::VipsCallbackFn.new do |a, b|\n LibVips.g_free(a)\n 0\n end\n LibVips.vips_value_set_blob(self, free, ptr, mem.size)\n end\n else\n raise(VipsException.new(\"unsupported gtype for set #{Vips.typename(gtype)}, fundamental #{Vips.typename(fundamental)}, value type #{typeof(value)}\"))\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\nend\n"}},{"html_id":"set_type(type):Nil-instance-method","name":"set_type","doc":"Set the type of a GValue\nGValues have a set type, fixed at creation time. Use this method to set\nthe type of GValue before assiging to it.\n\nGTypes are 32 or 64-bit integers (depending on platform).","summary":"

    Set the type of a GValue GValues have a set type, fixed at creation time.

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":""}],"args_string":"(type) : Nil","args_html":"(type) : Nil","location":{"filename":"src/vips/gvalue.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L28"},"def":{"name":"set_type","args":[{"name":"type","external_name":"type","restriction":""}],"return_type":"Nil","visibility":"Public","body":"LibVips.g_value_init(self, type)\n@initialized = true\n"}}]},{"html_id":"vips/Vips/Image","path":"Vips/Image.html","kind":"class","full_name":"Vips::Image","name":"Image","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/ext/image.cr","line_number":13,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L13"},{"filename":"src/vips/image.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/MutableImage","kind":"class","full_name":"Vips::MutableImage","name":"MutableImage"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"class_methods":[{"html_id":"analyzeload(filename:String,**kwargs)-class-method","name":"analyzeload","doc":"Load an analyze6 image\n\n```\n# out_, flags = Vips::Image.analyzeload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load an analyze6 image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":125,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L125"},"def":{"name":"analyzeload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"analyzeload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"arrayjoin(in_:Array(Image),**kwargs)-class-method","name":"arrayjoin","doc":"Join an array of images\n\n```\n# out_ = Vips::Image.arrayjoin(in_, {across: Int32, shim: Int32, background: Array(Float64), halign: Enums::Align, valign: Enums::Align, hspacing: Int32, vspacing: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*in* : Array(Image) - Array of input images\n\n_Optionals_\n\n*across* : Int32 - Number of images across grid\n\n*shim* : Int32 - Pixels between images\n\n*background* : Array(Float64) - Colour for new pixels\n\n*halign* : Enums::Align - Align on the left, centre or right\n\n*valign* : Enums::Align - Align on the top, centre or bottom\n\n*hspacing* : Int32 - Horizontal spacing between images\n\n*vspacing* : Int32 - Vertical spacing between images\n\n\n**Returns**\n\nOutput image\n","summary":"

    Join an array of images

    ","abstract":false,"args":[{"name":"in_","external_name":"in_","restriction":"Array(Image)"}],"args_string":"(in_ : Array(Image), **kwargs)","args_html":"(in_ : Array(Image), **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":172,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L172"},"def":{"name":"arrayjoin","args":[{"name":"in_","external_name":"in_","restriction":"Array(Image)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"arrayjoin\", options, in_)).as(Type)).as_image\n"}},{"html_id":"black(width:Int32,height:Int32,**kwargs)-class-method","name":"black","doc":"Make a black image\n\n```\n# out_ = Vips::Image.black(width, height, {bands: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*bands* : Int32 - Number of bands in image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a black image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":354,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L354"},"def":{"name":"black","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"black\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"csvload(filename:String,**kwargs)-class-method","name":"csvload","doc":"Load csv\n\n```\n# out_, flags = Vips::Image.csvload(filename, {skip: Int32, lines: Int32, whitespace: String, separator: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*skip* : Int32 - Skip this many lines at the start of the file\n\n*lines* : Int32 - Read this many lines from the file\n\n*whitespace* : String - Set of whitespace characters\n\n*separator* : String - Set of separator characters\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load csv

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1010,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1010"},"def":{"name":"csvload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"csvload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"csvload_source(source:Source,**kwargs)-class-method","name":"csvload_source","doc":"Load csv\n\n```\n# out_, flags = Vips::Image.csvload_source(source, {skip: Int32, lines: Int32, whitespace: String, separator: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*skip* : Int32 - Skip this many lines at the start of the file\n\n*lines* : Int32 - Read this many lines from the file\n\n*whitespace* : String - Set of whitespace characters\n\n*separator* : String - Set of separator characters\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load csv

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1061,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1061"},"def":{"name":"csvload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"csvload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"csvload_stream(stream:IO,**kwargs)-class-method","name":"csvload_stream","doc":"Load csv\n\n```\n# out_, flags = Vips::Image.csvload_stream(stream, {skip: Int32, lines: Int32, whitespace: String, separator: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*skip* : Int32 - Skip this many lines at the start of the file\n\n*lines* : Int32 - Read this many lines from the file\n\n*whitespace* : String - Set of whitespace characters\n\n*separator* : String - Set of separator characters\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load csv

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1107,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1107"},"def":{"name":"csvload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\ncsvload_source(source, **kwargs)\n"}},{"html_id":"eye(width:Int32,height:Int32,**kwargs)-class-method","name":"eye","doc":"Make an image showing the eye's spatial response\n\n```\n# out_ = Vips::Image.eye(width, height, {uchar: Bool, factor: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*factor* : Float64 - Maximum spatial frequency\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an image showing the eye's spatial response

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1635,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1635"},"def":{"name":"eye","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"eye\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"find_load(filename:String)-class-method","name":"find_load","doc":"Find the name of the load operation vips will use to load a file.\nFor example \"VipsForeignLoadJpegFile\". You can use this to work out what\noptions to pass to `new_from_file`","summary":"

    Find the name of the load operation vips will use to load a file.

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String)","args_html":"(filename : String)","location":{"filename":"src/vips/image.cr","line_number":58,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L58"},"def":{"name":"find_load","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"visibility":"Public","body":"ptr = LibVips.vips_foreign_find_load(filename)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"find_load_buffer(data:Bytes)-class-method","name":"find_load_buffer","doc":"Find the name of the load operation vips will use to load a buffer.\nFor example \"VipsForeignLoadJpegBuffer\". You can use this to work out what\noptions to pass to `new_from_buffer`","summary":"

    Find the name of the load operation vips will use to load a buffer.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/vips/image.cr","line_number":66,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L66"},"def":{"name":"find_load_buffer","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"ptr = LibVips.vips_foreign_find_load_buffer(Box.box(data), data.size)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"find_load_buffer(data:String)-class-method","name":"find_load_buffer","doc":"Find the name of the load operation vips will use to load a buffer.\nFor example \"VipsForeignLoadJpegBuffer\". You can use this to work out what\noptions to pass to `new_from_buffer`","summary":"

    Find the name of the load operation vips will use to load a buffer.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/vips/image.cr","line_number":74,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L74"},"def":{"name":"find_load_buffer","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"find_load_buffer(data.to_slice)"}},{"html_id":"find_load_source(source:Source)-class-method","name":"find_load_source","doc":" Find the name of the load operation vips will use to load a source.\nFor example \"VipsForeignLoadJpegSource\". You can use this to work out what\noptions to pass to `new_from_source`","summary":"

    Find the name of the load operation vips will use to load a source.

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source)","args_html":"(source : Source)","location":{"filename":"src/vips/image.cr","line_number":81,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L81"},"def":{"name":"find_load_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"visibility":"Public","body":"ptr = LibVips.vips_foreign_find_load_source(source)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"find_load_stream(stream:Stream)-class-method","name":"find_load_stream","doc":"Find the name of the load operation vips will use to load a stream.\nFor example \"VipsForeignLoadJpegSource\". You can use this to work out what\noptions to pass to `new_from_stream`","summary":"

    Find the name of the load operation vips will use to load a stream.

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"Stream"}],"args_string":"(stream : Stream)","args_html":"(stream : Stream)","location":{"filename":"src/vips/image.cr","line_number":89,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L89"},"def":{"name":"find_load_stream","args":[{"name":"stream","external_name":"stream","restriction":"Stream"}],"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nfind_load_source(source)\n"}},{"html_id":"fitsload(filename:String,**kwargs)-class-method","name":"fitsload","doc":"Load a fits image\n\n```\n# out_, flags = Vips::Image.fitsload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a fits image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1769,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1769"},"def":{"name":"fitsload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"fitsload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"fitsload_source(source:Source,**kwargs)-class-method","name":"fitsload_source","doc":"Load fits from a source\n\n```\n# out_, flags = Vips::Image.fitsload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load fits from a source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1812,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1812"},"def":{"name":"fitsload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"fitsload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"fitsload_stream(stream:IO,**kwargs)-class-method","name":"fitsload_stream","doc":"Load fits from a stream\n\n```\n# out_, flags = Vips::Image.fitsload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load fits from a stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1850,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1850"},"def":{"name":"fitsload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nfitsload_source(source, **kwargs)\n"}},{"html_id":"fractsurf(width:Int32,height:Int32,fractal_dimension:Float64)-class-method","name":"fractsurf","doc":"Make a fractal surface\n\n```\n# out_ = Vips::Image.fractsurf(width, height, fractal_dimension)\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*fractal_dimension* : Float64 - Fractal dimension\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a fractal surface

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, fractal_dimension : Float64)","args_html":"(width : Int32, height : Int32, fractal_dimension : Float64)","location":{"filename":"src/vips/ext/image.cr","line_number":1967,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1967"},"def":{"name":"fractsurf","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"visibility":"Public","body":"((Operation.call(\"fractsurf\", width, height, fractal_dimension)).as(Type)).as_image"}},{"html_id":"gaussmat(sigma:Float64,min_ampl:Float64,**kwargs)-class-method","name":"gaussmat","doc":"Make a gaussian image\n\n```\n# out_ = Vips::Image.gaussmat(sigma, min_ampl, {separable: Bool, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sigma* : Float64 - Sigma of Gaussian\n\n*min_ampl* : Float64 - Minimum amplitude of Gaussian\n\n_Optionals_\n\n*separable* : Bool - Generate separable Gaussian\n\n*precision* : Enums::Precision - Generate with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian image

    ","abstract":false,"args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"args_string":"(sigma : Float64, min_ampl : Float64, **kwargs)","args_html":"(sigma : Float64, min_ampl : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2088,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2088"},"def":{"name":"gaussmat","args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"gaussmat\", options, sigma, min_ampl)).as(Type)).as_image\n"}},{"html_id":"gaussnoise(width:Int32,height:Int32,**kwargs)-class-method","name":"gaussnoise","doc":"Make a gaussnoise image\n\n```\n# out_ = Vips::Image.gaussnoise(width, height, {sigma: Float64, mean: Float64, seed: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*sigma* : Float64 - Standard deviation of pixels in generated image\n\n*mean* : Float64 - Mean of pixels in generated image\n\n*seed* : Int32 - Random number seed\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussnoise image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2122,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2122"},"def":{"name":"gaussnoise","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"gaussnoise\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"gifload(filename:String,**kwargs)-class-method","name":"gifload","doc":"Load gif with libnsgif\n\n```\n# out_, flags = Vips::Image.gifload(filename, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load gif with libnsgif

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2186,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2186"},"def":{"name":"gifload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"gifload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"gifload_buffer(buffer:Bytes,**kwargs)-class-method","name":"gifload_buffer","doc":"Load gif with libnsgif\n\n```\n# out_, flags = Vips::Image.gifload_buffer(buffer, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load gif with libnsgif

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2233,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2233"},"def":{"name":"gifload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"gifload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"gifload_source(source:Source,**kwargs)-class-method","name":"gifload_source","doc":"Load gif from source\n\n```\n# out_, flags = Vips::Image.gifload_source(source, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load gif from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2280,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2280"},"def":{"name":"gifload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"gifload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"gifload_stream(stream:IO,**kwargs)-class-method","name":"gifload_stream","doc":"Load gif from stream\n\n```\n# out_, flags = Vips::Image.gifload_stream(stream, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load gif from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2322,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2322"},"def":{"name":"gifload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\ngifload_source(source, **kwargs)\n"}},{"html_id":"grey(width:Int32,height:Int32,**kwargs)-class-method","name":"grey","doc":"Make a grey ramp image\n\n```\n# out_ = Vips::Image.grey(width, height, {uchar: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a grey ramp image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2573,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2573"},"def":{"name":"grey","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"grey\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"heifload(filename:String,**kwargs)-class-method","name":"heifload","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload(filename, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2643,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2643"},"def":{"name":"heifload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"heifload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"heifload_buffer(buffer:Bytes,**kwargs)-class-method","name":"heifload_buffer","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload_buffer(buffer, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2694,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2694"},"def":{"name":"heifload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"heifload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"heifload_source(source:Source,**kwargs)-class-method","name":"heifload_source","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload_source(source, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2745,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2745"},"def":{"name":"heifload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"heifload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"heifload_stream(stream:IO,**kwargs)-class-method","name":"heifload_stream","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload_stream(stream, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2791,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2791"},"def":{"name":"heifload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nheifload_source(source, **kwargs)\n"}},{"html_id":"identity(**kwargs)-class-method","name":"identity","doc":"Make a 1d image where pixel values are indexes\n\n```\n# out_ = Vips::Image.identity({bands: Int32, ushort: Bool, size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*bands* : Int32 - Number of bands in LUT\n\n*ushort* : Bool - Create a 16-bit LUT\n\n*size* : Int32 - Size of 16-bit LUT\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a 1d image where pixel values are indexes

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3216,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3216"},"def":{"name":"identity","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"identity\", options)).as(Type)).as_image\n"}},{"html_id":"jp2kload(filename:String,**kwargs)-class-method","name":"jp2kload","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload(filename, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3387,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3387"},"def":{"name":"jp2kload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jp2kload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jp2kload_buffer(buffer:Bytes,**kwargs)-class-method","name":"jp2kload_buffer","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload_buffer(buffer, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3432,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3432"},"def":{"name":"jp2kload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jp2kload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jp2kload_source(source:Source,**kwargs)-class-method","name":"jp2kload_source","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload_source(source, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3477,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3477"},"def":{"name":"jp2kload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jp2kload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jp2kload_stream(stream:IO,**kwargs)-class-method","name":"jp2kload_stream","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload_stream(stream, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3517,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3517"},"def":{"name":"jp2kload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\njp2kload_source(source, **kwargs)\n"}},{"html_id":"jpegload(filename:String,**kwargs)-class-method","name":"jpegload","doc":"Load jpeg from file\n\n```\n# out_, flags = Vips::Image.jpegload(filename, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3704,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3704"},"def":{"name":"jpegload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jpegload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jpegload_buffer(buffer:Bytes,**kwargs)-class-method","name":"jpegload_buffer","doc":"Load jpeg from buffer\n\n```\n# out_, flags = Vips::Image.jpegload_buffer(buffer, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3753,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3753"},"def":{"name":"jpegload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jpegload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jpegload_source(source:Source,**kwargs)-class-method","name":"jpegload_source","doc":"Load image from jpeg source\n\n```\n# out_, flags = Vips::Image.jpegload_source(source, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load image from jpeg source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3802,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3802"},"def":{"name":"jpegload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jpegload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jpegload_stream(stream:IO,**kwargs)-class-method","name":"jpegload_stream","doc":"Load image from jpeg stream\n\n```\n# out_, flags = Vips::Image.jpegload_stream(stream, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load image from jpeg stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3846,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3846"},"def":{"name":"jpegload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\njpegload_source(source, **kwargs)\n"}},{"html_id":"jxlload(filename:String,**kwargs)-class-method","name":"jxlload","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4110,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4110"},"def":{"name":"jxlload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jxlload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jxlload_buffer(buffer:Bytes,**kwargs)-class-method","name":"jxlload_buffer","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload_buffer(buffer, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4153,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4153"},"def":{"name":"jxlload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jxlload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jxlload_source(source:Source,**kwargs)-class-method","name":"jxlload_source","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4196,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4196"},"def":{"name":"jxlload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jxlload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jxlload_stream(stream:IO,**kwargs)-class-method","name":"jxlload_stream","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4234,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4234"},"def":{"name":"jxlload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\njxlload_source(source, **kwargs)\n"}},{"html_id":"logmat(sigma:Float64,min_ampl:Float64,**kwargs)-class-method","name":"logmat","doc":"Make a laplacian of gaussian image\n\n```\n# out_ = Vips::Image.logmat(sigma, min_ampl, {separable: Bool, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sigma* : Float64 - Radius of Gaussian\n\n*min_ampl* : Float64 - Minimum amplitude of Gaussian\n\n_Optionals_\n\n*separable* : Bool - Generate separable Gaussian\n\n*precision* : Enums::Precision - Generate with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a laplacian of gaussian image

    ","abstract":false,"args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"args_string":"(sigma : Float64, min_ampl : Float64, **kwargs)","args_html":"(sigma : Float64, min_ampl : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4672,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4672"},"def":{"name":"logmat","args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"logmat\", options, sigma, min_ampl)).as(Type)).as_image\n"}},{"html_id":"magickload(filename:String,**kwargs)-class-method","name":"magickload","doc":"Load file with imagemagick7\n\n```\n# out_, flags = Vips::Image.magickload(filename, {density: String, page: Int32, n: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*density* : String - Canvas resolution for rendering vector formats like SVG\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load file with imagemagick7

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4714,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4714"},"def":{"name":"magickload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"magickload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"magickload_buffer(buffer:Bytes,**kwargs)-class-method","name":"magickload_buffer","doc":"Load buffer with imagemagick7\n\n```\n# out_, flags = Vips::Image.magickload_buffer(buffer, {density: String, page: Int32, n: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*density* : String - Canvas resolution for rendering vector formats like SVG\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load buffer with imagemagick7

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4763,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4763"},"def":{"name":"magickload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"magickload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"mask_butterworth(width:Int32,height:Int32,order:Float64,frequency_cutoff:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_butterworth","doc":"Make a butterworth filter\n\n```\n# out_ = Vips::Image.mask_butterworth(width, height, order, frequency_cutoff, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*order* : Float64 - Filter order\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a butterworth filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5024,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5024"},"def":{"name":"mask_butterworth","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_butterworth\", options, width, height, order, frequency_cutoff, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_butterworth_band(width:Int32,height:Int32,order:Float64,frequency_cutoff_x:Float64,frequency_cutoff_y:Float64,radius:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_butterworth_band","doc":"Make a butterworth_band filter\n\n```\n# out_ = Vips::Image.mask_butterworth_band(width, height, order, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*order* : Float64 - Filter order\n\n*frequency_cutoff_x* : Float64 - Frequency cutoff x\n\n*frequency_cutoff_y* : Float64 - Frequency cutoff y\n\n*radius* : Float64 - Radius of circle\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a butterworth_band filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, order : Float64, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, order : Float64, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5070,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5070"},"def":{"name":"mask_butterworth_band","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_butterworth_band\", options, width, height, order, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_butterworth_ring(width:Int32,height:Int32,order:Float64,frequency_cutoff:Float64,amplitude_cutoff:Float64,ringwidth:Float64,**kwargs)-class-method","name":"mask_butterworth_ring","doc":"Make a butterworth ring filter\n\n```\n# out_ = Vips::Image.mask_butterworth_ring(width, height, order, frequency_cutoff, amplitude_cutoff, ringwidth, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*order* : Float64 - Filter order\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n*ringwidth* : Float64 - Ringwidth\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a butterworth ring filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5114,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5114"},"def":{"name":"mask_butterworth_ring","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_butterworth_ring\", options, width, height, order, frequency_cutoff, amplitude_cutoff, ringwidth)).as(Type)).as_image\n"}},{"html_id":"mask_fractal(width:Int32,height:Int32,fractal_dimension:Float64,**kwargs)-class-method","name":"mask_fractal","doc":"Make fractal filter\n\n```\n# out_ = Vips::Image.mask_fractal(width, height, fractal_dimension, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*fractal_dimension* : Float64 - Fractal dimension\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make fractal filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, fractal_dimension : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, fractal_dimension : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5152,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5152"},"def":{"name":"mask_fractal","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_fractal\", options, width, height, fractal_dimension)).as(Type)).as_image\n"}},{"html_id":"mask_gaussian(width:Int32,height:Int32,frequency_cutoff:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_gaussian","doc":"Make a gaussian filter\n\n```\n# out_ = Vips::Image.mask_gaussian(width, height, frequency_cutoff, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5192,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5192"},"def":{"name":"mask_gaussian","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_gaussian\", options, width, height, frequency_cutoff, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_gaussian_band(width:Int32,height:Int32,frequency_cutoff_x:Float64,frequency_cutoff_y:Float64,radius:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_gaussian_band","doc":"Make a gaussian filter\n\n```\n# out_ = Vips::Image.mask_gaussian_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff_x* : Float64 - Frequency cutoff x\n\n*frequency_cutoff_y* : Float64 - Frequency cutoff y\n\n*radius* : Float64 - Radius of circle\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5236,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5236"},"def":{"name":"mask_gaussian_band","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_gaussian_band\", options, width, height, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_gaussian_ring(width:Int32,height:Int32,frequency_cutoff:Float64,amplitude_cutoff:Float64,ringwidth:Float64,**kwargs)-class-method","name":"mask_gaussian_ring","doc":"Make a gaussian ring filter\n\n```\n# out_ = Vips::Image.mask_gaussian_ring(width, height, frequency_cutoff, amplitude_cutoff, ringwidth, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n*ringwidth* : Float64 - Ringwidth\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian ring filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5278,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5278"},"def":{"name":"mask_gaussian_ring","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_gaussian_ring\", options, width, height, frequency_cutoff, amplitude_cutoff, ringwidth)).as(Type)).as_image\n"}},{"html_id":"mask_ideal(width:Int32,height:Int32,frequency_cutoff:Float64,**kwargs)-class-method","name":"mask_ideal","doc":"Make an ideal filter\n\n```\n# out_ = Vips::Image.mask_ideal(width, height, frequency_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an ideal filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5316,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5316"},"def":{"name":"mask_ideal","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_ideal\", options, width, height, frequency_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_ideal_band(width:Int32,height:Int32,frequency_cutoff_x:Float64,frequency_cutoff_y:Float64,radius:Float64,**kwargs)-class-method","name":"mask_ideal_band","doc":"Make an ideal band filter\n\n```\n# out_ = Vips::Image.mask_ideal_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff_x* : Float64 - Frequency cutoff x\n\n*frequency_cutoff_y* : Float64 - Frequency cutoff y\n\n*radius* : Float64 - Radius of circle\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an ideal band filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5358,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5358"},"def":{"name":"mask_ideal_band","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_ideal_band\", options, width, height, frequency_cutoff_x, frequency_cutoff_y, radius)).as(Type)).as_image\n"}},{"html_id":"mask_ideal_ring(width:Int32,height:Int32,frequency_cutoff:Float64,ringwidth:Float64,**kwargs)-class-method","name":"mask_ideal_ring","doc":"Make an ideal ring filter\n\n```\n# out_ = Vips::Image.mask_ideal_ring(width, height, frequency_cutoff, ringwidth, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*ringwidth* : Float64 - Ringwidth\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an ideal ring filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, ringwidth : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, ringwidth : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5398,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5398"},"def":{"name":"mask_ideal_ring","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_ideal_ring\", options, width, height, frequency_cutoff, ringwidth)).as(Type)).as_image\n"}},{"html_id":"matload(filename:String,**kwargs)-class-method","name":"matload","doc":"Load mat from file\n\n```\n# out_, flags = Vips::Image.matload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load mat from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5554,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5554"},"def":{"name":"matload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"matload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"matrixload(filename:String,**kwargs)-class-method","name":"matrixload","doc":"Load matrix\n\n```\n# out_, flags = Vips::Image.matrixload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load matrix

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5612,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5612"},"def":{"name":"matrixload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"matrixload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"matrixload_source(source:Source,**kwargs)-class-method","name":"matrixload_source","doc":"Load matrix\n\n```\n# out_, flags = Vips::Image.matrixload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load matrix

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5655,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5655"},"def":{"name":"matrixload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"matrixload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"matrixload_stream(stream:IO,**kwargs)-class-method","name":"matrixload_stream","doc":"Load matrix\n\n```\n# out_, flags = Vips::Image.matrixload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load matrix

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5693,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5693"},"def":{"name":"matrixload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nmatrixload_source(source, **kwargs)\n"}},{"html_id":"openexrload(filename:String,**kwargs)-class-method","name":"openexrload","doc":"Load an openexr image\n\n```\n# out_, flags = Vips::Image.openexrload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load an openexr image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6200,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6200"},"def":{"name":"openexrload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"openexrload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"openslideload(filename:String,**kwargs)-class-method","name":"openslideload","doc":"Load file with openslide\n\n```\n# out_, flags = Vips::Image.openslideload(filename, {level: Int32, autocrop: Bool, associated: String, attach_associated: Bool, rgb: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*level* : Int32 - Load this level from the file\n\n*autocrop* : Bool - Crop to image bounds\n\n*associated* : String - Load this associated image\n\n*attach_associated* : Bool - Attach all associated images\n\n*rgb* : Bool - Output RGB (not RGBA)\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load file with openslide

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6253,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6253"},"def":{"name":"openslideload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"openslideload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"openslideload_source(source:Source,**kwargs)-class-method","name":"openslideload_source","doc":"Load source with openslide\n\n```\n# out_, flags = Vips::Image.openslideload_source(source, {level: Int32, autocrop: Bool, associated: String, attach_associated: Bool, rgb: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*level* : Int32 - Load this level from the file\n\n*autocrop* : Bool - Crop to image bounds\n\n*associated* : String - Load this associated image\n\n*attach_associated* : Bool - Attach all associated images\n\n*rgb* : Bool - Output RGB (not RGBA)\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load source with openslide

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6306,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6306"},"def":{"name":"openslideload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"openslideload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"openslideload_stream(stream:IO,**kwargs)-class-method","name":"openslideload_stream","doc":"Load stream with openslide\n\n```\n# out_, flags = Vips::Image.openslideload_stream(stream, {level: Int32, autocrop: Bool, associated: String, attach_associated: Bool, rgb: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*level* : Int32 - Load this level from the file\n\n*autocrop* : Bool - Crop to image bounds\n\n*associated* : String - Load this associated image\n\n*attach_associated* : Bool - Attach all associated images\n\n*rgb* : Bool - Output RGB (not RGBA)\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load stream with openslide

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6354,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6354"},"def":{"name":"openslideload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nopenslideload_source(source, **kwargs)\n"}},{"html_id":"pdfload(filename:String,**kwargs)-class-method","name":"pdfload","doc":"Load pdf from file\n\n```\n# out_, flags = Vips::Image.pdfload(filename, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load pdf from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6464,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6464"},"def":{"name":"pdfload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pdfload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pdfload_buffer(buffer:Bytes,**kwargs)-class-method","name":"pdfload_buffer","doc":"Load pdf from buffer\n\n```\n# out_, flags = Vips::Image.pdfload_buffer(buffer, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load pdf from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6519,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6519"},"def":{"name":"pdfload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pdfload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pdfload_source(source:Source,**kwargs)-class-method","name":"pdfload_source","doc":"Load pdf from source\n\n```\n# out_, flags = Vips::Image.pdfload_source(source, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load pdf from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6574,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6574"},"def":{"name":"pdfload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pdfload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pdfload_stream(stream:IO,**kwargs)-class-method","name":"pdfload_stream","doc":"Load pdf from stream\n\n```\n# out_, flags = Vips::Image.pdfload_stream(stream, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load pdf from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6624,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6624"},"def":{"name":"pdfload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\npdfload_source(source, **kwargs)\n"}},{"html_id":"perlin(width:Int32,height:Int32,**kwargs)-class-method","name":"perlin","doc":"Make a perlin noise image\n\n```\n# out_ = Vips::Image.perlin(width, height, {cell_size: Int32, uchar: Bool, seed: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*cell_size* : Int32 - Size of Perlin cells\n\n*uchar* : Bool - Output an unsigned char image\n\n*seed* : Int32 - Random number seed\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a perlin noise image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6679,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6679"},"def":{"name":"perlin","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"perlin\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"pngload(filename:String,**kwargs)-class-method","name":"pngload","doc":"Load png from file\n\n```\n# out_, flags = Vips::Image.pngload(filename, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load png from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6865,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6865"},"def":{"name":"pngload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pngload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pngload_buffer(buffer:Bytes,**kwargs)-class-method","name":"pngload_buffer","doc":"Load png from buffer\n\n```\n# out_, flags = Vips::Image.pngload_buffer(buffer, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load png from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6910,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6910"},"def":{"name":"pngload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pngload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pngload_source(source:Source,**kwargs)-class-method","name":"pngload_source","doc":"Load png from source\n\n```\n# out_, flags = Vips::Image.pngload_source(source, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load png from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6955,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6955"},"def":{"name":"pngload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pngload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pngload_stream(stream:IO,**kwargs)-class-method","name":"pngload_stream","doc":"Load png from stream\n\n```\n# out_, flags = Vips::Image.pngload_stream(stream, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load png from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6995,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6995"},"def":{"name":"pngload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\npngload_source(source, **kwargs)\n"}},{"html_id":"ppmload(filename:String,**kwargs)-class-method","name":"ppmload","doc":"Load ppm from file\n\n```\n# out_, flags = Vips::Image.ppmload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load ppm from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7271,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7271"},"def":{"name":"ppmload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"ppmload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"ppmload_source(source:Source,**kwargs)-class-method","name":"ppmload_source","doc":"Load ppm base class\n\n```\n# out_, flags = Vips::Image.ppmload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load ppm base class

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7314,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7314"},"def":{"name":"ppmload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"ppmload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"ppmload_stream(stream:IO,**kwargs)-class-method","name":"ppmload_stream","doc":"Load ppm base class\n\n```\n# out_, flags = Vips::Image.ppmload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load ppm base class

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7352,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7352"},"def":{"name":"ppmload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nppmload_source(source, **kwargs)\n"}},{"html_id":"profile_load(name:String)-class-method","name":"profile_load","doc":"Load named icc profile\n\n```\n# profile = Vips::Image.profile_load(name)\n```\n\n\nInput Parameters\n\n**Required**\n\n*name* : String - Profile name\n\n\n**Returns**\n\nLoaded profile\n","summary":"

    Load named icc profile

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/ext/image.cr","line_number":7514,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7514"},"def":{"name":"profile_load","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"((Operation.call(\"profile_load\", name)).as(Type)).as_bytes"}},{"html_id":"radload(filename:String,**kwargs)-class-method","name":"radload","doc":"Load a radiance image from a file\n\n```\n# out_, flags = Vips::Image.radload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a radiance image from a file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7610,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7610"},"def":{"name":"radload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"radload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"radload_buffer(buffer:Bytes,**kwargs)-class-method","name":"radload_buffer","doc":"Load rad from buffer\n\n```\n# out_, flags = Vips::Image.radload_buffer(buffer, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load rad from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7653,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7653"},"def":{"name":"radload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"radload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"radload_source(source:Source,**kwargs)-class-method","name":"radload_source","doc":"Load rad from source\n\n```\n# out_, flags = Vips::Image.radload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load rad from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7696,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7696"},"def":{"name":"radload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"radload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"radload_stream(stream:IO,**kwargs)-class-method","name":"radload_stream","doc":"Load rad from stream\n\n```\n# out_, flags = Vips::Image.radload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load rad from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7734,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7734"},"def":{"name":"radload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nradload_source(source, **kwargs)\n"}},{"html_id":"rawload(filename:String,width:Int32,height:Int32,bands:Int32,**kwargs)-class-method","name":"rawload","doc":"Load raw data from a file\n\n```\n# out_, flags = Vips::Image.rawload(filename, width, height, bands, {offset: UInt32, format: Enums::BandFormat, interpretation: Enums::Interpretation, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*bands* : Int32 - Number of bands in image\n\n_Optionals_\n\n*offset* : UInt32 - Offset in bytes from start of file\n\n*format* : Enums::BandFormat - Pixel format in image\n\n*interpretation* : Enums::Interpretation - Pixel interpretation\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load raw data from a file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"}],"args_string":"(filename : String, width : Int32, height : Int32, bands : Int32, **kwargs)","args_html":"(filename : String, width : Int32, height : Int32, bands : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7913,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7913"},"def":{"name":"rawload","args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"rawload\", options, filename, width, height, bands)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"run_cmplx(image:Image,&block:Image->Image)-class-method","name":"run_cmplx","doc":"run a complex operation on a complex image, or an image with an even\nnumber of bands ... handy for things like running .polar on .index\nimages","summary":"

    run a complex operation on a complex image, or an image with an even number of bands ...

    ","abstract":false,"args":[{"name":"image","external_name":"image","restriction":"Image"}],"args_string":"(image : Image, &block : Image -> Image)","args_html":"(image : Image, &block : Image -> Image)","location":{"filename":"src/vips/image.cr","line_number":15,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L15"},"def":{"name":"run_cmplx","args":[{"name":"image","external_name":"image","restriction":"Image"}],"yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Image -> Image)"},"visibility":"Public","body":"original_format = image.format\nif ((image.format != Enums::BandFormat::Complex) && (image.format != Enums::BandFormat::Dpcomplex))\n if (image.bands % 2) != 0\n raise(VipsException.new(\"not an even number of bands\"))\n end\n if ( (image.format != Enums::BandFormat::Float) && (image.format != Enums::BandFormat::Double))\n image = image.cast(Enums::BandFormat::Float)\n end\n new_format = image.format == Enums::BandFormat::Double ? Enums::BandFormat::Dpcomplex : Enums::BandFormat::Complex\n image = image.copy(format: new_format, bands: image.bands / 2)\nend\nimage = block.call(image)\nif ((original_format != Enums::BandFormat::Complex) && (original_format != Enums::BandFormat::Dpcomplex))\n new_format = image.format == Enums::BandFormat::Dpcomplex ? Enums::BandFormat::Double : Enums::BandFormat::Float\n image = image.copy(format: new_format, bands: image.bands * 2)\nend\nimage\n"}},{"html_id":"sines(width:Int32,height:Int32,**kwargs)-class-method","name":"sines","doc":"Make a 2d sine wave\n\n```\n# out_ = Vips::Image.sines(width, height, {uchar: Bool, hfreq: Float64, vfreq: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*hfreq* : Float64 - Horizontal spatial frequency\n\n*vfreq* : Float64 - Vertical spatial frequency\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a 2d sine wave

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8636,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8636"},"def":{"name":"sines","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"sines\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"sum(*in_:Image)-class-method","name":"sum","doc":"Sum an array of images\n\n```\n# out_ = Vips::Image.sum(in_)\n```\n\n\nInput Parameters\n\n**Required**\n\n*in* : Array(Image) - Array of input images\n\n\n**Returns**\n\nOutput image\n","summary":"

    Sum an array of images

    ","abstract":false,"args":[{"name":"in_","external_name":"in_","restriction":"Image"}],"args_string":"(*in_ : Image)","args_html":"(*in_ : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8890,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8890"},"def":{"name":"sum","args":[{"name":"in_","external_name":"in_","restriction":"Image"}],"splat_index":0,"visibility":"Public","body":"((Operation.call(\"sum\", in_)).as(Type)).as_image"}},{"html_id":"svgload(filename:String,**kwargs)-class-method","name":"svgload","doc":"Load svg with rsvg\n\n```\n# out_, flags = Vips::Image.svgload(filename, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load svg with rsvg

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8930,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8930"},"def":{"name":"svgload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"svgload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"svgload_buffer(buffer:Bytes,**kwargs)-class-method","name":"svgload_buffer","doc":"Load svg with rsvg\n\n```\n# out_, flags = Vips::Image.svgload_buffer(buffer, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load svg with rsvg

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8979,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8979"},"def":{"name":"svgload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"svgload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"svgload_source(source:Source,**kwargs)-class-method","name":"svgload_source","doc":"Load svg from source\n\n```\n# out_, flags = Vips::Image.svgload_source(source, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load svg from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9028,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9028"},"def":{"name":"svgload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"svgload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"svgload_stream(stream:IO,**kwargs)-class-method","name":"svgload_stream","doc":"Load svg from stream\n\n```\n# out_, flags = Vips::Image.svgload_stream(stream, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load svg from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9072,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9072"},"def":{"name":"svgload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nsvgload_source(source, **kwargs)\n"}},{"html_id":"switch(*tests:Image)-class-method","name":"switch","doc":"Find the index of the first non-zero pixel in tests\n\n```\n# out_ = Vips::Image.switch(tests)\n```\n\n\nInput Parameters\n\n**Required**\n\n*tests* : Array(Image) - Table of images to test\n\n\n**Returns**\n\nOutput image\n","summary":"

    Find the index of the first non-zero pixel in tests

    ","abstract":false,"args":[{"name":"tests","external_name":"tests","restriction":"Image"}],"args_string":"(*tests : Image)","args_html":"(*tests : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":9095,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9095"},"def":{"name":"switch","args":[{"name":"tests","external_name":"tests","restriction":"Image"}],"splat_index":0,"visibility":"Public","body":"((Operation.call(\"switch\", tests)).as(Type)).as_image"}},{"html_id":"system(cmd_format:String,**kwargs)-class-method","name":"system","doc":"Run an external command\n\n```\n, out_, log = Vips::Image.system(cmd_format, {in_: Array(Image), out_format: String, in_format: String})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*cmd_format* : String - Command to run\n\n_Optionals_\n\n*in* : Array(Image) - Array of input images\n\n*out_format* : String - Format for output filename\n\n*in_format* : String - Format for input filename\n\n\n**Returns**\n\n_Optionals_\n\n*out* : Image? - Output image\n\n*log* : String? - Command log\n","summary":"

    Run an external command

    ","abstract":false,"args":[{"name":"cmd_format","external_name":"cmd_format","restriction":"String"}],"args_string":"(cmd_format : String, **kwargs)","args_html":"(cmd_format : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9130,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9130"},"def":{"name":"system","args":[{"name":"cmd_format","external_name":"cmd_format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"out\"] = true\noptions[\"log\"] = true\n((optsOperation.call(\"system\", options, cmd_format)).as(Type)).as_h\n"}},{"html_id":"thumbnail(filename:String,width:Int32,**kwargs)-class-method","name":"thumbnail","doc":"Generate thumbnail from file\n\n```\n# out_ = Vips::Image.thumbnail(filename, width, {height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to read from\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(filename : String, width : Int32, **kwargs)","args_html":"(filename : String, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9178,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9178"},"def":{"name":"thumbnail","args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"thumbnail\", options, filename, width)).as(Type)).as_image\n"}},{"html_id":"thumbnail_buffer(buffer:Bytes,width:Int32,**kwargs)-class-method","name":"thumbnail_buffer","doc":"Generate thumbnail from buffer\n\n```\n# out_ = Vips::Image.thumbnail_buffer(buffer, width, {option_string: String, height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*option_string* : String - Options that are passed on to the underlying loader\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(buffer : Bytes, width : Int32, **kwargs)","args_html":"(buffer : Bytes, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9226,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9226"},"def":{"name":"thumbnail_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"thumbnail_buffer\", options, buffer, width)).as(Type)).as_image\n"}},{"html_id":"thumbnail_source(source:Source,width:Int32,**kwargs)-class-method","name":"thumbnail_source","doc":"Generate thumbnail from source\n\n```\n# out_ = Vips::Image.thumbnail_source(source, width, {option_string: String, height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*option_string* : String - Options that are passed on to the underlying loader\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(source : Source, width : Int32, **kwargs)","args_html":"(source : Source, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9318,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9318"},"def":{"name":"thumbnail_source","args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"thumbnail_source\", options, source, width)).as(Type)).as_image\n"}},{"html_id":"thumbnail_stream(stream:IO,width:Int32,**kwargs)-class-method","name":"thumbnail_stream","doc":"Generate thumbnail from stream\n\n```\n# out_ = Vips::Image.thumbnail_stream(stream, width, {option_string: String, height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n\n*width : Int32* - Size to this width\n_Optionals_\n\n*option_string* : String - Options that are passed on to the underlying loader\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_","summary":"

    Generate thumbnail from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(stream : IO, width : Int32, **kwargs)","args_html":"(stream : IO, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9363,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9363"},"def":{"name":"thumbnail_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nthumbnail_source(source, width, **kwargs)\n"}},{"html_id":"tiffload(filename:String,**kwargs)-class-method","name":"tiffload","doc":"Load tiff from file\n\n```\n# out_, flags = Vips::Image.tiffload(filename, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load tiff from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9406,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9406"},"def":{"name":"tiffload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"tiffload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"tiffload_buffer(buffer:Bytes,**kwargs)-class-method","name":"tiffload_buffer","doc":"Load tiff from buffer\n\n```\n# out_, flags = Vips::Image.tiffload_buffer(buffer, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load tiff from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9457,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9457"},"def":{"name":"tiffload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"tiffload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"tiffload_source(source:Source,**kwargs)-class-method","name":"tiffload_source","doc":"Load tiff from source\n\n```\n# out_, flags = Vips::Image.tiffload_source(source, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load tiff from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9508,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9508"},"def":{"name":"tiffload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"tiffload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"tiffload_stream(stream:IO,**kwargs)-class-method","name":"tiffload_stream","doc":"Load tiff from stream\n\n```\n# out_, flags = Vips::Image.tiffload_stream(stream, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load tiff from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9554,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9554"},"def":{"name":"tiffload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\ntiffload_source(source, **kwargs)\n"}},{"html_id":"tonelut(**kwargs)-class-method","name":"tonelut","doc":"Build a look-up table\n\n```\n# out_ = Vips::Image.tonelut({in_max: Int32, out_max: Int32, lb: Float64, lw: Float64, ps: Float64, pm: Float64, ph: Float64, s: Float64, m: Float64, h: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*in_max* : Int32 - Size of LUT to build\n\n*out_max* : Int32 - Maximum value in output LUT\n\n*lb* : Float64 - Lowest value in output\n\n*lw* : Float64 - Highest value in output\n\n*ps* : Float64 - Position of shadow\n\n*pm* : Float64 - Position of mid-tones\n\n*ph* : Float64 - Position of highlights\n\n*s* : Float64 - Adjust shadows by this much\n\n*m* : Float64 - Adjust mid-tones by this much\n\n*h* : Float64 - Adjust highlights by this much\n\n\n**Returns**\n\nOutput image\n","summary":"

    Build a look-up table

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9903,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9903"},"def":{"name":"tonelut","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"tonelut\", options)).as(Type)).as_image\n"}},{"html_id":"vipsload(filename:String,**kwargs)-class-method","name":"vipsload","doc":"Load vips from file\n\n```\n# out_, flags = Vips::Image.vipsload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load vips from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9989,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9989"},"def":{"name":"vipsload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"vipsload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"vipsload_source(source:Source,**kwargs)-class-method","name":"vipsload_source","doc":"Load vips from source\n\n```\n# out_, flags = Vips::Image.vipsload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load vips from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10032,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10032"},"def":{"name":"vipsload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"vipsload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"vipsload_stream(stream:IO,**kwargs)-class-method","name":"vipsload_stream","doc":"Load vips from stream\n\n```\n# out_, flags = Vips::Image.vipsload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load vips from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10070,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10070"},"def":{"name":"vipsload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nvipsload_source(source, **kwargs)\n"}},{"html_id":"webpload(filename:String,**kwargs)-class-method","name":"webpload","doc":"Load webp from file\n\n```\n# out_, flags = Vips::Image.webpload(filename, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load webp from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10189,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10189"},"def":{"name":"webpload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"webpload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"webpload_buffer(buffer:Bytes,**kwargs)-class-method","name":"webpload_buffer","doc":"Load webp from buffer\n\n```\n# out_, flags = Vips::Image.webpload_buffer(buffer, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load webp from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10238,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10238"},"def":{"name":"webpload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"webpload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"webpload_source(source:Source,**kwargs)-class-method","name":"webpload_source","doc":"Load webp from source\n\n```\n# out_, flags = Vips::Image.webpload_source(source, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load webp from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10287,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10287"},"def":{"name":"webpload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"webpload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"webpload_stream(stream:IO,**kwargs)-class-method","name":"webpload_stream","doc":"Load webp from stream\n\n```\n# out_, flags = Vips::Image.webpload_stream(stream, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load webp from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10331,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10331"},"def":{"name":"webpload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nwebpload_source(source, **kwargs)\n"}},{"html_id":"worley(width:Int32,height:Int32,**kwargs)-class-method","name":"worley","doc":"Make a worley noise image\n\n```\n# out_ = Vips::Image.worley(width, height, {cell_size: Int32, seed: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*cell_size* : Int32 - Size of Worley cells\n\n*seed* : Int32 - Random number seed\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a worley noise image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10611,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10611"},"def":{"name":"worley","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"worley\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"xyz(width:Int32,height:Int32,**kwargs)-class-method","name":"xyz","doc":"Make an image where pixel values are coordinates\n\n```\n# out_ = Vips::Image.xyz(width, height, {csize: Int32, dsize: Int32, esize: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*csize* : Int32 - Size of third dimension\n\n*dsize* : Int32 - Size of fourth dimension\n\n*esize* : Int32 - Size of fifth dimension\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an image where pixel values are coordinates

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10671,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10671"},"def":{"name":"xyz","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"xyz\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"zone(width:Int32,height:Int32,**kwargs)-class-method","name":"zone","doc":"Make a zone plate\n\n```\n# out_ = Vips::Image.zone(width, height, {uchar: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a zone plate

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10785,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10785"},"def":{"name":"zone","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"zone\", options, width, height)).as(Type)).as_image\n"}}],"constructors":[{"html_id":"imageize(match_image:Image,value):Image-class-method","name":"imageize","doc":"expand a constant into an image","summary":"

    expand a constant into an image

    ","abstract":false,"args":[{"name":"match_image","external_name":"match_image","restriction":"Image"},{"name":"value","external_name":"value","restriction":""}],"args_string":"(match_image : Image, value) : Image","args_html":"(match_image : Image, value) : Image","location":{"filename":"src/vips/image.cr","line_number":41,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L41"},"def":{"name":"imageize","args":[{"name":"match_image","external_name":"match_image","restriction":"Image"},{"name":"value","external_name":"value","restriction":""}],"return_type":"Image","visibility":"Public","body":"case value\nwhen Image\n value\nwhen Array(Array(Float64))\n new_from_array(value)\nwhen Array(Array(Int32))\n new_from_array(value)\nwhen Array(Float64)\n match_image.new_from_image(value)\nwhen Array(Int32)\n match_image.new_from_image(value)\nwhen Float64\n match_image.new_from_image(value)\nwhen Int32\n match_image.new_from_image(value)\nelse\n raise(VipsException.new(\"unsupported value type #{typeof(value)} for imageize\"))\nend"}},{"html_id":"new_from_array(array:Array,scale=1.0,offset=0.0):Image-class-method","name":"new_from_array","doc":"Create a new Image from a 1D or 2D array. A 1D array becomes an\nimage with height 1. Use `scale` and `offset` to set the scale and\noffset fields in the header. These are useful for integer\nconvolutions.\n\nFor example:\n\n```\nimage = Vips::Image.new_from_array [1, 2, 3]\n```\n\nor\n\n```\nimage = Vips::Image.new_from_array [\n [-1, -1, -1],\n [-1, 16, -1],\n [-1, -1, -1],\n], 8\n```\n\nfor a simple sharpening mask.","summary":"

    Create a new Image from a 1D or 2D array.

    ","abstract":false,"args":[{"name":"array","external_name":"array","restriction":"Array"},{"name":"scale","default_value":"1.0","external_name":"scale","restriction":""},{"name":"offset","default_value":"0.0","external_name":"offset","restriction":""}],"args_string":"(array : Array, scale = 1.0, offset = 0.0) : Image","args_html":"(array : Array, scale = 1.0, offset = 0.0) : Image","location":{"filename":"src/vips/image.cr","line_number":279,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L279"},"def":{"name":"new_from_array","args":[{"name":"array","external_name":"array","restriction":"Array"},{"name":"scale","default_value":"1.0","external_name":"scale","restriction":""},{"name":"offset","default_value":"0.0","external_name":"offset","restriction":""}],"return_type":"Image","visibility":"Public","body":"if (darr = array[0].as?(Array))\n height = array.size\n width = darr.size\n if array.all? do |x|\n x.is_a?(Array)\n end\n else\n raise(VipsException.new(\"Not a 2D array.\"))\n end\n if array.all? do |x|\n (x.as?(Array)).try(&.size) == width\n end\n else\n raise(VipsException.new(\"Array not rectangular.\"))\n end\n array = array.flatten\nelse\n height = 1\n width = array.size\nend\nif array.size == (width * height)\nelse\n raise(VipsException.new(\"Bad array dimensions.\"))\nend\nif array.all? do |x|\n x.is_a?(Number)\nend\nelse\n raise(VipsException.new(\"Not all array elements are Numeric.\"))\nend\ndblarr = Array(Float64).new(array.size) do |i|\n (array[i].as(Number)).to_f\nend\nvi = LibVips.vips_image_new_matrix_from_array(width, height, dblarr, dblarr.size)\nif vi.null?\n raise(VipsException.new(\"unable to make image from matrix\"))\nend\nimage = new(vi)\nimage.mutate do |mutable|\n mutable.set(GValue::GDouble, \"scale\", scale)\n mutable.set(GValue::GDouble, \"offset\", offset)\nend\n"}},{"html_id":"new_from_buffer(data:String|Bytes|IO,option_string:String=\"\",access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_buffer","doc":"Create a new `Image` for an image encoded in a format such as\nJPEG in a binary `String`, `Bytes` or `IO`. Load options may be passed as\nstrings or appended as a keyword arguments. For example:\n\n```\nimage = Vips::Image.new_from_buffer memory_buffer, \"shrink=2\"\n```\n\nor alternatively:\n\n```\nimage = Vips::Image.new_from_buffer memory_buffer, \"\", shrink: 2\n```\n\nThe options available depend on the file format. Try something like:\n\n```\n$ vips jpegload_buffer\n```\n\nat the command-line to see the available options. Not all loaders\nsupport load from buffer, but at least JPEG, PNG and\nTIFF images will work.\n\n**Loading is fast**: only enough of the image is loaded to be able to fill\nout the header. Pixels will only be decompressed when they are needed.","summary":"

    Create a new Image for an image encoded in a format such as JPEG in a binary String, Bytes or IO.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(data : String | Bytes | IO, option_string : String = \"\", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(data : String | Bytes | IO, option_string : String = "", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":165,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L165"},"def":{"name":"new_from_buffer","args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"buffer = case data\nwhen String\n data.to_slice\nwhen IO\n data.gets_to_end.to_slice\nelse\n data\nend\nloader = String.new((LibVips.vips_foreign_find_load_buffer(buffer, buffer.bytesize)) || Bytes.empty)\nif loader.blank?\n raise(VipsException.new(\"Unable to load from buffer\"))\nend\noptions = Optional.new(**opts)\nif access.nil?\nelse\n options[\"access\"] = access.value\nend\nEnums.add_failon(options, failon)\noptions[\"string_options\"] = option_string\n((Operation.call(loader, options, buffer)).as(Type)).as_image\n"}},{"html_id":"new_from_file(name:String,memory:Bool|Nil=nil,access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_file","doc":"Return a new `Image` for a file on disc. This method can load\nimages in any format supported by vips. The filename can include\nload options, for example:\n\n```\nimage = Vips::Image.new_from_file \"fred.jpg[shrink=2]\"\n```\n\nYou can also supply options as keyword arguments (NamedTuple), for example:\n\n```\nimage = Vips::Image.new_from_file \"fred.jpg\", shrink: 2\n```\n\nThe full set of options available depend upon the load operation that\nwill be executed. Try something like:\n\n```\n$ vips jpegload\n```\n\nat the command-line to see a summary of the available options for the\nJPEG loader.\n\n**Loading is fast**: only enough of the image is loaded to be able to fill\nout the header. Pixels will only be decompressed when they are needed.","summary":"

    Return a new Image for a file on disc.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"memory","default_value":"nil","external_name":"memory","restriction":"Bool | ::Nil"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(name : String, memory : Bool | Nil = nil, access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(name : String, memory : Bool | Nil = nil, access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":120,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L120"},"def":{"name":"new_from_file","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"memory","default_value":"nil","external_name":"memory","restriction":"Bool | ::Nil"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"filename = String.new(LibVips.vips_filename_get_filename(name))\nfile_options = String.new(LibVips.vips_filename_get_options(name))\nloader = String.new((LibVips.vips_foreign_find_load(filename)) || Bytes.empty)\nif loader.blank?\n raise(VipsException.new(\"Unable to load from #{filename}\"))\nend\noptions = Optional.new(**opts)\nif memory.nil?\nelse\n options[\"memory\"] = memory\nend\nif access.nil?\nelse\n options[\"access\"] = access.value\nend\nEnums.add_failon(options, failon)\noptions[\"string_options\"] = file_options\n((Operation.call(loader, options, filename)).as(Type)).as_image\n"}},{"html_id":"new_from_memory(data:Bytes,width:Int32,height:Int32,bands:Int32,format:Enums::BandFormat):Image-class-method","name":"new_from_memory","doc":"Wraps an Image around an area of memory containing a C-style array. For\nexample, if the `data` memory array contains four bytes with the\nvalues 1, 2, 3, 4, you can make a one-band, 2x2 uchar image from\nit like this:\n```\nimage = Image.new_from_memory(data, 2, 2, 1, Enums::BandFormat::Uchar)\n```\n\nA reference is kept to the data object, so it will not be\ngarbage-collected until the returned image is garbage-collected.\n\nThis method is useful for efficiently transferring images from GDI+\ninto libvips.","summary":"

    Wraps an Image around an area of memory containing a C-style array.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"args_string":"(data : Bytes, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","args_html":"(data : Bytes, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","location":{"filename":"src/vips/image.cr","line_number":330,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L330"},"def":{"name":"new_from_memory","args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"return_type":"Image","visibility":"Public","body":"vi = LibVips.vips_image_new_from_memory(Box.box(data), data.size, width, height, bands, LibVips::VipsBandFormat.from_value(format.value))\nif vi.null?\n raise(VipsException.new(\"unable to make image from memory\"))\nend\nimage = new(vi)\n(image.@references) << data\nimage\n"}},{"html_id":"new_from_memory_copy(data:Pointer(Void),size:UInt64,width:Int32,height:Int32,bands:Int32,format:Enums::BandFormat):Image-class-method","name":"new_from_memory_copy","doc":"Create a new `Image` from memory and copies the memory area. See\n`new_from_memory` for a version of this method which does not copy the\nmemory area.","summary":"

    Create a new Image from memory and copies the memory area.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"::Pointer(Void)"},{"name":"size","external_name":"size","restriction":"UInt64"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"args_string":"(data : Pointer(Void), size : UInt64, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","args_html":"(data : Pointer(Void), size : UInt64, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","location":{"filename":"src/vips/image.cr","line_number":345,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L345"},"def":{"name":"new_from_memory_copy","args":[{"name":"data","external_name":"data","restriction":"::Pointer(Void)"},{"name":"size","external_name":"size","restriction":"UInt64"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"return_type":"Image","visibility":"Public","body":"vi = LibVips.vips_image_new_from_memory_copy(data, size, width, height, bands, LibVips::VipsBandFormat.from_value(format.value))\nif vi.null?\n raise(VipsException.new(\"unable to make image from memory\"))\nend\nnew(vi)\n"}},{"html_id":"new_from_source(source:Source,option_string:String=\"\",access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_source","doc":"Create a new `Image` from a source. Load options may be passed as\nstrings or appended as a hash. For example:\n\n```\nsource = Vips::Source.new_from_file(\"k2.jpg\")\nimage = Vips::Image.new_from_source source, \"shrink=2\"\n```\n\nor alternatively:\n\n```\nimage = Vips::Image.new_from_source source, shrink: 2\n```\n\nThe options available depend on the file format. Try something like:\n\n```\n$ vips jpegload_source\n```\n\nat the command-line to see the available options. Not all loaders\nsupport load from source, but at least JPEG, PNG and\nTIFF images will work.\n\n**Loading is fast**: only enough data is read to be able to fill\nout the header. Pixels will only be read and decompressed when they are\nneeded.","summary":"

    Create a new Image from a source.

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(source : Source, option_string : String = \"\", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(source : Source, option_string : String = "", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":212,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L212"},"def":{"name":"new_from_source","args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"LibVips.vips_error_freeze\nopname = find_load_source(source)\nLibVips.vips_error_thaw\noptions = Optional.new(**opts)\nif access.nil?\nelse\n options[\"access\"] = access.value\nend\nEnums.add_failon(options, failon)\noptions[\"string_options\"] = option_string\nif opname.nil?\nelse\n return ((Operation.call(opname, options, source)).as(Type)).as_image\nend\nif (filename = source.filename)\n opname = find_load(filename)\n if opname.nil?\n raise(VipsException.new(\"unable to load from source\"))\n end\n return ((Operation.call(opname, options, filename)).as(Type)).as_image\nend\nptr = LibVips.vips_source_map_blob(source)\nif ptr.null?\n raise(VipsException.new(\"unable to load from source\"))\nend\nblob = VipsBlob.new(ptr)\nbuff, size = blob.get_data\nopname = LibVips.vips_foreign_find_load_buffer(buff, size)\nif opname.null?\n raise(VipsException.new(\"unable to load from source\"))\nend\nreturn ((Operation.call(String.new(opname), options, blob)).as(Type)).as_image\n"}},{"html_id":"new_from_stream(stream:IO,option_string:String=\"\",access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_stream","doc":"Load a formatted image from a stream\nThis behaves exactly as `new_from_source`, but the image is loaded from a stream rathar than from a source.\nNote: AT least libvips 8.9 is needed","summary":"

    Load a formatted image from a stream This behaves exactly as .new_from_source, but the image is loaded from a stream rathar than from a source.

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(stream : IO, option_string : String = \"\", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(stream : IO, option_string : String = "", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":251,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L251"},"def":{"name":"new_from_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nnew_from_source(source, option_string, access, failon, **opts)\n"}},{"html_id":"new_temp_file(format:String):Image-class-method","name":"new_temp_file","doc":"Make a new temporary image.\nReturns an image backed by a temporary file. When written to with `write`, a temporary\nfile will be created on disc in the specified format. When the image is closed, the file will be deleted\nautomatically.\n\nThe file is created in the temporary directory. This is set with the environment variable `TMPDIR`.\nIf this is not set, then on Unix systems, vips will default to `/tmp`. On Windows, vips uses\n`GetTempPath()` to find the temporary director.\n\nvips uses `g_mkstemp()` to make the temporary filename. They generally look something like `vips-12-EJKFGH.v`\n*format* is the format for the temp file, for example `%s.v` for a vips format file. The `%s` is\nsubsituted by the file path.\n\nNote: `VipsException` is raised, if unable to make temp file from *format*","summary":"

    Make a new temporary image.

    ","abstract":false,"args":[{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(format : String) : Image","args_html":"(format : String) : Image","location":{"filename":"src/vips/image.cr","line_number":365,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L365"},"def":{"name":"new_temp_file","args":[{"name":"format","external_name":"format","restriction":"String"}],"return_type":"Image","visibility":"Public","body":"vi = LibVips.vips_image_new_temp_file(format)\nif vi.null?\n raise(VipsException.new(\"unable to make temp file\"))\nend\nnew(vi)\n"}}],"instance_methods":[{"html_id":"!=(other)-instance-method","name":"!=","doc":"Returns `true` if this object is not equal to *other*.\n\nBy default this method is implemented as `!(self == other)`\nso there's no need to override this unless there's a more efficient\nway to do it.","summary":"

    Returns true if this object is not equal to other.

    ","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1148,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1148"},"def":{"name":"!=","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Noteq)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Noteq, other)).as(Type)).as_image\nend"}},{"html_id":"%(other)-instance-method","name":"%","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1092,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1092"},"def":{"name":"%","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n remainder(other)\nelse\n ((call(\"remainder_const\", other)).as(Type)).as_image\nend"}},{"html_id":"&(other)-instance-method","name":"&","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1100,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1100"},"def":{"name":"&","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::And)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::And, other)).as(Type)).as_image\nend"}},{"html_id":"*(other)-instance-method","name":"*","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1076,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1076"},"def":{"name":"*","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n subtract(other)\nelse\n ((call(\"linear\", convert(other, \"multiplication\") do |x|\n x.to_f\n end, 0.0)).as(Type)).as_image\nend"}},{"html_id":"**(exp:Image)-instance-method","name":"**","doc":"Raise to the power of an image","summary":"

    Raise to the power of an image

    ","abstract":false,"args":[{"name":"exp","external_name":"exp","restriction":"Image"}],"args_string":"(exp : Image)","args_html":"(exp : Image)","location":{"filename":"src/vips/image.cr","line_number":953,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L953"},"def":{"name":"**","args":[{"name":"exp","external_name":"exp","restriction":"Image"}],"visibility":"Public","body":"self.math2(exp, Enums::OperationMath2::Pow)"}},{"html_id":"**(exp:Array(Number))-instance-method","name":"**","doc":"Raise to the power of a constant or an array of constants","summary":"

    Raise to the power of a constant or an array of constants

    ","abstract":false,"args":[{"name":"exp","external_name":"exp","restriction":"Array(Number)"}],"args_string":"(exp : Array(Number))","args_html":"(exp : Array(Number))","location":{"filename":"src/vips/image.cr","line_number":963,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L963"},"def":{"name":"**","args":[{"name":"exp","external_name":"exp","restriction":"Array(Number)"}],"visibility":"Public","body":"self.math2_const(Enums::OperationMath2::Pow, exp.map(&.to_f))"}},{"html_id":"**(*exp:Number)-instance-method","name":"**","doc":"Arc tangent of a constant or an array of constants in degrees","summary":"

    Arc tangent of a constant or an array of constants in degrees

    ","abstract":false,"args":[{"name":"exp","external_name":"exp","restriction":"Number"}],"args_string":"(*exp : Number)","args_html":"(*exp : Number)","location":{"filename":"src/vips/image.cr","line_number":973,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L973"},"def":{"name":"**","args":[{"name":"exp","external_name":"exp","restriction":"Number"}],"splat_index":0,"visibility":"Public","body":"self.math2_const(Enums::OperationMath2::Atan2, exp.map(&.to_f).to_a)"}},{"html_id":"+(other)-instance-method","name":"+","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1060,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1060"},"def":{"name":"+","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n add(other)\nelse\n ((call(\"linear\", 1.0, convert(other, \"addition\") do |x|\n x.to_f\n end)).as(Type)).as_image\nend"}},{"html_id":"-(other)-instance-method","name":"-","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1068,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1068"},"def":{"name":"-","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n subtract(other)\nelse\n ((call(\"linear\", 1.0, convert(other, \"subtraction\") do |x|\n x.to_f * -1\n end)).as(Type)).as_image\nend"}},{"html_id":"/(other)-instance-method","name":"/","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1084,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1084"},"def":{"name":"/","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n subtract(other)\nelse\n ((call(\"linear\", convert(other, \"division\") do |x|\n 1.0 / x\n end, 0.0)).as(Type)).as_image\nend"}},{"html_id":"<(other)-instance-method","name":"<","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1156,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1156"},"def":{"name":"<","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Less)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Less, other)).as(Type)).as_image\nend"}},{"html_id":"<<(other)-instance-method","name":"<<","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1124,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1124"},"def":{"name":"<<","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Lshift)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Lshift, other)).as(Type)).as_image\nend"}},{"html_id":"<=(other)-instance-method","name":"<=","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1172,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1172"},"def":{"name":"<=","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Lesseq)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Lesseq, other)).as(Type)).as_image\nend"}},{"html_id":"==(other)-instance-method","name":"==","doc":"Returns `false` (other can only be a `Value` here).","summary":"

    Returns false (other can only be a Value here).

    ","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1140,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1140"},"def":{"name":"==","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Equal)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Equal, other)).as(Type)).as_image\nend"}},{"html_id":">(other)-instance-method","name":">","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1164,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1164"},"def":{"name":">","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::More)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::More, other)).as(Type)).as_image\nend"}},{"html_id":">=(other)-instance-method","name":">=","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1180,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1180"},"def":{"name":">=","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Moreeq)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Moreeq, other)).as(Type)).as_image\nend"}},{"html_id":">>(other)-instance-method","name":">>","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1132,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1132"},"def":{"name":">>","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Rshift)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Rshift, other)).as(Type)).as_image\nend"}},{"html_id":"[](x:Int32,y:Int32)-instance-method","name":"[]","doc":"A synonym for `getpoint`","summary":"

    A synonym for #getpoint

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32)","args_html":"(x : Int32, y : Int32)","location":{"filename":"src/vips/image.cr","line_number":1284,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1284"},"def":{"name":"[]","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"getpoint(x, y)"}},{"html_id":"[](i:Int32)-instance-method","name":"[]","doc":"pull out band elements from an image","summary":"

    pull out band elements from an image

    ","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"Int32"}],"args_string":"(i : Int32)","args_html":"(i : Int32)","location":{"filename":"src/vips/image.cr","line_number":1271,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1271"},"def":{"name":"[]","args":[{"name":"i","external_name":"i","restriction":"Int32"}],"visibility":"Public","body":"if band_exists?(i)\nelse\n raise(ArgumentError.new(\"Band index out of bounds\"))\nend\nextract_band(i)\n"}},{"html_id":"[](index:Range)-instance-method","name":"[]","doc":"Fetch bands using a range","summary":"

    Fetch bands using a range

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Range"}],"args_string":"(index : Range)","args_html":"(index : Range)","location":{"filename":"src/vips/image.cr","line_number":1277,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1277"},"def":{"name":"[]","args":[{"name":"index","external_name":"index","restriction":"Range"}],"visibility":"Public","body":"if band_exists?(index.begin)\nelse\n raise(ArgumentError.new(\"Band index out of bounds for range start\"))\nend\nif band_exists?(index.end)\nelse\n raise(ArgumentError.new(\"Band index out of bounds for range start\"))\nend\nextract_band(index.begin, n: index.end)\n"}},{"html_id":"^(other)-instance-method","name":"^","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1116,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1116"},"def":{"name":"^","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Eor)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Eor, other)).as(Type)).as_image\nend"}},{"html_id":"|(other)-instance-method","name":"|","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1108,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1108"},"def":{"name":"|","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Or)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Or, other)).as(Type)).as_image\nend"}},{"html_id":"a_cosh:Image-instance-method","name":"a_cosh","doc":"Return the inverse hyperbolic cosine of an image in degrees.","summary":"

    Return the inverse hyperbolic cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":923,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L923"},"def":{"name":"a_cosh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Acosh)"}},{"html_id":"a_sinh:Image-instance-method","name":"a_sinh","doc":"Return the inverse hyperbolic sine of an image in degrees.","summary":"

    Return the inverse hyperbolic sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":918,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L918"},"def":{"name":"a_sinh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Asinh)"}},{"html_id":"a_tan2(x:Image)-instance-method","name":"a_tan2","doc":"Arc tangent of an image in degrees.","summary":"

    Arc tangent of an image in degrees.

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Image"}],"args_string":"(x : Image)","args_html":"(x : Image)","location":{"filename":"src/vips/image.cr","line_number":968,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L968"},"def":{"name":"a_tan2","args":[{"name":"x","external_name":"x","restriction":"Image"}],"visibility":"Public","body":"self.math2(x, Enums::OperationMath2::Atan2)"}},{"html_id":"a_tanh:Image-instance-method","name":"a_tanh","doc":"Return the inverse hyperbolic tangent of an image in degrees.","summary":"

    Return the inverse hyperbolic tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":928,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L928"},"def":{"name":"a_tanh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Atanh)"}},{"html_id":"abs-instance-method","name":"abs","doc":"Absolute value of an image\n\n```\n# out_ = in.abs()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Absolute value of an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":25,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L25"},"def":{"name":"abs","visibility":"Public","body":"((self.call(\"abs\")).as(Type)).as_image"}},{"html_id":"acos:Image-instance-method","name":"acos","doc":"Return the inverse cosine of an image in degrees.","summary":"

    Return the inverse cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":893,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L893"},"def":{"name":"acos","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Acos)"}},{"html_id":"add(right:Image)-instance-method","name":"add","doc":"Add two images\n\n```\n# out_ = left.add(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Add two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L47"},"def":{"name":"add","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"add\", right)).as(Type)).as_image"}},{"html_id":"add_alpha:Image-instance-method","name":"add_alpha","doc":"Append an alpha channel to an image.","summary":"

    Append an alpha channel to an image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1197,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1197"},"def":{"name":"add_alpha","return_type":"Image","visibility":"Public","body":"if Vips.at_least_libvips?(8, 6)\n (LibVips.vips_addalpha(self, out vi)).tap do |ret|\n if ret == 0\n else\n raise(VipsException.new(\"unable to append alpha channel to image\"))\n end\n end\n return Image.new(vi)\nend\nmax_alpha = [Enums::Interpretation::Grey16, Enums::Interpretation::Rgb16].includes?(interpretation) ? 65535 : 255\nbandjoin(max_alpha)\n"}},{"html_id":"affine(matrix:Array(Float64),**kwargs)-instance-method","name":"affine","doc":"Affine transform of an image\n\n```\n# out_ = in.affine(matrix, {interpolate: Interpolate, oarea: Array(Int32), odx: Float64, ody: Float64, idx: Float64, idy: Float64, background: Array(Float64), premultiplied: Bool, extend: Enums::Extend})\n```\n\n\nInput Parameters\n\n**Required**\n\n*matrix* : Array(Float64) - Transformation matrix\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*oarea* : Array(Int32) - Area of output to generate\n\n*odx* : Float64 - Horizontal output displacement\n\n*ody* : Float64 - Vertical output displacement\n\n*idx* : Float64 - Horizontal input displacement\n\n*idy* : Float64 - Vertical input displacement\n\n*background* : Array(Float64) - Background value\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Affine transform of an image

    ","abstract":false,"args":[{"name":"matrix","external_name":"matrix","restriction":"Array(Float64)"}],"args_string":"(matrix : Array(Float64), **kwargs)","args_html":"(matrix : Array(Float64), **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":89,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L89"},"def":{"name":"affine","args":[{"name":"matrix","external_name":"matrix","restriction":"Array(Float64)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"affine\", options, matrix)).as(Type)).as_image\n"}},{"html_id":"asin:Image-instance-method","name":"asin","doc":"Return the inverse sine of an image in degrees.","summary":"

    Return the inverse sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":888,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L888"},"def":{"name":"asin","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Asin)"}},{"html_id":"atan:Image-instance-method","name":"atan","doc":"Return the inverse tangent of an image in degrees.","summary":"

    Return the inverse tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":898,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L898"},"def":{"name":"atan","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Atan)"}},{"html_id":"autorot-instance-method","name":"autorot","doc":"Autorotate image by exif tag\n\n```\n# out_, angle, flip = in.autorot()\n```\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*angle* : Enums::Angle? - Angle image was rotated by\n\n*flip* : Bool? - Whether the image was flipped or not\n","summary":"

    Autorotate image by exif tag

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":195,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L195"},"def":{"name":"autorot","visibility":"Public","body":"optional_output = Optional.new(**{angle: true, flip: true})\nresults = (self.call(\"autorot\", optional_output)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nangle = ((o = opts) && (val = o[\"angle\"]?)) ? val.as_enum(Enums::Angle) : nil\nflip = ((o = opts) && (val = o[\"flip\"]?)) ? val.as_b : nil\n{final_result, angle, flip}\n"}},{"html_id":"avg-instance-method","name":"avg","doc":"Find image average\n\n```\n# out_ = in.avg()\n```\n\n\n**Returns**\n\nOutput value\n","summary":"

    Find image average

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":219,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L219"},"def":{"name":"avg","visibility":"Public","body":"((self.call(\"avg\")).as(Type)).as_f64"}},{"html_id":"band_exists?(i:Int32)-instance-method","name":"band_exists?","doc":"Does band exist in image.","summary":"

    Does band exist in image.

    ","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"Int32"}],"args_string":"(i : Int32)","args_html":"(i : Int32)","location":{"filename":"src/vips/image.cr","line_number":1266,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1266"},"def":{"name":"band_exists?","args":[{"name":"i","external_name":"i","restriction":"Int32"}],"visibility":"Public","body":"i >= 0 && i <= (bands - 1)"}},{"html_id":"bandand-instance-method","name":"bandand","doc":"AND the bands of an image together","summary":"

    AND the bands of an image together

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1033,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1033"},"def":{"name":"bandand","visibility":"Public","body":"((self.call(\"bandbool\", Enums::OperationBoolean::And)).as(Type)).as_image"}},{"html_id":"bandbool(boolean:Enums::OperationBoolean)-instance-method","name":"bandbool","doc":"Boolean operation across image bands\n\n```\n# out_ = in.bandbool(boolean)\n```\n\n\nInput Parameters\n\n**Required**\n\n*boolean* : Enums::OperationBoolean - Boolean to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Boolean operation across image bands

    ","abstract":false,"args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"args_string":"(boolean : Enums::OperationBoolean)","args_html":"(boolean : Enums::OperationBoolean)","location":{"filename":"src/vips/ext/image.cr","line_number":241,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L241"},"def":{"name":"bandbool","args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"visibility":"Public","body":"((self.call(\"bandbool\", boolean)).as(Type)).as_image"}},{"html_id":"bandeor-instance-method","name":"bandeor","doc":"EOR the bands of an image together","summary":"

    EOR the bands of an image together

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1043,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1043"},"def":{"name":"bandeor","visibility":"Public","body":"((self.call(\"bandbool\", Enums::OperationBoolean::Eor)).as(Type)).as_image"}},{"html_id":"bandfold(**kwargs)-instance-method","name":"bandfold","doc":"Fold up x axis into bands\n\n```\n# out_ = in.bandfold({factor: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*factor* : Int32 - Fold by this factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Fold up x axis into bands

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":263,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L263"},"def":{"name":"bandfold","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"bandfold\", options)).as(Type)).as_image\n"}},{"html_id":"bandjoin(arr:Array(Int32)):Image-instance-method","name":"bandjoin","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(Int32)"}],"args_string":"(arr : Array(Int32)) : Image","args_html":"(arr : Array(Int32)) : Image","location":{"filename":"src/vips/image.cr","line_number":705,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L705"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Array(Int32)"}],"return_type":"Image","visibility":"Public","body":"bandjoin(arr.map(&.to_f))"}},{"html_id":"bandjoin(arr:Array(Float64)):Image-instance-method","name":"bandjoin","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(Float64)"}],"args_string":"(arr : Array(Float64)) : Image","args_html":"(arr : Array(Float64)) : Image","location":{"filename":"src/vips/image.cr","line_number":709,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L709"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Array(Float64)"}],"return_type":"Image","visibility":"Public","body":"bandjoin_const(arr)"}},{"html_id":"bandjoin(arr:Array(Image)):Image-instance-method","name":"bandjoin","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(Image)"}],"args_string":"(arr : Array(Image)) : Image","args_html":"(arr : Array(Image)) : Image","location":{"filename":"src/vips/image.cr","line_number":718,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L718"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Array(Image)"}],"return_type":"Image","visibility":"Public","body":"((call(\"bandjoin\", arr.unshift(self))).as(Type)).as_image"}},{"html_id":"bandjoin(*arr:Float64):Image-instance-method","name":"bandjoin","doc":"Append a set of constants bandwise","summary":"

    Append a set of constants bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Float64"}],"args_string":"(*arr : Float64) : Image","args_html":"(*arr : Float64) : Image","location":{"filename":"src/vips/image.cr","line_number":696,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L696"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Float64"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"bandjoin(arr.to_a)"}},{"html_id":"bandjoin(*arr:Int32):Image-instance-method","name":"bandjoin","doc":"Append a set of constants bandwise","summary":"

    Append a set of constants bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Int32"}],"args_string":"(*arr : Int32) : Image","args_html":"(*arr : Int32) : Image","location":{"filename":"src/vips/image.cr","line_number":701,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L701"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Int32"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"bandjoin(arr.to_a)"}},{"html_id":"bandjoin(*arr:Image):Image-instance-method","name":"bandjoin","doc":"Append a set of images bandwise","summary":"

    Append a set of images bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Image"}],"args_string":"(*arr : Image) : Image","args_html":"(*arr : Image) : Image","location":{"filename":"src/vips/image.cr","line_number":714,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L714"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Image"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"bandjoin(arr.to_a)"}},{"html_id":"bandjoin(*arr:Image|Number):Image-instance-method","name":"bandjoin","doc":"Append a set of mixed images and constants bandwise","summary":"

    Append a set of mixed images and constants bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Image | Number"}],"args_string":"(*arr : Image | Number) : Image","args_html":"(*arr : Image | Number) : Image","location":{"filename":"src/vips/image.cr","line_number":723,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L723"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Image | Number"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"bandjoin\", arr.to_a.unshift(self))).as(Type)).as_image"}},{"html_id":"bandjoin_const(c:Array(Float64))-instance-method","name":"bandjoin_const","doc":"Append a constant band to an image\n\n```\n# out_ = in.bandjoin_const(c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*c* : Array(Float64) - Array of constants to add\n\n\n**Returns**\n\nOutput image\n","summary":"

    Append a constant band to an image

    ","abstract":false,"args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(c : Array(Float64))","args_html":"(c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":287,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L287"},"def":{"name":"bandjoin_const","args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"bandjoin_const\", c)).as(Type)).as_image"}},{"html_id":"bandmean-instance-method","name":"bandmean","doc":"Band-wise average\n\n```\n# out_ = in.bandmean()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Band-wise average

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":302,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L302"},"def":{"name":"bandmean","visibility":"Public","body":"((self.call(\"bandmean\")).as(Type)).as_image"}},{"html_id":"bandor-instance-method","name":"bandor","doc":"OR the bands of an image together","summary":"

    OR the bands of an image together

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1038,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1038"},"def":{"name":"bandor","visibility":"Public","body":"((self.call(\"bandbool\", Enums::OperationBoolean::Or)).as(Type)).as_image"}},{"html_id":"bandrank(*vals:Float64,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of constants.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of constants.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":"Float64"}],"args_string":"(*vals : Float64, **kwargs)","args_html":"(*vals : Float64, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":732,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L732"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"options = Optional.new(**kwargs)\n((call(\"bandrank\", options, vals.to_a)).as(Type)).as_image\n"}},{"html_id":"bandrank(*vals:Int32,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of constants.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of constants.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":"Int32"}],"args_string":"(*vals : Int32, **kwargs)","args_html":"(*vals : Int32, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":742,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L742"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"bandrank(*vals.map(&.to_f), **kwargs)"}},{"html_id":"bandrank(*vals:Image,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of images.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of images.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":"Image"}],"args_string":"(*vals : Image, **kwargs)","args_html":"(*vals : Image, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":751,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L751"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"options = Optional.new(**kwargs)\n((call(\"bandrank\", options, vals.to_a.unshift(self))).as(Type)).as_image\n"}},{"html_id":"bandrank(*vals,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of mixed images and constants.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of mixed images and constants.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":""}],"args_string":"(*vals, **kwargs)","args_html":"(*vals, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":761,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L761"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":""}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"options = Optional.new(**kwargs)\n((call(\"bandrank\", options, vals.to_a.unshift(self))).as(Type)).as_image\n"}},{"html_id":"bands:Int32-instance-method","name":"bands","doc":"Number of bands in image","summary":"

    Number of bands in image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10826,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10826"},"def":{"name":"bands","return_type":"Int32","visibility":"Public","body":"(get(\"bands\")).as_i32"}},{"html_id":"bandsplit:Array(Image)-instance-method","name":"bandsplit","doc":"Split an n-band image into n separate images.","summary":"

    Split an n-band image into n separate images.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1289,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1289"},"def":{"name":"bandsplit","return_type":"Array(Image)","visibility":"Public","body":"(0...bands).map do |i|\n extract_band(i)\nend"}},{"html_id":"bandunfold(**kwargs)-instance-method","name":"bandunfold","doc":"Unfold image bands into x axis\n\n```\n# out_ = in.bandunfold({factor: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*factor* : Int32 - Unfold by this factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unfold image bands into x axis

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":324,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L324"},"def":{"name":"bandunfold","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"bandunfold\", options)).as(Type)).as_image\n"}},{"html_id":"boolean(right:Image,boolean:Enums::OperationBoolean)-instance-method","name":"boolean","doc":"Boolean operation on two images\n\n```\n# out_ = left.boolean(right, boolean)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*boolean* : Enums::OperationBoolean - Boolean to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Boolean operation on two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"args_string":"(right : Image, boolean : Enums::OperationBoolean)","args_html":"(right : Image, boolean : Enums::OperationBoolean)","location":{"filename":"src/vips/ext/image.cr","line_number":380,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L380"},"def":{"name":"boolean","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"visibility":"Public","body":"((self.call(\"boolean\", right, boolean)).as(Type)).as_image"}},{"html_id":"boolean_const(boolean:Enums::OperationBoolean,c:Array(Float64))-instance-method","name":"boolean_const","doc":"Boolean operations against a constant\n\n```\n# out_ = in.boolean_const(boolean, c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*boolean* : Enums::OperationBoolean - Boolean to perform\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Boolean operations against a constant

    ","abstract":false,"args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(boolean : Enums::OperationBoolean, c : Array(Float64))","args_html":"(boolean : Enums::OperationBoolean, c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":404,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L404"},"def":{"name":"boolean_const","args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"boolean_const\", boolean, c)).as(Type)).as_image"}},{"html_id":"buildlut-instance-method","name":"buildlut","doc":"Build a look-up table\n\n```\n# out_ = in.buildlut()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Build a look-up table

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":419,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L419"},"def":{"name":"buildlut","visibility":"Public","body":"((self.call(\"buildlut\")).as(Type)).as_image"}},{"html_id":"byteswap-instance-method","name":"byteswap","doc":"Byteswap an image\n\n```\n# out_ = in.byteswap()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Byteswap an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":434,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L434"},"def":{"name":"byteswap","visibility":"Public","body":"((self.call(\"byteswap\")).as(Type)).as_image"}},{"html_id":"cache(**kwargs)-instance-method","name":"cache","doc":"Cache an image\n\n```\n# out_ = in.cache({max_tiles: Int32, tile_height: Int32, tile_width: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*max_tiles* : Int32 - Maximum number of tiles to cache\n\n*tile_height* : Int32 - Tile height in pixels\n\n*tile_width* : Int32 - Tile width in pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cache an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":460,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L460"},"def":{"name":"cache","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"cache\", options)).as(Type)).as_image\n"}},{"html_id":"canny(**kwargs)-instance-method","name":"canny","doc":"Canny edge detector\n\n```\n# out_ = in.canny({sigma: Float64, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*sigma* : Float64 - Sigma of Gaussian\n\n*precision* : Enums::Precision - Convolve with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Canny edge detector

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":486,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L486"},"def":{"name":"canny","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"canny\", options)).as(Type)).as_image\n"}},{"html_id":"case(*args:Float64):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an array of constants","summary":"

    Use pixel values to pick cases from an array of constants

    ","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Float64"}],"args_string":"(*args : Float64) : Image","args_html":"(*args : Float64) : Image","location":{"filename":"src/vips/image.cr","line_number":676,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L676"},"def":{"name":"case","args":[{"name":"args","external_name":"args","restriction":"Float64"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"case\", args.to_a)).as(Type)).as_image"}},{"html_id":"case(*args:Int32):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an array of constants","summary":"

    Use pixel values to pick cases from an array of constants

    ","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Int32"}],"args_string":"(*args : Int32) : Image","args_html":"(*args : Int32) : Image","location":{"filename":"src/vips/image.cr","line_number":681,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L681"},"def":{"name":"case","args":[{"name":"args","external_name":"args","restriction":"Int32"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"self.case(*args.map(&.to_f))"}},{"html_id":"case(*images:Image):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an array of images.","summary":"

    Use pixel values to pick cases from an array of images.

    ","abstract":false,"args":[{"name":"images","external_name":"images","restriction":"Image"}],"args_string":"(*images : Image) : Image","args_html":"(*images : Image) : Image","location":{"filename":"src/vips/image.cr","line_number":686,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L686"},"def":{"name":"case","args":[{"name":"images","external_name":"images","restriction":"Image"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"case\", images.to_a)).as(Type)).as_image"}},{"html_id":"case(*args):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an a set of mixed images and constants.","summary":"

    Use pixel values to pick cases from an a set of mixed images and constants.

    ","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args) : Image","args_html":"(*args) : Image","location":{"filename":"src/vips/image.cr","line_number":691,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L691"},"def":{"name":"case","args":[{"name":"args","external_name":"args","restriction":""}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"case\", args.to_a)).as(Type)).as_image"}},{"html_id":"cast(format:Enums::BandFormat,**kwargs)-instance-method","name":"cast","doc":"Cast an image\n\n```\n# out_ = in.cast(format, {shift: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*format* : Enums::BandFormat - Format to cast to\n\n_Optionals_\n\n*shift* : Bool - Shift integer values up and down\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cast an image

    ","abstract":false,"args":[{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"args_string":"(format : Enums::BandFormat, **kwargs)","args_html":"(format : Enums::BandFormat, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":514,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L514"},"def":{"name":"cast","args":[{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"cast\", options, format)).as(Type)).as_image\n"}},{"html_id":"ceil:Image-instance-method","name":"ceil","doc":"Return the smallest integral value not less than the argument.","summary":"

    Return the smallest integral value not less than the argument.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1023,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1023"},"def":{"name":"ceil","return_type":"Image","visibility":"Public","body":"((self.call(\"round\", Enums::OperationRound::Ceil)).as(Type)).as_image"}},{"html_id":"cmc2lch-instance-method","name":"cmc2lch","doc":"Transform lch to cmc\n\n```\n# out_ = in.cmc2lch()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lch to cmc

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":531,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L531"},"def":{"name":"cmc2lch","visibility":"Public","body":"((self.call(\"cmc2lch\")).as(Type)).as_image"}},{"html_id":"cmyk2xyz-instance-method","name":"cmyk2xyz","doc":"Transform cmyk to xyz\n\n```\n# out_ = in.cmyk2xyz()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform cmyk to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":546,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L546"},"def":{"name":"cmyk2xyz","visibility":"Public","body":"((self.call(\"cmyk2xyz\")).as(Type)).as_image"}},{"html_id":"coding:Enums::Coding-instance-method","name":"coding","doc":"Pixel coding","summary":"

    Pixel coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10836,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10836"},"def":{"name":"coding","return_type":"Enums::Coding","visibility":"Public","body":"(get(\"coding\")).as_enum(Enums::Coding)"}},{"html_id":"colourspace(space:Enums::Interpretation,**kwargs)-instance-method","name":"colourspace","doc":"Convert to a new colorspace\n\n```\n# out_ = in.colourspace(space, {source_space: Enums::Interpretation})\n```\n\n\nInput Parameters\n\n**Required**\n\n*space* : Enums::Interpretation - Destination color space\n\n_Optionals_\n\n*source_space* : Enums::Interpretation - Source color space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert to a new colorspace

    ","abstract":false,"args":[{"name":"space","external_name":"space","restriction":"Enums::Interpretation"}],"args_string":"(space : Enums::Interpretation, **kwargs)","args_html":"(space : Enums::Interpretation, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":572,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L572"},"def":{"name":"colourspace","args":[{"name":"space","external_name":"space","restriction":"Enums::Interpretation"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"colourspace\", options, space)).as(Type)).as_image\n"}},{"html_id":"compass(mask:Image,**kwargs)-instance-method","name":"compass","doc":"Convolve with rotating mask\n\n```\n# out_ = in.compass(mask, {times: Int32, angle: Enums::Angle45, combine: Enums::Combine, precision: Enums::Precision, layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*times* : Int32 - Rotate and convolve this many times\n\n*angle* : Enums::Angle45 - Rotate mask by this much between convolutions\n\n*combine* : Enums::Combine - Combine convolution results like this\n\n*precision* : Enums::Precision - Convolve with this precision\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convolve with rotating mask

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":610,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L610"},"def":{"name":"compass","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"compass\", options, mask)).as(Type)).as_image\n"}},{"html_id":"complex(cmplx:Enums::OperationComplex)-instance-method","name":"complex","doc":"Perform a complex operation on an image\n\n```\n# out_ = in.complex(cmplx)\n```\n\n\nInput Parameters\n\n**Required**\n\n*cmplx* : Enums::OperationComplex - Complex to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Perform a complex operation on an image

    ","abstract":false,"args":[{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex"}],"args_string":"(cmplx : Enums::OperationComplex)","args_html":"(cmplx : Enums::OperationComplex)","location":{"filename":"src/vips/ext/image.cr","line_number":634,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L634"},"def":{"name":"complex","args":[{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex"}],"visibility":"Public","body":"((self.call(\"complex\", cmplx)).as(Type)).as_image"}},{"html_id":"complex2(right:Image,cmplx:Enums::OperationComplex2)-instance-method","name":"complex2","doc":"Complex binary operations on two images\n\n```\n# out_ = left.complex2(right, cmplx)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*cmplx* : Enums::OperationComplex2 - Binary complex operation to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Complex binary operations on two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex2"}],"args_string":"(right : Image, cmplx : Enums::OperationComplex2)","args_html":"(right : Image, cmplx : Enums::OperationComplex2)","location":{"filename":"src/vips/ext/image.cr","line_number":658,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L658"},"def":{"name":"complex2","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex2"}],"visibility":"Public","body":"((self.call(\"complex2\", right, cmplx)).as(Type)).as_image"}},{"html_id":"complexform(right:Image)-instance-method","name":"complexform","doc":"Form a complex image from two real images\n\n```\n# out_ = left.complexform(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Form a complex image from two real images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":680,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L680"},"def":{"name":"complexform","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"complexform\", right)).as(Type)).as_image"}},{"html_id":"complexget(get:Enums::OperationComplexget)-instance-method","name":"complexget","doc":"Get a component from a complex image\n\n```\n# out_ = in.complexget(get)\n```\n\n\nInput Parameters\n\n**Required**\n\n*get* : Enums::OperationComplexget - Complex to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Get a component from a complex image

    ","abstract":false,"args":[{"name":"get","external_name":"get","restriction":"Enums::OperationComplexget"}],"args_string":"(get : Enums::OperationComplexget)","args_html":"(get : Enums::OperationComplexget)","location":{"filename":"src/vips/ext/image.cr","line_number":702,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L702"},"def":{"name":"complexget","args":[{"name":"get","external_name":"get","restriction":"Enums::OperationComplexget"}],"visibility":"Public","body":"((self.call(\"complexget\", get)).as(Type)).as_image"}},{"html_id":"composite(images:Array(Image),modes:Array(Enums::BlendMode),**kwargs)-instance-method","name":"composite","doc":"Blend an array of images with an array of blend modes\n\n```\n# out_ = Vips::Image.composite(images, modes, {x: Array(Int32), y: Array(Int32), compositing_space: Enums::Interpretation, premultiplied: Bool})\n```\n\nInput Parameters\n\n**Required**\n\n*images* : Array(Image) - Array of input images\n\n*modes* : Array(Enums::BlendMode) - Array of `Enums::BlendMode` to join with\n\n_Optionals_\n\n*x* : Array(Int32) - Array of x coordinates to join at\n\n*y* : Array(Int32) - Array of y coordinates to join at\n\n*compositing_space* : `Enums::Interpretation` - Composite images in this colour space\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n**Returns**\n\nOutput `Image`","summary":"

    Blend an array of images with an array of blend modes

    ","abstract":false,"args":[{"name":"images","external_name":"images","restriction":"Array(Image)"},{"name":"modes","external_name":"modes","restriction":"Array(Enums::BlendMode)"}],"args_string":"(images : Array(Image), modes : Array(Enums::BlendMode), **kwargs)","args_html":"(images : Array(Image), modes : Array(Enums::BlendMode), **kwargs)","location":{"filename":"src/vips/image.cr","line_number":793,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L793"},"def":{"name":"composite","args":[{"name":"images","external_name":"images","restriction":"Array(Image)"},{"name":"modes","external_name":"modes","restriction":"Array(Enums::BlendMode)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"composite\", options, images.unshift(self), modes)).as(Type)).as_image\n"}},{"html_id":"composite(image:Image,mode:Enums::BlendMode,**kwargs)-instance-method","name":"composite","doc":"A synonym for `composite2`\n\n```\n# out_ = Vips::Image.composite(overlay, mode, {x: Array(Int32), y: Array(Int32), compositing_space: Enums::Interpretation, premultiplied: Bool})\n```\n\nInput Parameters\n\n**Required**\n\n*overlay* : Image - Overlay image\n\n*modes : Enums::BlendMode - VipsBlendMode to join with\n\n_Optionals_\n\n*x* : Int32 - x position of overlay\n\n*y* : Int32 - y position of overlay\n\n*compositing_space* : `Enums::Interpretation` - Composite images in this colour space\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n**Returns**\n\nOutput image","summary":"

    A synonym for #composite2

    ","abstract":false,"args":[{"name":"image","external_name":"image","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"args_string":"(image : Image, mode : Enums::BlendMode, **kwargs)","args_html":"(image : Image, mode : Enums::BlendMode, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":826,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L826"},"def":{"name":"composite","args":[{"name":"image","external_name":"image","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"composite2(image, mode, **kwargs)"}},{"html_id":"composite2(overlay:Image,mode:Enums::BlendMode,**kwargs)-instance-method","name":"composite2","doc":"Blend a pair of images with a blend mode\n\n```\n# out_ = base.composite2(overlay, mode, {x: Int32, y: Int32, compositing_space: Enums::Interpretation, premultiplied: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*overlay* : Image - Overlay image\n\n*mode* : Enums::BlendMode - VipsBlendMode to join with\n\n_Optionals_\n\n*x* : Int32 - x position of overlay\n\n*y* : Int32 - y position of overlay\n\n*compositing_space* : Enums::Interpretation - Composite images in this colour space\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n\n**Returns**\n\nOutput image\n","summary":"

    Blend a pair of images with a blend mode

    ","abstract":false,"args":[{"name":"overlay","external_name":"overlay","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"args_string":"(overlay : Image, mode : Enums::BlendMode, **kwargs)","args_html":"(overlay : Image, mode : Enums::BlendMode, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":736,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L736"},"def":{"name":"composite2","args":[{"name":"overlay","external_name":"overlay","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"composite2\", options, overlay, mode)).as(Type)).as_image\n"}},{"html_id":"conj:Image-instance-method","name":"conj","doc":"Return the complex conjugate of an image.","summary":"

    Return the complex conjugate of an image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":868,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L868"},"def":{"name":"conj","return_type":"Image","visibility":"Public","body":"complex(Enums::OperationComplex::Conj)"}},{"html_id":"contains(name:String)-instance-method","name":"contains","doc":"Check if the underlying image contains an property of metadata.","summary":"

    Check if the underlying image contains an property of metadata.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/image.cr","line_number":574,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L574"},"def":{"name":"contains","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"(get_typeof(name)) != 0"}},{"html_id":"conv(mask:Image,**kwargs)-instance-method","name":"conv","doc":"Convolution operation\n\n```\n# out_ = in.conv(mask, {precision: Enums::Precision, layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*precision* : Enums::Precision - Convolve with this precision\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":768,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L768"},"def":{"name":"conv","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"conv\", options, mask)).as(Type)).as_image\n"}},{"html_id":"conva(mask:Image,**kwargs)-instance-method","name":"conva","doc":"Approximate integer convolution\n\n```\n# out_ = in.conva(mask, {layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Approximate integer convolution

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":798,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L798"},"def":{"name":"conva","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"conva\", options, mask)).as(Type)).as_image\n"}},{"html_id":"convasep(mask:Image,**kwargs)-instance-method","name":"convasep","doc":"Approximate separable integer convolution\n\n```\n# out_ = in.convasep(mask, {layers: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*layers* : Int32 - Use this many layers in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Approximate separable integer convolution

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":826,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L826"},"def":{"name":"convasep","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"convasep\", options, mask)).as(Type)).as_image\n"}},{"html_id":"convf(mask:Image)-instance-method","name":"convf","doc":"Float convolution operation\n\n```\n# out_ = in.convf(mask)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Float convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":850,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L850"},"def":{"name":"convf","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"convf\", mask)).as(Type)).as_image"}},{"html_id":"convi(mask:Image)-instance-method","name":"convi","doc":"Int convolution operation\n\n```\n# out_ = in.convi(mask)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Int convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":872,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L872"},"def":{"name":"convi","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"convi\", mask)).as(Type)).as_image"}},{"html_id":"convsep(mask:Image,**kwargs)-instance-method","name":"convsep","doc":"Seperable convolution operation\n\n```\n# out_ = in.convsep(mask, {precision: Enums::Precision, layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*precision* : Enums::Precision - Convolve with this precision\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Seperable convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":902,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L902"},"def":{"name":"convsep","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"convsep\", options, mask)).as(Type)).as_image\n"}},{"html_id":"copy(**kwargs)-instance-method","name":"copy","doc":"Copy an image\n\n```\n# out_ = in.copy({width: Int32, height: Int32, bands: Int32, format: Enums::BandFormat, coding: Enums::Coding, interpretation: Enums::Interpretation, xres: Float64, yres: Float64, xoffset: Int32, yoffset: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*bands* : Int32 - Number of bands in image\n\n*format* : Enums::BandFormat - Pixel format in image\n\n*coding* : Enums::Coding - Pixel coding\n\n*interpretation* : Enums::Interpretation - Pixel interpretation\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*xoffset* : Int32 - Horizontal offset of origin\n\n*yoffset* : Int32 - Vertical offset of origin\n\n\n**Returns**\n\nOutput image\n","summary":"

    Copy an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":944,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L944"},"def":{"name":"copy","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"copy\", options)).as(Type)).as_image\n"}},{"html_id":"copy_memory-instance-method","name":"copy_memory","doc":"Copy an image to a memory area.\n\nThis can be useful for reusing results, but can obviously use a lot of\nmemory for large images. See {Image#tilecache} for a way of caching\nparts of an image.\n\nReturns new memory `Image`","summary":"

    Copy an image to a memory area.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":405,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L405"},"def":{"name":"copy_memory","visibility":"Public","body":"vi = LibVips.vips_image_copy_memory(self)\nif vi.null?\n raise(VipsException.new(\"unable to copy to memory\"))\nend\nnew(vi)\n"}},{"html_id":"cos:Image-instance-method","name":"cos","doc":"Return the cosine of an image in degrees.","summary":"

    Return the cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":878,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L878"},"def":{"name":"cos","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Cos)"}},{"html_id":"cosh:Image-instance-method","name":"cosh","doc":"Return the hyperbolic cosine of an image in degrees.","summary":"

    Return the hyperbolic cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":908,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L908"},"def":{"name":"cosh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Cosh)"}},{"html_id":"countlines(direction:Enums::Direction)-instance-method","name":"countlines","doc":"Count lines in an image\n\n```\n# nolines = in.countlines(direction)\n```\n\n\nInput Parameters\n\n**Required**\n\n*direction* : Enums::Direction - Countlines left-right or up-down\n\n\n**Returns**\n\nNumber of lines\n","summary":"

    Count lines in an image

    ","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"args_string":"(direction : Enums::Direction)","args_html":"(direction : Enums::Direction)","location":{"filename":"src/vips/ext/image.cr","line_number":968,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L968"},"def":{"name":"countlines","args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"visibility":"Public","body":"((self.call(\"countlines\", direction)).as(Type)).as_f64"}},{"html_id":"crop(left:Int32,top:Int32,width:Int32,height:Int32)-instance-method","name":"crop","doc":"A synonym for `extract_area`","summary":"

    A synonym for #extract_area

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32)","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32)","location":{"filename":"src/vips/image.cr","line_number":831,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L831"},"def":{"name":"crop","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"extract_area(left, top, width, height)"}},{"html_id":"csvsave(filename:String,**kwargs)-instance-method","name":"csvsave","doc":"Save image to csv\n\n```\nin.csvsave(filename, {separator: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*separator* : String - Separator characters\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to csv

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1136,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1136"},"def":{"name":"csvsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"csvsave\", options, filename)\n"}},{"html_id":"csvsave_stream(stream:IO,**kwargs)-instance-method","name":"csvsave_stream","doc":"Save image to csv\n\n```\nin.csvsave_stream(stream, {separator: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*separator* : String - Separator characters\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to csv

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1191,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1191"},"def":{"name":"csvsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ncsvsave_target(target, **kwargs)\n"}},{"html_id":"csvsave_target(target:Target,**kwargs)-instance-method","name":"csvsave_target","doc":"Save image to csv\n\n```\nin.csvsave_target(target, {separator: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*separator* : String - Separator characters\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to csv

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1165,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1165"},"def":{"name":"csvsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"csvsave_target\", options, target)\n"}},{"html_id":"de00(right:Image)-instance-method","name":"de00","doc":"Calculate de00\n\n```\n# out_ = left.de00(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate de00

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1214,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1214"},"def":{"name":"de00","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"de00\", right)).as(Type)).as_image"}},{"html_id":"de76(right:Image)-instance-method","name":"de76","doc":"Calculate de76\n\n```\n# out_ = left.de76(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate de76

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1236,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1236"},"def":{"name":"de76","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"de76\", right)).as(Type)).as_image"}},{"html_id":"decmc(right:Image)-instance-method","name":"decmc","doc":"Calculate decmc\n\n```\n# out_ = left.decmc(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate decmc

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1258,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1258"},"def":{"name":"decmc","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"decmc\", right)).as(Type)).as_image"}},{"html_id":"deviate-instance-method","name":"deviate","doc":"Find image standard deviation\n\n```\n# out_ = in.deviate()\n```\n\n\n**Returns**\n\nOutput value\n","summary":"

    Find image standard deviation

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1273,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1273"},"def":{"name":"deviate","visibility":"Public","body":"((self.call(\"deviate\")).as(Type)).as_f64"}},{"html_id":"dilate(mask:Image)-instance-method","name":"dilate","doc":"Dilate with a structuring element.","summary":"

    Dilate with a structuring element.

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/image.cr","line_number":983,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L983"},"def":{"name":"dilate","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"morph(mask, Enums::OperationMorphology::Dilate)"}},{"html_id":"divide(right:Image)-instance-method","name":"divide","doc":"Divide two images\n\n```\n# out_ = left.divide(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Divide two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1295,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1295"},"def":{"name":"divide","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"divide\", right)).as(Type)).as_image"}},{"html_id":"dzsave(filename:String,**kwargs)-instance-method","name":"dzsave","doc":"Save image to deepzoom file\n\n```\nin.dzsave(filename, {basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to deepzoom file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1349,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1349"},"def":{"name":"dzsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"dzsave\", options, filename)\n"}},{"html_id":"dzsave_buffer(**kwargs)-instance-method","name":"dzsave_buffer","doc":"Save image to dz buffer\n\n```\n# buffer = in.dzsave_buffer({basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to dz buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1404,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1404"},"def":{"name":"dzsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"dzsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"dzsave_stream(stream:IO,**kwargs)-instance-method","name":"dzsave_stream","doc":"Save image to deepzoom stream\n\n```\nin.dzsave_stream(stream, {basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to deepzoom stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1512,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1512"},"def":{"name":"dzsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ndzsave_target(target, **kwargs)\n"}},{"html_id":"dzsave_target(target:Target,**kwargs)-instance-method","name":"dzsave_target","doc":"Save image to deepzoom target\n\n```\nin.dzsave_target(target, {basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to deepzoom target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1460,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1460"},"def":{"name":"dzsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"dzsave_target\", options, target)\n"}},{"html_id":"embed(x:Int32,y:Int32,width:Int32,height:Int32,**kwargs)-instance-method","name":"embed","doc":"Embed an image in a larger image\n\n```\n# out_ = in.embed(x, y, width, height, {extend: Enums::Extend, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n**Required**\n\n*x* : Int32 - Left edge of input in output\n\n*y* : Int32 - Top edge of input in output\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n*background* : Array(Float64) - Color for background pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Embed an image in a larger image

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32, width : Int32, height : Int32, **kwargs)","args_html":"(x : Int32, y : Int32, width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1547,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1547"},"def":{"name":"embed","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"embed\", options, x, y, width, height)).as(Type)).as_image\n"}},{"html_id":"erode(mask:Image)-instance-method","name":"erode","doc":"Erode with a structuring element.","summary":"

    Erode with a structuring element.

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/image.cr","line_number":978,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L978"},"def":{"name":"erode","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"morph(mask, Enums::OperationMorphology::Erode)"}},{"html_id":"exp:Image-instance-method","name":"exp","doc":"Returns e ** pixel","summary":"

    Returns e ** pixel

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":943,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L943"},"def":{"name":"exp","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Exp)"}},{"html_id":"exp10:Image-instance-method","name":"exp10","doc":"Returns 10 ** pixel","summary":"

    Returns 10 ** pixel

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":948,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L948"},"def":{"name":"exp10","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Exp10)"}},{"html_id":"extract_area(left:Int32,top:Int32,width:Int32,height:Int32)-instance-method","name":"extract_area","doc":"Extract an area from an image\n\n```\n# out_ = input.extract_area(left, top, width, height)\n```\n\n\nInput Parameters\n\n**Required**\n\n*left* : Int32 - Left edge of extract area\n\n*top* : Int32 - Top edge of extract area\n\n*width* : Int32 - Width of extract area\n\n*height* : Int32 - Height of extract area\n\n\n**Returns**\n\nOutput image\n","summary":"

    Extract an area from an image

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32)","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":1577,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1577"},"def":{"name":"extract_area","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"extract_area\", left, top, width, height)).as(Type)).as_image"}},{"html_id":"extract_band(band:Int32,**kwargs)-instance-method","name":"extract_band","doc":"Extract band from an image\n\n```\n# out_ = in.extract_band(band, {n: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*band* : Int32 - Band to extract\n\n_Optionals_\n\n*n* : Int32 - Number of bands to extract\n\n\n**Returns**\n\nOutput image\n","summary":"

    Extract band from an image

    ","abstract":false,"args":[{"name":"band","external_name":"band","restriction":"Int32"}],"args_string":"(band : Int32, **kwargs)","args_html":"(band : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1603,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1603"},"def":{"name":"extract_band","args":[{"name":"band","external_name":"band","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"extract_band\", options, band)).as(Type)).as_image\n"}},{"html_id":"falsecolour-instance-method","name":"falsecolour","doc":"False-color an image\n\n```\n# out_ = in.falsecolour()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    False-color an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1652,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1652"},"def":{"name":"falsecolour","visibility":"Public","body":"((self.call(\"falsecolour\")).as(Type)).as_image"}},{"html_id":"fastcor(ref:Image)-instance-method","name":"fastcor","doc":"Fast correlation\n\n```\n# out_ = in.fastcor(ref)\n```\n\n\nInput Parameters\n\n**Required**\n\n*ref* : Image - Input reference image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Fast correlation

    ","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"args_string":"(ref : Image)","args_html":"(ref : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1674,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1674"},"def":{"name":"fastcor","args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"fastcor\", ref)).as(Type)).as_image"}},{"html_id":"filename:String-instance-method","name":"filename","doc":"Image filename","summary":"

    Image filename

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10866,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10866"},"def":{"name":"filename","return_type":"String","visibility":"Public","body":"(get(\"filename\")).as_s"}},{"html_id":"fill_nearest-instance-method","name":"fill_nearest","doc":"Fill image zeros with nearest non-zero pixel\n\n```\n# out_, distance = in.fill_nearest()\n```\n\n\n**Returns**\n\nValue of nearest non-zero pixel\n\n_Optionals_\n\n*distance* : Image? - Distance to nearest non-zero pixel\n","summary":"

    Fill image zeros with nearest non-zero pixel

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1693,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1693"},"def":{"name":"fill_nearest","visibility":"Public","body":"optional_output = Optional.new(**{distance: true})\nresults = (self.call(\"fill_nearest\", optional_output)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\ndistance = ((o = opts) && (val = o[\"distance\"]?)) ? val.as_image : nil\n{final_result, distance}\n"}},{"html_id":"find_trim(**kwargs)-instance-method","name":"find_trim","doc":"Search an image for non-edge areas\n\n```\n# output = in.find_trim({threshold: Float64, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*threshold* : Float64 - Object threshold\n\n*background* : Array(Float64) - Color for background pixels\n\n\n**Returns**\n\nLeft edge of image\n\nTop edge of extract area\n\nWidth of extract area\n\nHeight of extract area\n","summary":"

    Search an image for non-edge areas

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1731,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1731"},"def":{"name":"find_trim","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nresults = (self.call(\"find_trim\", options)).as(Array(Type))\n{results[0].as_i32, results[1].as_i32, results[2].as_i32, results[3].as_i32}\n"}},{"html_id":"fitssave(filename:String,**kwargs)-instance-method","name":"fitssave","doc":"Save image to fits file\n\n```\nin.fitssave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to fits file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1877,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1877"},"def":{"name":"fitssave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"fitssave\", options, filename)\n"}},{"html_id":"flatten(**kwargs)-instance-method","name":"flatten","doc":"Flatten alpha out of an image\n\n```\n# out_ = in.flatten({background: Array(Float64), max_alpha: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*background* : Array(Float64) - Background value\n\n*max_alpha* : Float64 - Maximum value of alpha channel\n\n\n**Returns**\n\nOutput image\n","summary":"

    Flatten alpha out of an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1902,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1902"},"def":{"name":"flatten","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"flatten\", options)).as(Type)).as_image\n"}},{"html_id":"flip(direction:Enums::Direction)-instance-method","name":"flip","doc":"Flip an image\n\n```\n# out_ = in.flip(direction)\n```\n\n\nInput Parameters\n\n**Required**\n\n*direction* : Enums::Direction - Direction to flip image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Flip an image

    ","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"args_string":"(direction : Enums::Direction)","args_html":"(direction : Enums::Direction)","location":{"filename":"src/vips/ext/image.cr","line_number":1926,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1926"},"def":{"name":"flip","args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"visibility":"Public","body":"((self.call(\"flip\", direction)).as(Type)).as_image"}},{"html_id":"fliphor-instance-method","name":"fliphor","doc":"Flip horizontally","summary":"

    Flip horizontally

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":993,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L993"},"def":{"name":"fliphor","visibility":"Public","body":"flip(Enums::Direction::Horizontal)"}},{"html_id":"flipver-instance-method","name":"flipver","doc":"Flip vertically","summary":"

    Flip vertically

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":998,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L998"},"def":{"name":"flipver","visibility":"Public","body":"flip(Enums::Direction::Vertical)"}},{"html_id":"float2rad-instance-method","name":"float2rad","doc":"Transform float rgb to radiance coding\n\n```\n# out_ = in.float2rad()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform float rgb to radiance coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1941,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1941"},"def":{"name":"float2rad","visibility":"Public","body":"((self.call(\"float2rad\")).as(Type)).as_image"}},{"html_id":"floor:Image-instance-method","name":"floor","doc":"Return the largest integral value not greater than the argument.","summary":"

    Return the largest integral value not greater than the argument.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1018,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1018"},"def":{"name":"floor","return_type":"Image","visibility":"Public","body":"((self.call(\"round\", Enums::OperationRound::Floor)).as(Type)).as_image"}},{"html_id":"format:Enums::BandFormat-instance-method","name":"format","doc":"Pixel format in image","summary":"

    Pixel format in image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10831,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10831"},"def":{"name":"format","return_type":"Enums::BandFormat","visibility":"Public","body":"(get(\"format\")).as_enum(Enums::BandFormat)"}},{"html_id":"freqmult(mask:Image)-instance-method","name":"freqmult","doc":"Frequency-domain filtering\n\n```\n# out_ = in.freqmult(mask)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input mask image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Frequency-domain filtering

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1989,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1989"},"def":{"name":"freqmult","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"freqmult\", mask)).as(Type)).as_image"}},{"html_id":"fwfft-instance-method","name":"fwfft","doc":"Forward fft\n\n```\n# out_ = in.fwfft()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Forward fft

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2004,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2004"},"def":{"name":"fwfft","visibility":"Public","body":"((self.call(\"fwfft\")).as(Type)).as_image"}},{"html_id":"gamma(**kwargs)-instance-method","name":"gamma","doc":"Gamma an image\n\n```\n# out_ = in.gamma({exponent: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*exponent* : Float64 - Gamma factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Gamma an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2026,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2026"},"def":{"name":"gamma","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gamma\", options)).as(Type)).as_image\n"}},{"html_id":"gaussblur(sigma:Float64,**kwargs)-instance-method","name":"gaussblur","doc":"Gaussian blur\n\n```\n# out_ = in.gaussblur(sigma, {min_ampl: Float64, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sigma* : Float64 - Sigma of Gaussian\n\n_Optionals_\n\n*min_ampl* : Float64 - Minimum amplitude of Gaussian\n\n*precision* : Enums::Precision - Convolve with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Gaussian blur

    ","abstract":false,"args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"}],"args_string":"(sigma : Float64, **kwargs)","args_html":"(sigma : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2056,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2056"},"def":{"name":"gaussblur","args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gaussblur\", options, sigma)).as(Type)).as_image\n"}},{"html_id":"get(name:String)-instance-method","name":"get","doc":"Get a metadata item from an image. Crystal types are constructed\nautomatically from the `GValue`, if possible.\n\nFor example, you can read the ICC profile from an image like this:\n\n```\nprofile = image.get \"icc-profile-data\"\n```\n\nand profile will be an array containing the profile.","summary":"

    Get a metadata item from an image.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/image.cr","line_number":588,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L588"},"def":{"name":"get","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"if (name == \"scale \") && (!(contains(\"scale\")))\n return Type.new(1.0)\nend\nif (name == \"offset\") && (!(contains(\"offset\")))\n return Type.new(0.0)\nend\nif Vips.at_least_libvips?(8, 5)\nelse\n if get_typeof(name: name) != 0\n return super(name)\n end\nend\ngv_copy = GValue.new\nif (LibVips.vips_image_get(self, name, gv_copy)) != 0\n raise(VipsException.new(\"unable to get #{name}\"))\nend\ngv = GValue.new(gv_copy)\ngv.get\n"}},{"html_id":"get_fields-instance-method","name":"get_fields","doc":"Get the names of all fields on an image. Use this to loop over all\nimage metadata.","summary":"

    Get the names of all fields on an image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":605,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L605"},"def":{"name":"get_fields","visibility":"Public","body":"names = Array(String).new\nif Vips.at_least_libvips?(8, 5)\nelse\n return names\nend\nptr = LibVips.vips_image_get_fields(self)\naptr = ptr\nwhile (p = ptr.value)\n names << (String.new(p))\n LibVips.g_free(p)\n ptr = ptr + 1\nend\nLibVips.g_free(aptr)\nnames\n"}},{"html_id":"get_typeof(nam:String)-instance-method","name":"get_typeof","doc":"Get the GType of a GObject property","summary":"

    Get the GType of a GObject property

    ","abstract":false,"args":[{"name":"nam","external_name":"nam","restriction":"String"}],"args_string":"(nam : String)","args_html":"(nam : String)","location":{"filename":"src/vips/image.cr","line_number":562,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L562"},"def":{"name":"get_typeof","args":[{"name":"nam","external_name":"nam","restriction":"String"}],"visibility":"Public","body":"if Vips.at_least_libvips?(8, 5)\nelse\n gtype = super(nam)\n if gtype.nil?\n else\n return gtype\n end\nend\nLibVips.vips_image_get_typeof(self, nam)\n"}},{"html_id":"getpoint(x:Int32,y:Int32)-instance-method","name":"getpoint","doc":"Read a point from an image\n\n```\n# out_array = in.getpoint(x, y)\n```\n\n\nInput Parameters\n\n**Required**\n\n*x* : Int32 - Point to read\n\n*y* : Int32 - Point to read\n\n\n**Returns**\n\nArray of output values\n","summary":"

    Read a point from an image

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32)","args_html":"(x : Int32, y : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":2148,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2148"},"def":{"name":"getpoint","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"getpoint\", x, y)).as(Type)).as_a64"}},{"html_id":"gifsave(filename:String,**kwargs)-instance-method","name":"gifsave","doc":"Save as gif\n\n```\nin.gifsave(filename, {dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as gif

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2363,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2363"},"def":{"name":"gifsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"gifsave\", options, filename)\n"}},{"html_id":"gifsave_buffer(**kwargs)-instance-method","name":"gifsave_buffer","doc":"Save as gif\n\n```\n# buffer = in.gifsave_buffer({dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save as gif

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2404,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2404"},"def":{"name":"gifsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gifsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"gifsave_stream(stream:IO,**kwargs)-instance-method","name":"gifsave_stream","doc":"Save as gif\n\n```\nin.gifsave_stream(stream, {dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save as gif

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2484,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2484"},"def":{"name":"gifsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ngifsave_target(target, **kwargs)\n"}},{"html_id":"gifsave_target(target:Target,**kwargs)-instance-method","name":"gifsave_target","doc":"Save as gif\n\n```\nin.gifsave_target(target, {dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as gif

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2446,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2446"},"def":{"name":"gifsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"gifsave_target\", options, target)\n"}},{"html_id":"globalbalance(**kwargs)-instance-method","name":"globalbalance","doc":"Global balance an image mosaic\n\n```\n# out_ = in.globalbalance({gamma: Float64, int_output: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*gamma* : Float64 - Image gamma\n\n*int_output* : Bool - Integer output\n\n\n**Returns**\n\nOutput image\n","summary":"

    Global balance an image mosaic

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2509,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2509"},"def":{"name":"globalbalance","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"globalbalance\", options)).as(Type)).as_image\n"}},{"html_id":"gravity(direction:Enums::CompassDirection,width:Int32,height:Int32,**kwargs)-instance-method","name":"gravity","doc":"Place an image within a larger image with a certain gravity\n\n```\n# out_ = in.gravity(direction, width, height, {extend: Enums::Extend, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n**Required**\n\n*direction* : Enums::CompassDirection - Direction to place image within width/height\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n*background* : Array(Float64) - Color for background pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Place an image within a larger image with a certain gravity

    ","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"Enums::CompassDirection"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(direction : Enums::CompassDirection, width : Int32, height : Int32, **kwargs)","args_html":"(direction : Enums::CompassDirection, width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2543,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2543"},"def":{"name":"gravity","args":[{"name":"direction","external_name":"direction","restriction":"Enums::CompassDirection"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gravity\", options, direction, width, height)).as(Type)).as_image\n"}},{"html_id":"grid(tile_height:Int32,across:Int32,down:Int32)-instance-method","name":"grid","doc":"Grid an image\n\n```\n# out_ = in.grid(tile_height, across, down)\n```\n\n\nInput Parameters\n\n**Required**\n\n*tile_height* : Int32 - Chop into tiles this high\n\n*across* : Int32 - Number of tiles across\n\n*down* : Int32 - Number of tiles down\n\n\n**Returns**\n\nOutput image\n","summary":"

    Grid an image

    ","abstract":false,"args":[{"name":"tile_height","external_name":"tile_height","restriction":"Int32"},{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"args_string":"(tile_height : Int32, across : Int32, down : Int32)","args_html":"(tile_height : Int32, across : Int32, down : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":2601,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2601"},"def":{"name":"grid","args":[{"name":"tile_height","external_name":"tile_height","restriction":"Int32"},{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"grid\", tile_height, across, down)).as(Type)).as_image"}},{"html_id":"has_alpha?:Bool-instance-method","name":"has_alpha?","doc":"Does this image have an alpha channel?","summary":"

    Does this image have an alpha channel?

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1189,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1189"},"def":{"name":"has_alpha?","return_type":"Bool","visibility":"Public","body":"if Vips.at_least_libvips?(8, 5)\n return (LibVips.vips_image_hasalpha(self)) != 0\nend\n((bands == 2) || ((bands == 4) && (interpretation != Enums::Interpretation::Cmyk))) || bands > 4\n"}},{"html_id":"height:Int32-instance-method","name":"height","doc":"Image height in pixels","summary":"

    Image height in pixels

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10821,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10821"},"def":{"name":"height","return_type":"Int32","visibility":"Public","body":"(get(\"height\")).as_i32"}},{"html_id":"hist_cum-instance-method","name":"hist_cum","doc":"Form cumulative histogram\n\n```\n# out_ = in.hist_cum()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Form cumulative histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2807,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2807"},"def":{"name":"hist_cum","visibility":"Public","body":"((self.call(\"hist_cum\")).as(Type)).as_image"}},{"html_id":"hist_entropy-instance-method","name":"hist_entropy","doc":"Estimate image entropy\n\n```\n# out_ = in.hist_entropy()\n```\n\n\n**Returns**\n\nOutput value\n","summary":"

    Estimate image entropy

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2822,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2822"},"def":{"name":"hist_entropy","visibility":"Public","body":"((self.call(\"hist_entropy\")).as(Type)).as_f64"}},{"html_id":"hist_equal(**kwargs)-instance-method","name":"hist_equal","doc":"Histogram equalisation\n\n```\n# out_ = in.hist_equal({band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*band* : Int32 - Equalise with this band\n\n\n**Returns**\n\nOutput image\n","summary":"

    Histogram equalisation

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2844,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2844"},"def":{"name":"hist_equal","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_equal\", options)).as(Type)).as_image\n"}},{"html_id":"hist_find(**kwargs)-instance-method","name":"hist_find","doc":"Find image histogram\n\n```\n# out_ = in.hist_find({band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*band* : Int32 - Find histogram of band\n\n\n**Returns**\n\nOutput histogram\n","summary":"

    Find image histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2868,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2868"},"def":{"name":"hist_find","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_find\", options)).as(Type)).as_image\n"}},{"html_id":"hist_find_indexed(index:Image,**kwargs)-instance-method","name":"hist_find_indexed","doc":"Find indexed image histogram\n\n```\n# out_ = in.hist_find_indexed(index, {combine: Enums::Combine})\n```\n\n\nInput Parameters\n\n**Required**\n\n*index* : Image - Index image\n\n_Optionals_\n\n*combine* : Enums::Combine - Combine bins like this\n\n\n**Returns**\n\nOutput histogram\n","summary":"

    Find indexed image histogram

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Image"}],"args_string":"(index : Image, **kwargs)","args_html":"(index : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2896,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2896"},"def":{"name":"hist_find_indexed","args":[{"name":"index","external_name":"index","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_find_indexed\", options, index)).as(Type)).as_image\n"}},{"html_id":"hist_find_ndim(**kwargs)-instance-method","name":"hist_find_ndim","doc":"Find n-dimensional image histogram\n\n```\n# out_ = in.hist_find_ndim({bins: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*bins* : Int32 - Number of bins in each dimension\n\n\n**Returns**\n\nOutput histogram\n","summary":"

    Find n-dimensional image histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2920,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2920"},"def":{"name":"hist_find_ndim","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_find_ndim\", options)).as(Type)).as_image\n"}},{"html_id":"hist_ismonotonic-instance-method","name":"hist_ismonotonic","doc":"Test for monotonicity\n\n```\n# monotonic = in.hist_ismonotonic()\n```\n\n\n**Returns**\n\ntrue if in is monotonic\n","summary":"

    Test for monotonicity

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2937,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2937"},"def":{"name":"hist_ismonotonic","visibility":"Public","body":"((self.call(\"hist_ismonotonic\")).as(Type)).as_b"}},{"html_id":"hist_local(width:Int32,height:Int32,**kwargs)-instance-method","name":"hist_local","doc":"Local histogram equalisation\n\n```\n# out_ = in.hist_local(width, height, {max_slope: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Window width in pixels\n\n*height* : Int32 - Window height in pixels\n\n_Optionals_\n\n*max_slope* : Int32 - Maximum slope (CLAHE)\n\n\n**Returns**\n\nOutput image\n","summary":"

    Local histogram equalisation

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2965,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2965"},"def":{"name":"hist_local","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_local\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"hist_match(ref:Image)-instance-method","name":"hist_match","doc":"Match two histograms\n\n```\n# out_ = in.hist_match(ref)\n```\n\n\nInput Parameters\n\n**Required**\n\n*ref* : Image - Reference histogram\n\n\n**Returns**\n\nOutput image\n","summary":"

    Match two histograms

    ","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"args_string":"(ref : Image)","args_html":"(ref : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":2989,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2989"},"def":{"name":"hist_match","args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"hist_match\", ref)).as(Type)).as_image"}},{"html_id":"hist_norm-instance-method","name":"hist_norm","doc":"Normalise histogram\n\n```\n# out_ = in.hist_norm()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Normalise histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3004,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3004"},"def":{"name":"hist_norm","visibility":"Public","body":"((self.call(\"hist_norm\")).as(Type)).as_image"}},{"html_id":"hist_plot-instance-method","name":"hist_plot","doc":"Plot histogram\n\n```\n# out_ = in.hist_plot()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Plot histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3019,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3019"},"def":{"name":"hist_plot","visibility":"Public","body":"((self.call(\"hist_plot\")).as(Type)).as_image"}},{"html_id":"hough_circle(**kwargs)-instance-method","name":"hough_circle","doc":"Find hough circle transform\n\n```\n# out_ = in.hough_circle({scale: Int32, min_radius: Int32, max_radius: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*scale* : Int32 - Scale down dimensions by this factor\n\n*min_radius* : Int32 - Smallest radius to search for\n\n*max_radius* : Int32 - Largest radius to search for\n\n\n**Returns**\n\nOutput image\n","summary":"

    Find hough circle transform

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3045,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3045"},"def":{"name":"hough_circle","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hough_circle\", options)).as(Type)).as_image\n"}},{"html_id":"hough_line(**kwargs)-instance-method","name":"hough_line","doc":"Find hough line transform\n\n```\n# out_ = in.hough_line({width: Int32, height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*width* : Int32 - Horizontal size of parameter space\n\n*height* : Int32 - Vertical size of parameter space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Find hough line transform

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3071,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3071"},"def":{"name":"hough_line","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hough_line\", options)).as(Type)).as_image\n"}},{"html_id":"hsv2srgb-instance-method","name":"hsv2srgb","doc":"Transform hsv to srgb\n\n```\n# out_ = in.hsv2srgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform hsv to srgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3088,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3088"},"def":{"name":"hsv2srgb","visibility":"Public","body":"((self.call(\"hsv2srgb\")).as(Type)).as_image"}},{"html_id":"icc_export(**kwargs)-instance-method","name":"icc_export","doc":"Output to device with icc profile\n\n```\n# out_ = in.icc_export({pcs: Enums::PCS, intent: Enums::Intent, black_point_compensation: Bool, output_profile: String, depth: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*pcs* : Enums::PCS - Set Profile Connection Space\n\n*intent* : Enums::Intent - Rendering intent\n\n*black_point_compensation* : Bool - Enable black point compensation\n\n*output_profile* : String - Filename to load output profile from\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Output to device with icc profile

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3118,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3118"},"def":{"name":"icc_export","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"icc_export\", options)).as(Type)).as_image\n"}},{"html_id":"icc_import(**kwargs)-instance-method","name":"icc_import","doc":"Import from device with icc profile\n\n```\n# out_ = in.icc_import({pcs: Enums::PCS, intent: Enums::Intent, black_point_compensation: Bool, embedded: Bool, input_profile: String})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*pcs* : Enums::PCS - Set Profile Connection Space\n\n*intent* : Enums::Intent - Rendering intent\n\n*black_point_compensation* : Bool - Enable black point compensation\n\n*embedded* : Bool - Use embedded input profile, if available\n\n*input_profile* : String - Filename to load input profile from\n\n\n**Returns**\n\nOutput image\n","summary":"

    Import from device with icc profile

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3150,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3150"},"def":{"name":"icc_import","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"icc_import\", options)).as(Type)).as_image\n"}},{"html_id":"icc_transform(output_profile:String,**kwargs)-instance-method","name":"icc_transform","doc":"Transform between devices with icc profiles\n\n```\n# out_ = in.icc_transform(output_profile, {pcs: Enums::PCS, intent: Enums::Intent, black_point_compensation: Bool, embedded: Bool, input_profile: String, depth: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*output_profile* : String - Filename to load output profile from\n\n_Optionals_\n\n*pcs* : Enums::PCS - Set Profile Connection Space\n\n*intent* : Enums::Intent - Rendering intent\n\n*black_point_compensation* : Bool - Enable black point compensation\n\n*embedded* : Bool - Use embedded input profile, if available\n\n*input_profile* : String - Filename to load input profile from\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform between devices with icc profiles

    ","abstract":false,"args":[{"name":"output_profile","external_name":"output_profile","restriction":"String"}],"args_string":"(output_profile : String, **kwargs)","args_html":"(output_profile : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3188,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3188"},"def":{"name":"icc_transform","args":[{"name":"output_profile","external_name":"output_profile","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"icc_transform\", options, output_profile)).as(Type)).as_image\n"}},{"html_id":"ifthenelse(in1,in2,blend=false)-instance-method","name":"ifthenelse","doc":"ifthenelse an image\nSelect pixels from `th` if `self` is non-zero and from `el` if\n`self` is zero. Use the `:blend` option to fade smoothly\nbetween `th` and `el`.\n\n*in1 : Image | Float64 | Array(Float64)* true values\n\n*in2 : Image | Float64 | Array(Float64)* false values\n\n*blend : Bool* (false) Blend smoothly between *in1* and *in2*\n\nReturns merged `Image`","summary":"

    ifthenelse an image Select pixels from th if self is non-zero and from el if self is zero.

    ","abstract":false,"args":[{"name":"in1","external_name":"in1","restriction":""},{"name":"in2","external_name":"in2","restriction":""},{"name":"blend","default_value":"false","external_name":"blend","restriction":""}],"args_string":"(in1, in2, blend = false)","args_html":"(in1, in2, blend = false)","location":{"filename":"src/vips/image.cr","line_number":662,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L662"},"def":{"name":"ifthenelse","args":[{"name":"in1","external_name":"in1","restriction":""},{"name":"in2","external_name":"in2","restriction":""},{"name":"blend","default_value":"false","external_name":"blend","restriction":""}],"visibility":"Public","body":"match_image = in1.is_a?(Image) ? in1.as(Image) : (in2.is_a?(Image) ? in2.as(Image) : self)\nif in1.is_a?(Image)\nelse\n in1 = Image.imageize(match_image, in1.not_nil!)\nend\nif in2.is_a?(Image)\nelse\n in2 = Image.imageize(match_image, in2.not_nil!)\nend\noptions = Optional.new(**{blend: blend})\n((call(\"ifthenelse\", options, in1, in2)).as(Type)).as_image\n"}},{"html_id":"imag:Image-instance-method","name":"imag","doc":"Return the imaginary part of a complex image.","summary":"

    Return the imaginary part of a complex image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":853,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L853"},"def":{"name":"imag","return_type":"Image","visibility":"Public","body":"complexget(Enums::OperationComplexget::Imag)"}},{"html_id":"insert(sub:Image,x:Int32,y:Int32,**kwargs)-instance-method","name":"insert","doc":"Insert image @sub into @main at @x, @y\n\n```\n# out_ = main.insert(sub, x, y, {expand: Bool, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sub* : Image - Sub-image to insert into main image\n\n*x* : Int32 - Left edge of sub in main\n\n*y* : Int32 - Top edge of sub in main\n\n_Optionals_\n\n*expand* : Bool - Expand output to hold all of both inputs\n\n*background* : Array(Float64) - Color for new pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Insert image @sub into @main at @x, @y

    ","abstract":false,"args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(sub : Image, x : Int32, y : Int32, **kwargs)","args_html":"(sub : Image, x : Int32, y : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3250,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3250"},"def":{"name":"insert","args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"insert\", options, sub, x, y)).as(Type)).as_image\n"}},{"html_id":"interpretation:Enums::Interpretation-instance-method","name":"interpretation","doc":"Pixel interpretation","summary":"

    Pixel interpretation

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10841,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10841"},"def":{"name":"interpretation","return_type":"Enums::Interpretation","visibility":"Public","body":"(get(\"interpretation\")).as_enum(Enums::Interpretation)"}},{"html_id":"invert-instance-method","name":"invert","doc":"Invert an image\n\n```\n# out_ = in.invert()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Invert an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3267,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3267"},"def":{"name":"invert","visibility":"Public","body":"((self.call(\"invert\")).as(Type)).as_image"}},{"html_id":"invertlut(**kwargs)-instance-method","name":"invertlut","doc":"Build an inverted look-up table\n\n```\n# out_ = in.invertlut({size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*size* : Int32 - LUT size to generate\n\n\n**Returns**\n\nOutput image\n","summary":"

    Build an inverted look-up table

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3289,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3289"},"def":{"name":"invertlut","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"invertlut\", options)).as(Type)).as_image\n"}},{"html_id":"invfft(**kwargs)-instance-method","name":"invfft","doc":"Inverse fft\n\n```\n# out_ = in.invfft({real: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*real* : Bool - Output only the real part of the transform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Inverse fft

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3313,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3313"},"def":{"name":"invfft","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"invfft\", options)).as(Type)).as_image\n"}},{"html_id":"join(in2:Image,direction:Enums::Direction,**kwargs)-instance-method","name":"join","doc":"Join a pair of images\n\n```\n# out_ = in1.join(in2, direction, {expand: Bool, shim: Int32, background: Array(Float64), align: Enums::Align})\n```\n\n\nInput Parameters\n\n**Required**\n\n*in2* : Image - Second input image\n\n*direction* : Enums::Direction - Join left-right or up-down\n\n_Optionals_\n\n*expand* : Bool - Expand output to hold all of both inputs\n\n*shim* : Int32 - Pixels between images\n\n*background* : Array(Float64) - Colour for new pixels\n\n*align* : Enums::Align - Align on the low, centre or high coordinate edge\n\n\n**Returns**\n\nOutput image\n","summary":"

    Join a pair of images

    ","abstract":false,"args":[{"name":"in2","external_name":"in2","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"args_string":"(in2 : Image, direction : Enums::Direction, **kwargs)","args_html":"(in2 : Image, direction : Enums::Direction, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3349,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3349"},"def":{"name":"join","args":[{"name":"in2","external_name":"in2","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"join\", options, in2, direction)).as(Type)).as_image\n"}},{"html_id":"jp2ksave(filename:String,**kwargs)-instance-method","name":"jp2ksave","doc":"Save image in jpeg2000 format\n\n```\nin.jp2ksave(filename, {tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3554,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3554"},"def":{"name":"jp2ksave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jp2ksave\", options, filename)\n"}},{"html_id":"jp2ksave_buffer(**kwargs)-instance-method","name":"jp2ksave_buffer","doc":"Save image in jpeg2000 format\n\n```\n# buffer = in.jp2ksave_buffer({tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3591,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3591"},"def":{"name":"jp2ksave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"jp2ksave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"jp2ksave_stream(stream:IO,**kwargs)-instance-method","name":"jp2ksave_stream","doc":"Save image in jpeg2000 format\n\n```\nin.jp2ksave_stream(stream, {tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3663,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3663"},"def":{"name":"jp2ksave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\njp2ksave_target(target, **kwargs)\n"}},{"html_id":"jp2ksave_target(target:Target,**kwargs)-instance-method","name":"jp2ksave_target","doc":"Save image in jpeg2000 format\n\n```\nin.jp2ksave_target(target, {tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3629,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3629"},"def":{"name":"jp2ksave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jp2ksave_target\", options, target)\n"}},{"html_id":"jpegsave(filename:String,**kwargs)-instance-method","name":"jpegsave","doc":"Save image to jpeg file\n\n```\nin.jpegsave(filename, {q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to jpeg file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3893,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3893"},"def":{"name":"jpegsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jpegsave\", options, filename)\n"}},{"html_id":"jpegsave_buffer(**kwargs)-instance-method","name":"jpegsave_buffer","doc":"Save image to jpeg buffer\n\n```\n# buffer = in.jpegsave_buffer({q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to jpeg buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3940,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3940"},"def":{"name":"jpegsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"jpegsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"jpegsave_mime(**kwargs)-instance-method","name":"jpegsave_mime","doc":"Save image to jpeg mime\n\n```\nin.jpegsave_mime({q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to jpeg mime

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3984,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3984"},"def":{"name":"jpegsave_mime","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jpegsave_mime\", options)\n"}},{"html_id":"jpegsave_stream(stream:IO,**kwargs)-instance-method","name":"jpegsave_stream","doc":"Save image to jpeg stream\n\n```\nin.jpegsave_stream(stream, {q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to jpeg stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4075,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4075"},"def":{"name":"jpegsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\njpegsave_target(target, **kwargs)\n"}},{"html_id":"jpegsave_target(target:Target,**kwargs)-instance-method","name":"jpegsave_target","doc":"Save image to jpeg target\n\n```\nin.jpegsave_target(target, {q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to jpeg target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4031,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4031"},"def":{"name":"jpegsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jpegsave_target\", options, target)\n"}},{"html_id":"jxlsave(filename:String,**kwargs)-instance-method","name":"jxlsave","doc":"Save image in jpeg-xl format\n\n```\nin.jxlsave(filename, {tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4271,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4271"},"def":{"name":"jxlsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jxlsave\", options, filename)\n"}},{"html_id":"jxlsave_buffer(**kwargs)-instance-method","name":"jxlsave_buffer","doc":"Save image in jpeg-xl format\n\n```\n# buffer = in.jxlsave_buffer({tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4308,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4308"},"def":{"name":"jxlsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"jxlsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"jxlsave_stream(stream:IO,**kwargs)-instance-method","name":"jxlsave_stream","doc":"Save image in jpeg-xl format\n\n```\nin.jxlsave_stream(stream, {tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4380,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4380"},"def":{"name":"jxlsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\njxlsave_target(target, **kwargs)\n"}},{"html_id":"jxlsave_target(target:Target,**kwargs)-instance-method","name":"jxlsave_target","doc":"Save image in jpeg-xl format\n\n```\nin.jxlsave_target(target, {tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4346,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4346"},"def":{"name":"jxlsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jxlsave_target\", options, target)\n"}},{"html_id":"killed?-instance-method","name":"killed?","doc":"If image has been killed see `set_kill`, set an error message,\nclear the `kill` flag and return true. Otherwise return false\n\nHandy for loops which need to run sets of threads which can fail.\nAt least libvips 8.8 is needed. If this version requirement is not met,\nit will always return false.","summary":"

    If image has been killed see #set_kill, set an error message, clear the kill flag and return true.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1216,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1216"},"def":{"name":"killed?","visibility":"Public","body":"if Vips.at_least_libvips?(8, 8)\nelse\n return false\nend\nLibVips.vips_image_iskilled(self)\n"}},{"html_id":"lab2labq-instance-method","name":"lab2labq","doc":"Transform float lab to labq coding\n\n```\n# out_ = in.lab2labq()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform float lab to labq coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4396,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4396"},"def":{"name":"lab2labq","visibility":"Public","body":"((self.call(\"lab2labq\")).as(Type)).as_image"}},{"html_id":"lab2labs-instance-method","name":"lab2labs","doc":"Transform float lab to signed short\n\n```\n# out_ = in.lab2labs()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform float lab to signed short

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4411,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4411"},"def":{"name":"lab2labs","visibility":"Public","body":"((self.call(\"lab2labs\")).as(Type)).as_image"}},{"html_id":"lab2lch-instance-method","name":"lab2lch","doc":"Transform lab to lch\n\n```\n# out_ = in.lab2lch()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lab to lch

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4426,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4426"},"def":{"name":"lab2lch","visibility":"Public","body":"((self.call(\"lab2lch\")).as(Type)).as_image"}},{"html_id":"lab2xyz(**kwargs)-instance-method","name":"lab2xyz","doc":"Transform cielab to xyz\n\n```\n# out_ = in.lab2xyz({temp: Array(Float64)})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*temp* : Array(Float64) - Color temperature\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform cielab to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4448,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4448"},"def":{"name":"lab2xyz","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"lab2xyz\", options)).as(Type)).as_image\n"}},{"html_id":"labelregions-instance-method","name":"labelregions","doc":"Label regions in an image\n\n```\n# mask, segments = in.labelregions()\n```\n\n\n**Returns**\n\nMask of region labels\n\n_Optionals_\n\n*segments* : Int32? - Number of discrete contiguous regions\n","summary":"

    Label regions in an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4469,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4469"},"def":{"name":"labelregions","visibility":"Public","body":"optional_output = Optional.new(**{segments: true})\nresults = (self.call(\"labelregions\", optional_output)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nsegments = ((o = opts) && (val = o[\"segments\"]?)) ? val.as_i32 : nil\n{final_result, segments}\n"}},{"html_id":"labq2lab-instance-method","name":"labq2lab","doc":"Unpack a labq image to float lab\n\n```\n# out_ = in.labq2lab()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpack a labq image to float lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4492,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4492"},"def":{"name":"labq2lab","visibility":"Public","body":"((self.call(\"labq2lab\")).as(Type)).as_image"}},{"html_id":"labq2labs-instance-method","name":"labq2labs","doc":"Unpack a labq image to short lab\n\n```\n# out_ = in.labq2labs()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpack a labq image to short lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4507,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4507"},"def":{"name":"labq2labs","visibility":"Public","body":"((self.call(\"labq2labs\")).as(Type)).as_image"}},{"html_id":"labq2srgb-instance-method","name":"labq2srgb","doc":"Convert a labq image to srgb\n\n```\n# out_ = in.labq2srgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert a labq image to srgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4522,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4522"},"def":{"name":"labq2srgb","visibility":"Public","body":"((self.call(\"labq2srgb\")).as(Type)).as_image"}},{"html_id":"labs2lab-instance-method","name":"labs2lab","doc":"Transform signed short lab to float\n\n```\n# out_ = in.labs2lab()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform signed short lab to float

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4537,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4537"},"def":{"name":"labs2lab","visibility":"Public","body":"((self.call(\"labs2lab\")).as(Type)).as_image"}},{"html_id":"labs2labq-instance-method","name":"labs2labq","doc":"Transform short lab to labq coding\n\n```\n# out_ = in.labs2labq()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform short lab to labq coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4552,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4552"},"def":{"name":"labs2labq","visibility":"Public","body":"((self.call(\"labs2labq\")).as(Type)).as_image"}},{"html_id":"lch2cmc-instance-method","name":"lch2cmc","doc":"Transform lch to cmc\n\n```\n# out_ = in.lch2cmc()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lch to cmc

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4567,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4567"},"def":{"name":"lch2cmc","visibility":"Public","body":"((self.call(\"lch2cmc\")).as(Type)).as_image"}},{"html_id":"lch2lab-instance-method","name":"lch2lab","doc":"Transform lch to lab\n\n```\n# out_ = in.lch2lab()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lch to lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4582,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4582"},"def":{"name":"lch2lab","visibility":"Public","body":"((self.call(\"lch2lab\")).as(Type)).as_image"}},{"html_id":"linear(a:Array(Float64),b:Array(Float64),**kwargs)-instance-method","name":"linear","doc":"Calculate (a * in + b)\n\n```\n# out_ = in.linear(a, b, {uchar: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*a* : Array(Float64) - Multiply by this\n\n*b* : Array(Float64) - Add this\n\n_Optionals_\n\n*uchar* : Bool - Output should be uchar\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate (a * in + b)

    ","abstract":false,"args":[{"name":"a","external_name":"a","restriction":"Array(Float64)"},{"name":"b","external_name":"b","restriction":"Array(Float64)"}],"args_string":"(a : Array(Float64), b : Array(Float64), **kwargs)","args_html":"(a : Array(Float64), b : Array(Float64), **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4610,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4610"},"def":{"name":"linear","args":[{"name":"a","external_name":"a","restriction":"Array(Float64)"},{"name":"b","external_name":"b","restriction":"Array(Float64)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"linear\", options, a, b)).as(Type)).as_image\n"}},{"html_id":"linecache(**kwargs)-instance-method","name":"linecache","doc":"Cache an image as a set of lines\n\n```\n# out_ = in.linecache({tile_height: Int32, access: Enums::Access, threaded: Bool, persistent: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_height* : Int32 - Tile height in pixels\n\n*access* : Enums::Access - Expected access pattern\n\n*threaded* : Bool - Allow threaded access\n\n*persistent* : Bool - Keep cache between evaluations\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cache an image as a set of lines

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4640,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4640"},"def":{"name":"linecache","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"linecache\", options)).as(Type)).as_image\n"}},{"html_id":"log:Image-instance-method","name":"log","doc":"Return the natural log of an image","summary":"

    Return the natural log of an image

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":933,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L933"},"def":{"name":"log","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Log)"}},{"html_id":"log10:Image-instance-method","name":"log10","doc":"Return the log base 10 of an image","summary":"

    Return the log base 10 of an image

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":938,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L938"},"def":{"name":"log10","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Log10)"}},{"html_id":"magicksave(filename:String,**kwargs)-instance-method","name":"magicksave","doc":"Save file with imagemagick\n\n```\nin.magicksave(filename, {format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save file with imagemagick

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4808,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4808"},"def":{"name":"magicksave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"magicksave\", options, filename)\n"}},{"html_id":"magicksave_bmp(filename:String,**kwargs)-instance-method","name":"magicksave_bmp","doc":"Save bmp image with imagemagick\n\n```\nin.magicksave_bmp(filename, {format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save bmp image with imagemagick

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4845,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4845"},"def":{"name":"magicksave_bmp","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"magicksave_bmp\", options, filename)\n"}},{"html_id":"magicksave_bmp_buffer(**kwargs)-instance-method","name":"magicksave_bmp_buffer","doc":"Save bmp image to magick buffer\n\n```\n# buffer = in.magicksave_bmp_buffer({format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save bmp image to magick buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4882,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4882"},"def":{"name":"magicksave_bmp_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"magicksave_bmp_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"magicksave_buffer(**kwargs)-instance-method","name":"magicksave_buffer","doc":"Save image to magick buffer\n\n```\n# buffer = in.magicksave_buffer({format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to magick buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4920,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4920"},"def":{"name":"magicksave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"magicksave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"mapim(index:Image,**kwargs)-instance-method","name":"mapim","doc":"Resample with a map image\n\n```\n# out_ = in.mapim(index, {interpolate: Interpolate, background: Array(Float64), premultiplied: Bool, extend: Enums::Extend})\n```\n\n\nInput Parameters\n\n**Required**\n\n*index* : Image - Index pixels with this\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*background* : Array(Float64) - Background value\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Resample with a map image

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Image"}],"args_string":"(index : Image, **kwargs)","args_html":"(index : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4954,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4954"},"def":{"name":"mapim","args":[{"name":"index","external_name":"index","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"mapim\", options, index)).as(Type)).as_image\n"}},{"html_id":"maplut(lut:Image,**kwargs)-instance-method","name":"maplut","doc":"Map an image though a lut\n\n```\n# out_ = in.maplut(lut, {band: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*lut* : Image - Look-up table image\n\n_Optionals_\n\n*band* : Int32 - Apply one-band lut to this band of in\n\n\n**Returns**\n\nOutput image\n","summary":"

    Map an image though a lut

    ","abstract":false,"args":[{"name":"lut","external_name":"lut","restriction":"Image"}],"args_string":"(lut : Image, **kwargs)","args_html":"(lut : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4982,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4982"},"def":{"name":"maplut","args":[{"name":"lut","external_name":"lut","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"maplut\", options, lut)).as(Type)).as_image\n"}},{"html_id":"match(sec:Image,xr1:Int32,yr1:Int32,xs1:Int32,ys1:Int32,xr2:Int32,yr2:Int32,xs2:Int32,ys2:Int32,**kwargs)-instance-method","name":"match","doc":"First-order match of two images\n\n```\n# out_ = ref.match(sec, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, {hwindow: Int32, harea: Int32, search: Bool, interpolate: Interpolate})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*xr1* : Int32 - Position of first reference tie-point\n\n*yr1* : Int32 - Position of first reference tie-point\n\n*xs1* : Int32 - Position of first secondary tie-point\n\n*ys1* : Int32 - Position of first secondary tie-point\n\n*xr2* : Int32 - Position of second reference tie-point\n\n*yr2* : Int32 - Position of second reference tie-point\n\n*xs2* : Int32 - Position of second secondary tie-point\n\n*ys2* : Int32 - Position of second secondary tie-point\n\n_Optionals_\n\n*hwindow* : Int32 - Half window size\n\n*harea* : Int32 - Half area size\n\n*search* : Bool - Search to improve tie-points\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n\n**Returns**\n\nOutput image\n","summary":"

    First-order match of two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"args_string":"(sec : Image, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","args_html":"(sec : Image, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5448,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5448"},"def":{"name":"match","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"match\", options, sec, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2)).as(Type)).as_image\n"}},{"html_id":"math(math:Enums::OperationMath)-instance-method","name":"math","doc":"Apply a math operation to an image\n\n```\n# out_ = in.math(math)\n```\n\n\nInput Parameters\n\n**Required**\n\n*math* : Enums::OperationMath - Math to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Apply a math operation to an image

    ","abstract":false,"args":[{"name":"math","external_name":"math","restriction":"Enums::OperationMath"}],"args_string":"(math : Enums::OperationMath)","args_html":"(math : Enums::OperationMath)","location":{"filename":"src/vips/ext/image.cr","line_number":5472,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5472"},"def":{"name":"math","args":[{"name":"math","external_name":"math","restriction":"Enums::OperationMath"}],"visibility":"Public","body":"((self.call(\"math\", math)).as(Type)).as_image"}},{"html_id":"math2(right:Image,math2:Enums::OperationMath2)-instance-method","name":"math2","doc":"Binary math operations\n\n```\n# out_ = left.math2(right, math2)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*math2* : Enums::OperationMath2 - Math to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Binary math operations

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"}],"args_string":"(right : Image, math2 : Enums::OperationMath2)","args_html":"(right : Image, math2 : Enums::OperationMath2)","location":{"filename":"src/vips/ext/image.cr","line_number":5496,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5496"},"def":{"name":"math2","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"}],"visibility":"Public","body":"((self.call(\"math2\", right, math2)).as(Type)).as_image"}},{"html_id":"math2_const(math2:Enums::OperationMath2,c:Array(Float64))-instance-method","name":"math2_const","doc":"Binary math operations with a constant\n\n```\n# out_ = in.math2_const(math2, c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*math2* : Enums::OperationMath2 - Math to perform\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Binary math operations with a constant

    ","abstract":false,"args":[{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(math2 : Enums::OperationMath2, c : Array(Float64))","args_html":"(math2 : Enums::OperationMath2, c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":5520,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5520"},"def":{"name":"math2_const","args":[{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"math2_const\", math2, c)).as(Type)).as_image"}},{"html_id":"matrixinvert-instance-method","name":"matrixinvert","doc":"Invert an matrix\n\n```\n# out_ = in.matrixinvert()\n```\n\n\n**Returns**\n\nOutput matrix\n","summary":"

    Invert an matrix

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5578,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5578"},"def":{"name":"matrixinvert","visibility":"Public","body":"((self.call(\"matrixinvert\")).as(Type)).as_image"}},{"html_id":"matrixprint(**kwargs)-instance-method","name":"matrixprint","doc":"Print matrix\n\n```\nin.matrixprint({strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Print matrix

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5716,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5716"},"def":{"name":"matrixprint","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"matrixprint\", options)\n"}},{"html_id":"matrixsave(filename:String,**kwargs)-instance-method","name":"matrixsave","doc":"Save image to matrix\n\n```\nin.matrixsave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to matrix

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5743,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5743"},"def":{"name":"matrixsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"matrixsave\", options, filename)\n"}},{"html_id":"matrixsave_stream(stream:IO,**kwargs)-instance-method","name":"matrixsave_stream","doc":"Save image to matrix\n\n```\nin.matrixsave_stream(stream, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to matrix

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5794,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5794"},"def":{"name":"matrixsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nmatrixsave_target(target, **kwargs)\n"}},{"html_id":"matrixsave_target(target:Target,**kwargs)-instance-method","name":"matrixsave_target","doc":"Save image to matrix\n\n```\nin.matrixsave_target(target, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to matrix

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5770,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5770"},"def":{"name":"matrixsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"matrixsave_target\", options, target)\n"}},{"html_id":"max(**kwargs)-instance-method","name":"max","doc":"Find image maximum\n\n```\n# out_, x, y, out_array, x_array, y_array = in.max({size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*size* : Int32 - Number of maximum values to find\n\n\n**Returns**\n\nOutput value\n\n_Optionals_\n\n*x* : Int32? - Horizontal position of maximum\n\n*y* : Int32? - Vertical position of maximum\n\n*out_array* : Array(Float64)? - Array of output values\n\n*x_array* : Array(Int32)? - Array of horizontal positions\n\n*y_array* : Array(Int32)? - Array of vertical positions\n","summary":"

    Find image maximum

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5829,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5829"},"def":{"name":"max","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"x\"] = true\noptions[\"y\"] = true\noptions[\"out_array\"] = true\noptions[\"x_array\"] = true\noptions[\"y_array\"] = true\nresults = (self.call(\"max\", options)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_f64\nopts = results[1]?.try(&.as_h)\nx = ((o = opts) && (val = o[\"x\"]?)) ? val.as_i32 : nil\ny = ((o = opts) && (val = o[\"y\"]?)) ? val.as_i32 : nil\nout_array = ((o = opts) && (val = o[\"out_array\"]?)) ? val.as_a64 : nil\nx_array = ((o = opts) && (val = o[\"x_array\"]?)) ? val.as_a32 : nil\ny_array = ((o = opts) && (val = o[\"y_array\"]?)) ? val.as_a32 : nil\n{final_result, x, y, out_array, x_array, y_array}\n"}},{"html_id":"maxpos-instance-method","name":"maxpos","doc":"Return the coordinates of the image maximum.","summary":"

    Return the coordinates of the image maximum.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":836,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L836"},"def":{"name":"maxpos","visibility":"Public","body":"v, x, y, _, _, _ = self.max\n{v, x.try(&.to_f) || 0_f64, y.try(&.to_f) || 0_f64}\n"}},{"html_id":"measure(h:Int32,v:Int32,**kwargs)-instance-method","name":"measure","doc":"Measure a set of patches on a color chart\n\n```\n# out_ = in.measure(h, v, {left: Int32, top: Int32, width: Int32, height: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*h* : Int32 - Number of patches across chart\n\n*v* : Int32 - Number of patches down chart\n\n_Optionals_\n\n*left* : Int32 - Left edge of extract area\n\n*top* : Int32 - Top edge of extract area\n\n*width* : Int32 - Width of extract area\n\n*height* : Int32 - Height of extract area\n\n\n**Returns**\n\nOutput array of statistics\n","summary":"

    Measure a set of patches on a color chart

    ","abstract":false,"args":[{"name":"h","external_name":"h","restriction":"Int32"},{"name":"v","external_name":"v","restriction":"Int32"}],"args_string":"(h : Int32, v : Int32, **kwargs)","args_html":"(h : Int32, v : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5880,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5880"},"def":{"name":"measure","args":[{"name":"h","external_name":"h","restriction":"Int32"},{"name":"v","external_name":"v","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"measure\", options, h, v)).as(Type)).as_image\n"}},{"html_id":"median(size=3)-instance-method","name":"median","doc":"size x size median filter.","summary":"

    size x size median filter.

    ","abstract":false,"args":[{"name":"size","default_value":"3","external_name":"size","restriction":""}],"args_string":"(size = 3)","args_html":"(size = 3)","location":{"filename":"src/vips/image.cr","line_number":988,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L988"},"def":{"name":"median","args":[{"name":"size","default_value":"3","external_name":"size","restriction":""}],"visibility":"Public","body":"rank(size, size, (size * size) // 2)"}},{"html_id":"merge(sec:Image,direction:Enums::Direction,dx:Int32,dy:Int32,**kwargs)-instance-method","name":"merge","doc":"Merge two images\n\n```\n# out_ = ref.merge(sec, direction, dx, dy, {mblend: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*direction* : Enums::Direction - Horizontal or vertical merge\n\n*dx* : Int32 - Horizontal displacement from sec to ref\n\n*dy* : Int32 - Vertical displacement from sec to ref\n\n_Optionals_\n\n*mblend* : Int32 - Maximum blend size\n\n\n**Returns**\n\nOutput image\n","summary":"

    Merge two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"dx","external_name":"dx","restriction":"Int32"},{"name":"dy","external_name":"dy","restriction":"Int32"}],"args_string":"(sec : Image, direction : Enums::Direction, dx : Int32, dy : Int32, **kwargs)","args_html":"(sec : Image, direction : Enums::Direction, dx : Int32, dy : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5914,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5914"},"def":{"name":"merge","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"dx","external_name":"dx","restriction":"Int32"},{"name":"dy","external_name":"dy","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"merge\", options, sec, direction, dx, dy)).as(Type)).as_image\n"}},{"html_id":"min(**kwargs)-instance-method","name":"min","doc":"Find image minimum\n\n```\n# out_, x, y, out_array, x_array, y_array = in.min({size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*size* : Int32 - Number of minimum values to find\n\n\n**Returns**\n\nOutput value\n\n_Optionals_\n\n*x* : Int32? - Horizontal position of minimum\n\n*y* : Int32? - Vertical position of minimum\n\n*out_array* : Array(Float64)? - Array of output values\n\n*x_array* : Array(Int32)? - Array of horizontal positions\n\n*y_array* : Array(Int32)? - Array of vertical positions\n","summary":"

    Find image minimum

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5950,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5950"},"def":{"name":"min","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"x\"] = true\noptions[\"y\"] = true\noptions[\"out_array\"] = true\noptions[\"x_array\"] = true\noptions[\"y_array\"] = true\nresults = (self.call(\"min\", options)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_f64\nopts = results[1]?.try(&.as_h)\nx = ((o = opts) && (val = o[\"x\"]?)) ? val.as_i32 : nil\ny = ((o = opts) && (val = o[\"y\"]?)) ? val.as_i32 : nil\nout_array = ((o = opts) && (val = o[\"out_array\"]?)) ? val.as_a64 : nil\nx_array = ((o = opts) && (val = o[\"x_array\"]?)) ? val.as_a32 : nil\ny_array = ((o = opts) && (val = o[\"y_array\"]?)) ? val.as_a32 : nil\n{final_result, x, y, out_array, x_array, y_array}\n"}},{"html_id":"minpos-instance-method","name":"minpos","doc":"Return the coordinates of the image minimum.","summary":"

    Return the coordinates of the image minimum.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":842,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L842"},"def":{"name":"minpos","visibility":"Public","body":"v, x, y, _, _, _ = self.min\n{v, x.try(&.to_f) || 0_f64, y.try(&.to_f) || 0_f64}\n"}},{"html_id":"morph(mask:Image,morph:Enums::OperationMorphology)-instance-method","name":"morph","doc":"Morphology operation\n\n```\n# out_ = in.morph(mask, morph)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n*morph* : Enums::OperationMorphology - Morphological operation to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Morphology operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"morph","external_name":"morph","restriction":"Enums::OperationMorphology"}],"args_string":"(mask : Image, morph : Enums::OperationMorphology)","args_html":"(mask : Image, morph : Enums::OperationMorphology)","location":{"filename":"src/vips/ext/image.cr","line_number":5991,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5991"},"def":{"name":"morph","args":[{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"morph","external_name":"morph","restriction":"Enums::OperationMorphology"}],"visibility":"Public","body":"((self.call(\"morph\", mask, morph)).as(Type)).as_image"}},{"html_id":"mosaic(sec:Image,direction:Enums::Direction,xref:Int32,yref:Int32,xsec:Int32,ysec:Int32,**kwargs)-instance-method","name":"mosaic","doc":"Mosaic two images\n\n```\n# out_, dx0, dy0, scale1, angle1, dy1, dx1 = ref.mosaic(sec, direction, xref, yref, xsec, ysec, {hwindow: Int32, harea: Int32, mblend: Int32, bandno: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*direction* : Enums::Direction - Horizontal or vertical mosaic\n\n*xref* : Int32 - Position of reference tie-point\n\n*yref* : Int32 - Position of reference tie-point\n\n*xsec* : Int32 - Position of secondary tie-point\n\n*ysec* : Int32 - Position of secondary tie-point\n\n_Optionals_\n\n*hwindow* : Int32 - Half window size\n\n*harea* : Int32 - Half area size\n\n*mblend* : Int32 - Maximum blend size\n\n*bandno* : Int32 - Band to search for features on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*dx0* : Int32? - Detected integer offset\n\n*dy0* : Int32? - Detected integer offset\n\n*scale1* : Float64? - Detected scale\n\n*angle1* : Float64? - Detected rotation\n\n*dy1* : Float64? - Detected first-order displacement\n\n*dx1* : Float64? - Detected first-order displacement\n","summary":"

    Mosaic two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xref","external_name":"xref","restriction":"Int32"},{"name":"yref","external_name":"yref","restriction":"Int32"},{"name":"xsec","external_name":"xsec","restriction":"Int32"},{"name":"ysec","external_name":"ysec","restriction":"Int32"}],"args_string":"(sec : Image, direction : Enums::Direction, xref : Int32, yref : Int32, xsec : Int32, ysec : Int32, **kwargs)","args_html":"(sec : Image, direction : Enums::Direction, xref : Int32, yref : Int32, xsec : Int32, ysec : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6047,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6047"},"def":{"name":"mosaic","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xref","external_name":"xref","restriction":"Int32"},{"name":"yref","external_name":"yref","restriction":"Int32"},{"name":"xsec","external_name":"xsec","restriction":"Int32"},{"name":"ysec","external_name":"ysec","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"dx0\"] = true\noptions[\"dy0\"] = true\noptions[\"scale1\"] = true\noptions[\"angle1\"] = true\noptions[\"dy1\"] = true\noptions[\"dx1\"] = true\nresults = (self.call(\"mosaic\", options, sec, direction, xref, yref, xsec, ysec)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\ndx0 = ((o = opts) && (val = o[\"dx0\"]?)) ? val.as_i32 : nil\ndy0 = ((o = opts) && (val = o[\"dy0\"]?)) ? val.as_i32 : nil\nscale1 = ((o = opts) && (val = o[\"scale1\"]?)) ? val.as_f64 : nil\nangle1 = ((o = opts) && (val = o[\"angle1\"]?)) ? val.as_f64 : nil\ndy1 = ((o = opts) && (val = o[\"dy1\"]?)) ? val.as_f64 : nil\ndx1 = ((o = opts) && (val = o[\"dx1\"]?)) ? val.as_f64 : nil\n{final_result, dx0, dy0, scale1, angle1, dy1, dx1}\n"}},{"html_id":"mosaic1(sec:Image,direction:Enums::Direction,xr1:Int32,yr1:Int32,xs1:Int32,ys1:Int32,xr2:Int32,yr2:Int32,xs2:Int32,ys2:Int32,**kwargs)-instance-method","name":"mosaic1","doc":"First-order mosaic of two images\n\n```\n# out_ = ref.mosaic1(sec, direction, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, {hwindow: Int32, harea: Int32, search: Bool, interpolate: Interpolate, mblend: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*direction* : Enums::Direction - Horizontal or vertical mosaic\n\n*xr1* : Int32 - Position of first reference tie-point\n\n*yr1* : Int32 - Position of first reference tie-point\n\n*xs1* : Int32 - Position of first secondary tie-point\n\n*ys1* : Int32 - Position of first secondary tie-point\n\n*xr2* : Int32 - Position of second reference tie-point\n\n*yr2* : Int32 - Position of second reference tie-point\n\n*xs2* : Int32 - Position of second secondary tie-point\n\n*ys2* : Int32 - Position of second secondary tie-point\n\n_Optionals_\n\n*hwindow* : Int32 - Half window size\n\n*harea* : Int32 - Half area size\n\n*search* : Bool - Search to improve tie-points\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*mblend* : Int32 - Maximum blend size\n\n\n**Returns**\n\nOutput image\n","summary":"

    First-order mosaic of two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"args_string":"(sec : Image, direction : Enums::Direction, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","args_html":"(sec : Image, direction : Enums::Direction, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6118,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6118"},"def":{"name":"mosaic1","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"mosaic1\", options, sec, direction, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2)).as(Type)).as_image\n"}},{"html_id":"msb(**kwargs)-instance-method","name":"msb","doc":"Pick most-significant byte from an image\n\n```\n# out_ = in.msb({band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*band* : Int32 - Band to msb\n\n\n**Returns**\n\nOutput image\n","summary":"

    Pick most-significant byte from an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":6142,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6142"},"def":{"name":"msb","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"msb\", options)).as(Type)).as_image\n"}},{"html_id":"multiply(right:Image)-instance-method","name":"multiply","doc":"Multiply two images\n\n```\n# out_ = left.multiply(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Multiply two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":6166,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6166"},"def":{"name":"multiply","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"multiply\", right)).as(Type)).as_image"}},{"html_id":"mutate(&)-instance-method","name":"mutate","doc":"Mutate an image with a block. Inside the block, you can call methods\nwhich modify the image, such as setting or removing metadata, or\nmodifying pixels.\n\nFor example:\n\n```\nimage = image.mutate do |x|\n (0..1).step 0.01 do |i|\n x.draw_line([255.0], (x.width * i).to_i, 0, 0, (x.height * (1 - i)).to_i)\n end\nend\n```\n\nSee `MutableImage`.","summary":"

    Mutate an image with a block.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":637,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L637"},"def":{"name":"mutate","yields":1,"block_arity":1,"visibility":"Public","body":"mutable = MutableImage.new(self)\nyield mutable\nmutable.image\n"}},{"html_id":"new_from_image(value)-instance-method","name":"new_from_image","doc":"A new image is created with the same width, height, format,\ninterpretation, resolution and offset as self, but with every pixel\nset to the specified value.\n\nYou can pass an array to make a many-band image, or a single value to\nmake a one-band image.","summary":"

    A new image is created with the same width, height, format, interpretation, resolution and offset as self, but with every pixel set to the specified value.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""}],"args_string":"(value)","args_html":"(value)","location":{"filename":"src/vips/image.cr","line_number":391,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L391"},"def":{"name":"new_from_image","args":[{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"pixel = ((Image.black(1, 1)) + value).cast(format)\nimage = pixel.embed(0, 0, width, height, extend: Enums::Extend::Copy)\nimage.copy(interpretation: interpretation, xres: xres, yres: yres, xoffset: xoffset, yoffset: yoffset)\n"}},{"html_id":"new_from_image(*value:Int32|Float64)-instance-method","name":"new_from_image","doc":"A new image is created with the same width, height, format,\ninterpretation, resolution and offset as self, but with every pixel\nset to the specified value.\n\nYou can pass an array to make a many-band image, or a single value to\nmake a one-band image.","summary":"

    A new image is created with the same width, height, format, interpretation, resolution and offset as self, but with every pixel set to the specified value.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(*value : Int32 | Float64)","args_html":"(*value : Int32 | Float64)","location":{"filename":"src/vips/image.cr","line_number":377,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L377"},"def":{"name":"new_from_image","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"splat_index":0,"visibility":"Public","body":"dblarr = Array(Float64).new(value.size) do |i|\n (value.at(i)).to_f\nend\npixel = ((Image.black(1, 1)) + dblarr).cast(format)\nimage = pixel.embed(0, 0, width, height, extend: Enums::Extend::Copy)\nimage.copy(interpretation: interpretation, xres: xres, yres: yres, xoffset: xoffset, yoffset: yoffset)\n"}},{"html_id":"offset-instance-method","name":"offset","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1051,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1051"},"def":{"name":"offset","visibility":"Public","body":"(get(\"offset\")).as_f64"}},{"html_id":"page_height:Int32-instance-method","name":"page_height","doc":"Multi-page images can have a page height.\nIf page-height is not set, it defaults to the image height.\nNote: At least libvips 8.8 is needed.","summary":"

    Multi-page images can have a page height.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1261,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1261"},"def":{"name":"page_height","return_type":"Int32","visibility":"Public","body":"LibVips.vips_image_get_page_height(self)"}},{"html_id":"pbmsave_stream(stream:IO,**kwargs)-instance-method","name":"pbmsave_stream","doc":"Save image in pbm format\n\n```\nin.pbmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pbm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6417,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6417"},"def":{"name":"pbmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npbmsave_target(target, **kwargs)\n"}},{"html_id":"pbmsave_target(target:Target,**kwargs)-instance-method","name":"pbmsave_target","doc":"Save image in pbm format\n\n```\nin.pbmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pbm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6387,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6387"},"def":{"name":"pbmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pbmsave_target\", options, target)\n"}},{"html_id":"percent(percent:Float64)-instance-method","name":"percent","doc":"Find threshold for percent of pixels\n\n```\n# threshold = in.percent(percent)\n```\n\n\nInput Parameters\n\n**Required**\n\n*percent* : Float64 - Percent of pixels\n\n\n**Returns**\n\nThreshold above which lie percent of pixels\n","summary":"

    Find threshold for percent of pixels

    ","abstract":false,"args":[{"name":"percent","external_name":"percent","restriction":"Float64"}],"args_string":"(percent : Float64)","args_html":"(percent : Float64)","location":{"filename":"src/vips/ext/image.cr","line_number":6647,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6647"},"def":{"name":"percent","args":[{"name":"percent","external_name":"percent","restriction":"Float64"}],"visibility":"Public","body":"((self.call(\"percent\", percent)).as(Type)).as_i32"}},{"html_id":"pfmsave_stream(stream:IO,**kwargs)-instance-method","name":"pfmsave_stream","doc":"Save image in pfm format\n\n```\nin.pfmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pfm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6743,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6743"},"def":{"name":"pfmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npfmsave_target(target, **kwargs)\n"}},{"html_id":"pfmsave_target(target:Target,**kwargs)-instance-method","name":"pfmsave_target","doc":"Save image in pfm format\n\n```\nin.pfmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pfm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6713,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6713"},"def":{"name":"pfmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pfmsave_target\", options, target)\n"}},{"html_id":"pgmsave_stream(stream:IO,**kwargs)-instance-method","name":"pgmsave_stream","doc":"Save image in pgm format\n\n```\nin.pgmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pgm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6806,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6806"},"def":{"name":"pgmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npgmsave_target(target, **kwargs)\n"}},{"html_id":"pgmsave_target(target:Target,**kwargs)-instance-method","name":"pgmsave_target","doc":"Save image in pgm format\n\n```\nin.pgmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pgm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6776,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6776"},"def":{"name":"pgmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pgmsave_target\", options, target)\n"}},{"html_id":"phasecor(in2:Image)-instance-method","name":"phasecor","doc":"Calculate phase correlation\n\n```\n# out_ = in.phasecor(in2)\n```\n\n\nInput Parameters\n\n**Required**\n\n*in2* : Image - Second input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate phase correlation

    ","abstract":false,"args":[{"name":"in2","external_name":"in2","restriction":"Image"}],"args_string":"(in2 : Image)","args_html":"(in2 : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":6829,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6829"},"def":{"name":"phasecor","args":[{"name":"in2","external_name":"in2","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"phasecor\", in2)).as(Type)).as_image"}},{"html_id":"pngsave(filename:String,**kwargs)-instance-method","name":"pngsave","doc":"Save image to file as png\n\n```\nin.pngsave(filename, {compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to file as png

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7040,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7040"},"def":{"name":"pngsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pngsave\", options, filename)\n"}},{"html_id":"pngsave_buffer(**kwargs)-instance-method","name":"pngsave_buffer","doc":"Save image to buffer as png\n\n```\n# buffer = in.pngsave_buffer({compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to buffer as png

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7085,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7085"},"def":{"name":"pngsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"pngsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"pngsave_stream(stream:IO,**kwargs)-instance-method","name":"pngsave_stream","doc":"Save image to stream as png\n\n```\nin.pngsave_stream(stream, {compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to stream as png

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7173,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7173"},"def":{"name":"pngsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npngsave_target(target, **kwargs)\n"}},{"html_id":"pngsave_target(target:Target,**kwargs)-instance-method","name":"pngsave_target","doc":"Save image to target as png\n\n```\nin.pngsave_target(target, {compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to target as png

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7131,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7131"},"def":{"name":"pngsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pngsave_target\", options, target)\n"}},{"html_id":"pnmsave_stream(stream:IO,**kwargs)-instance-method","name":"pnmsave_stream","doc":"Save image in pnm format\n\n```\nin.pnmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pnm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7236,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7236"},"def":{"name":"pnmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npnmsave_target(target, **kwargs)\n"}},{"html_id":"pnmsave_target(target:Target,**kwargs)-instance-method","name":"pnmsave_target","doc":"Save image in pnm format\n\n```\nin.pnmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pnm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7206,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7206"},"def":{"name":"pnmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pnmsave_target\", options, target)\n"}},{"html_id":"polar:Image-instance-method","name":"polar","doc":"Return an image converted to polar coordinates.","summary":"

    Return an image converted to polar coordinates.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":858,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L858"},"def":{"name":"polar","return_type":"Image","visibility":"Public","body":"Image.run_cmplx(self) do |x|\n x.complex(Enums::OperationComplex::Polar)\nend"}},{"html_id":"ppmsave(filename:String,**kwargs)-instance-method","name":"ppmsave","doc":"Save image to ppm file\n\n```\nin.ppmsave(filename, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to ppm file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7385,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7385"},"def":{"name":"ppmsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"ppmsave\", options, filename)\n"}},{"html_id":"ppmsave_stream(stream:IO,**kwargs)-instance-method","name":"ppmsave_stream","doc":"Save to ppm\n\n```\nin.ppmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save to ppm

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7448,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7448"},"def":{"name":"ppmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nppmsave_target(target, **kwargs)\n"}},{"html_id":"ppmsave_target(target:Target,**kwargs)-instance-method","name":"ppmsave_target","doc":"Save to ppm\n\n```\nin.ppmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save to ppm

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7418,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7418"},"def":{"name":"ppmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"ppmsave_target\", options, target)\n"}},{"html_id":"premultiply(**kwargs)-instance-method","name":"premultiply","doc":"Premultiply image alpha\n\n```\n# out_ = in.premultiply({max_alpha: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*max_alpha* : Float64 - Maximum value of alpha channel\n\n\n**Returns**\n\nOutput image\n","summary":"

    Premultiply image alpha

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7471,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7471"},"def":{"name":"premultiply","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"premultiply\", options)).as(Type)).as_image\n"}},{"html_id":"profile-instance-method","name":"profile","doc":"Find image profiles\n\n```\n# output = in.profile()\n```\n\n\n**Returns**\n\nFirst non-zero pixel in column\n\nFirst non-zero pixel in row\n","summary":"

    Find image profiles

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7490,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7490"},"def":{"name":"profile","visibility":"Public","body":"results = (self.call(\"profile\")).as(Array(Type))\n{results[0].as_image, results[1].as_image}\n"}},{"html_id":"project-instance-method","name":"project","doc":"Find image projections\n\n```\n# output = in.project()\n```\n\n\n**Returns**\n\nSums of columns\n\nSums of rows\n","summary":"

    Find image projections

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7531,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7531"},"def":{"name":"project","visibility":"Public","body":"results = (self.call(\"project\")).as(Array(Type))\n{results[0].as_image, results[1].as_image}\n"}},{"html_id":"quadratic(coeff:Image,**kwargs)-instance-method","name":"quadratic","doc":"Resample an image with a quadratic transform\n\n```\n# out_ = in.quadratic(coeff, {interpolate: Interpolate})\n```\n\n\nInput Parameters\n\n**Required**\n\n*coeff* : Image - Coefficient matrix\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate values with this\n\n\n**Returns**\n\nOutput image\n","summary":"

    Resample an image with a quadratic transform

    ","abstract":false,"args":[{"name":"coeff","external_name":"coeff","restriction":"Image"}],"args_string":"(coeff : Image, **kwargs)","args_html":"(coeff : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7559,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7559"},"def":{"name":"quadratic","args":[{"name":"coeff","external_name":"coeff","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"quadratic\", options, coeff)).as(Type)).as_image\n"}},{"html_id":"rad2float-instance-method","name":"rad2float","doc":"Unpack radiance coding to float rgb\n\n```\n# out_ = in.rad2float()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpack radiance coding to float rgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7576,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7576"},"def":{"name":"rad2float","visibility":"Public","body":"((self.call(\"rad2float\")).as(Type)).as_image"}},{"html_id":"radsave(filename:String,**kwargs)-instance-method","name":"radsave","doc":"Save image to radiance file\n\n```\nin.radsave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to radiance file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7761,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7761"},"def":{"name":"radsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"radsave\", options, filename)\n"}},{"html_id":"radsave_buffer(**kwargs)-instance-method","name":"radsave_buffer","doc":"Save image to radiance buffer\n\n```\n# buffer = in.radsave_buffer({strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to radiance buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7788,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7788"},"def":{"name":"radsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"radsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"radsave_stream(stream:IO,**kwargs)-instance-method","name":"radsave_stream","doc":"Save image to radiance stream\n\n```\nin.radsave_stream(stream, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to radiance stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7840,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7840"},"def":{"name":"radsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nradsave_target(target, **kwargs)\n"}},{"html_id":"radsave_target(target:Target,**kwargs)-instance-method","name":"radsave_target","doc":"Save image to radiance target\n\n```\nin.radsave_target(target, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to radiance target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7816,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7816"},"def":{"name":"radsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"radsave_target\", options, target)\n"}},{"html_id":"rank(width:Int32,height:Int32,index:Int32)-instance-method","name":"rank","doc":"Rank filter\n\n```\n# out_ = in.rank(width, height, index)\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Window width in pixels\n\n*height* : Int32 - Window height in pixels\n\n*index* : Int32 - Select pixel at index\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rank filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, index : Int32)","args_html":"(width : Int32, height : Int32, index : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":7867,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7867"},"def":{"name":"rank","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"index","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"rank\", width, height, index)).as(Type)).as_image"}},{"html_id":"rawsave(filename:String,**kwargs)-instance-method","name":"rawsave","doc":"Save image to raw file\n\n```\nin.rawsave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to raw file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7948,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7948"},"def":{"name":"rawsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"rawsave\", options, filename)\n"}},{"html_id":"rawsave_fd(fd:Int32,**kwargs)-instance-method","name":"rawsave_fd","doc":"Write raw image to file descriptor\n\n```\nin.rawsave_fd(fd, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*fd* : Int32 - File descriptor to write to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Write raw image to file descriptor

    ","abstract":false,"args":[{"name":"fd","external_name":"fd","restriction":"Int32"}],"args_string":"(fd : Int32, **kwargs)","args_html":"(fd : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7975,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7975"},"def":{"name":"rawsave_fd","args":[{"name":"fd","external_name":"fd","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"rawsave_fd\", options, fd)\n"}},{"html_id":"real:Image-instance-method","name":"real","doc":"Return the real part of a complex image.","summary":"

    Return the real part of a complex image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":848,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L848"},"def":{"name":"real","return_type":"Image","visibility":"Public","body":"complexget(Enums::OperationComplexget::Real)"}},{"html_id":"recomb(m:Image)-instance-method","name":"recomb","doc":"Linear recombination with matrix\n\n```\n# out_ = in.recomb(m)\n```\n\n\nInput Parameters\n\n**Required**\n\n*m* : Image - Matrix of coefficients\n\n\n**Returns**\n\nOutput image\n","summary":"

    Linear recombination with matrix

    ","abstract":false,"args":[{"name":"m","external_name":"m","restriction":"Image"}],"args_string":"(m : Image)","args_html":"(m : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":7998,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7998"},"def":{"name":"recomb","args":[{"name":"m","external_name":"m","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"recomb\", m)).as(Type)).as_image"}},{"html_id":"rect:Image-instance-method","name":"rect","doc":"Return an image converted to rectangular coordinates.","summary":"

    Return an image converted to rectangular coordinates.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":863,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L863"},"def":{"name":"rect","return_type":"Image","visibility":"Public","body":"Image.run_cmplx(self) do |x|\n x.complex(Enums::OperationComplex::Rect)\nend"}},{"html_id":"reduce(hshrink:Float64,vshrink:Float64,**kwargs)-instance-method","name":"reduce","doc":"Reduce an image\n\n```\n# out_ = in.reduce(hshrink, vshrink, {kernel: Enums::Kernel, gap: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Float64 - Horizontal shrink factor\n\n*vshrink* : Float64 - Vertical shrink factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n\n**Returns**\n\nOutput image\n","summary":"

    Reduce an image

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"args_string":"(hshrink : Float64, vshrink : Float64, **kwargs)","args_html":"(hshrink : Float64, vshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8028,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8028"},"def":{"name":"reduce","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"reduce\", options, hshrink, vshrink)).as(Type)).as_image\n"}},{"html_id":"reduceh(hshrink:Float64,**kwargs)-instance-method","name":"reduceh","doc":"Shrink an image horizontally\n\n```\n# out_ = in.reduceh(hshrink, {kernel: Enums::Kernel, gap: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Float64 - Horizontal shrink factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image horizontally

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"}],"args_string":"(hshrink : Float64, **kwargs)","args_html":"(hshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8058,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8058"},"def":{"name":"reduceh","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"reduceh\", options, hshrink)).as(Type)).as_image\n"}},{"html_id":"reducev(vshrink:Float64,**kwargs)-instance-method","name":"reducev","doc":"Shrink an image vertically\n\n```\n# out_ = in.reducev(vshrink, {kernel: Enums::Kernel, gap: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*vshrink* : Float64 - Vertical shrink factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image vertically

    ","abstract":false,"args":[{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"args_string":"(vshrink : Float64, **kwargs)","args_html":"(vshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8088,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8088"},"def":{"name":"reducev","args":[{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"reducev\", options, vshrink)).as(Type)).as_image\n"}},{"html_id":"relational(right:Image,relational:Enums::OperationRelational)-instance-method","name":"relational","doc":"Relational operation on two images\n\n```\n# out_ = left.relational(right, relational)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*relational* : Enums::OperationRelational - Relational to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Relational operation on two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"}],"args_string":"(right : Image, relational : Enums::OperationRelational)","args_html":"(right : Image, relational : Enums::OperationRelational)","location":{"filename":"src/vips/ext/image.cr","line_number":8114,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8114"},"def":{"name":"relational","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"}],"visibility":"Public","body":"((self.call(\"relational\", right, relational)).as(Type)).as_image"}},{"html_id":"relational_const(relational:Enums::OperationRelational,c:Array(Float64))-instance-method","name":"relational_const","doc":"Relational operations against a constant\n\n```\n# out_ = in.relational_const(relational, c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*relational* : Enums::OperationRelational - Relational to perform\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Relational operations against a constant

    ","abstract":false,"args":[{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(relational : Enums::OperationRelational, c : Array(Float64))","args_html":"(relational : Enums::OperationRelational, c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":8138,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8138"},"def":{"name":"relational_const","args":[{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"relational_const\", relational, c)).as(Type)).as_image"}},{"html_id":"remainder(right:Image)-instance-method","name":"remainder","doc":"Remainder after integer division of two images\n\n```\n# out_ = left.remainder(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Remainder after integer division of two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8160,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8160"},"def":{"name":"remainder","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"remainder\", right)).as(Type)).as_image"}},{"html_id":"remainder_const(c:Array(Float64))-instance-method","name":"remainder_const","doc":"Remainder after integer division of an image and a constant\n\n```\n# out_ = in.remainder_const(c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Remainder after integer division of an image and a constant

    ","abstract":false,"args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(c : Array(Float64))","args_html":"(c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":8182,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8182"},"def":{"name":"remainder_const","args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"remainder_const\", c)).as(Type)).as_image"}},{"html_id":"replicate(across:Int32,down:Int32)-instance-method","name":"replicate","doc":"Replicate an image\n\n```\n# out_ = in.replicate(across, down)\n```\n\n\nInput Parameters\n\n**Required**\n\n*across* : Int32 - Repeat this many times horizontally\n\n*down* : Int32 - Repeat this many times vertically\n\n\n**Returns**\n\nOutput image\n","summary":"

    Replicate an image

    ","abstract":false,"args":[{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"args_string":"(across : Int32, down : Int32)","args_html":"(across : Int32, down : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":8206,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8206"},"def":{"name":"replicate","args":[{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"replicate\", across, down)).as(Type)).as_image"}},{"html_id":"resize(scale:Float64,**kwargs)-instance-method","name":"resize","doc":"Resize an image\n\n```\n# out_ = in.resize(scale, {kernel: Enums::Kernel, gap: Float64, vscale: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*scale* : Float64 - Scale image by this factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n*vscale* : Float64 - Vertical scale image by this factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Resize an image

    ","abstract":false,"args":[{"name":"scale","external_name":"scale","restriction":"Float64"}],"args_string":"(scale : Float64, **kwargs)","args_html":"(scale : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8236,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8236"},"def":{"name":"resize","args":[{"name":"scale","external_name":"scale","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"resize\", options, scale)).as(Type)).as_image\n"}},{"html_id":"rint:Image-instance-method","name":"rint","doc":"Return the nearest integral value.","summary":"

    Return the nearest integral value.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1028,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1028"},"def":{"name":"rint","return_type":"Image","visibility":"Public","body":"((self.call(\"round\", Enums::OperationRound::Rint)).as(Type)).as_image"}},{"html_id":"rot(angle:Enums::Angle)-instance-method","name":"rot","doc":"Rotate an image\n\n```\n# out_ = in.rot(angle)\n```\n\n\nInput Parameters\n\n**Required**\n\n*angle* : Enums::Angle - Angle to rotate image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rotate an image

    ","abstract":false,"args":[{"name":"angle","external_name":"angle","restriction":"Enums::Angle"}],"args_string":"(angle : Enums::Angle)","args_html":"(angle : Enums::Angle)","location":{"filename":"src/vips/ext/image.cr","line_number":8260,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8260"},"def":{"name":"rot","args":[{"name":"angle","external_name":"angle","restriction":"Enums::Angle"}],"visibility":"Public","body":"((self.call(\"rot\", angle)).as(Type)).as_image"}},{"html_id":"rot180-instance-method","name":"rot180","doc":"Rotate 180 degrees clockwise.","summary":"

    Rotate 180 degrees clockwise.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1008,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1008"},"def":{"name":"rot180","visibility":"Public","body":"rot(Enums::Angle::D180)"}},{"html_id":"rot270-instance-method","name":"rot270","doc":"Rotate 270 degrees clockwise.","summary":"

    Rotate 270 degrees clockwise.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1013,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1013"},"def":{"name":"rot270","visibility":"Public","body":"rot(Enums::Angle::D270)"}},{"html_id":"rot45(**kwargs)-instance-method","name":"rot45","doc":"Rotate an image\n\n```\n# out_ = in.rot45({angle: Enums::Angle45})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*angle* : Enums::Angle45 - Angle to rotate image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rotate an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8282,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8282"},"def":{"name":"rot45","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"rot45\", options)).as(Type)).as_image\n"}},{"html_id":"rot90-instance-method","name":"rot90","doc":"Rotate 90 degrees clockwise.","summary":"

    Rotate 90 degrees clockwise.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1003,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1003"},"def":{"name":"rot90","visibility":"Public","body":"rot(Enums::Angle::D90)"}},{"html_id":"rotate(angle:Float64,**kwargs)-instance-method","name":"rotate","doc":"Rotate an image by a number of degrees\n\n```\n# out_ = in.rotate(angle, {interpolate: Interpolate, background: Array(Float64), odx: Float64, ody: Float64, idx: Float64, idy: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*angle* : Float64 - Rotate anticlockwise by this many degrees\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*background* : Array(Float64) - Background value\n\n*odx* : Float64 - Horizontal output displacement\n\n*ody* : Float64 - Vertical output displacement\n\n*idx* : Float64 - Horizontal input displacement\n\n*idy* : Float64 - Vertical input displacement\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rotate an image by a number of degrees

    ","abstract":false,"args":[{"name":"angle","external_name":"angle","restriction":"Float64"}],"args_string":"(angle : Float64, **kwargs)","args_html":"(angle : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8320,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8320"},"def":{"name":"rotate","args":[{"name":"angle","external_name":"angle","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"rotate\", options, angle)).as(Type)).as_image\n"}},{"html_id":"round(round:Enums::OperationRound)-instance-method","name":"round","doc":"Perform a round function on an image\n\n```\n# out_ = in.round(round)\n```\n\n\nInput Parameters\n\n**Required**\n\n*round* : Enums::OperationRound - Rounding operation to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Perform a round function on an image

    ","abstract":false,"args":[{"name":"round","external_name":"round","restriction":"Enums::OperationRound"}],"args_string":"(round : Enums::OperationRound)","args_html":"(round : Enums::OperationRound)","location":{"filename":"src/vips/ext/image.cr","line_number":8344,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8344"},"def":{"name":"round","args":[{"name":"round","external_name":"round","restriction":"Enums::OperationRound"}],"visibility":"Public","body":"((self.call(\"round\", round)).as(Type)).as_image"}},{"html_id":"scale-instance-method","name":"scale","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1047,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1047"},"def":{"name":"scale","visibility":"Public","body":"(get(\"scale\")).as_f64"}},{"html_id":"scaleimage(**opts)-instance-method","name":"scaleimage","doc":"Scale an image to 0 - 255. This is the libvips `scale` operation, but\nrenamed to avoid a clash with the `scale` for convolution masks.","summary":"

    Scale an image to 0 - 255.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":645,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L645"},"def":{"name":"scaleimage","double_splat":{"name":"opts","external_name":"opts","restriction":""},"visibility":"Public","body":"options = Optional.new(**opts)\n((call(\"scale\", options)).as(Type)).as_image\n"}},{"html_id":"scrgb2bw(**kwargs)-instance-method","name":"scrgb2bw","doc":"Convert scrgb to bw\n\n```\n# out_ = in.scrgb2bw({depth: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert scrgb to bw

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8366,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8366"},"def":{"name":"scrgb2bw","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"scrgb2bw\", options)).as(Type)).as_image\n"}},{"html_id":"scrgb2srgb(**kwargs)-instance-method","name":"scrgb2srgb","doc":"Convert an scrgb image to srgb\n\n```\n# out_ = in.scrgb2srgb({depth: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert an scrgb image to srgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8390,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8390"},"def":{"name":"scrgb2srgb","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"scrgb2srgb\", options)).as(Type)).as_image\n"}},{"html_id":"scrgb2xyz-instance-method","name":"scrgb2xyz","doc":"Transform scrgb to xyz\n\n```\n# out_ = in.scrgb2xyz()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform scrgb to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8407,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8407"},"def":{"name":"scrgb2xyz","visibility":"Public","body":"((self.call(\"scrgb2xyz\")).as(Type)).as_image"}},{"html_id":"sequential(**kwargs)-instance-method","name":"sequential","doc":"Check sequential access\n\n```\n# out_ = in.sequential({tile_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_height* : Int32 - Tile height in pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Check sequential access

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8429,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8429"},"def":{"name":"sequential","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"sequential\", options)).as(Type)).as_image\n"}},{"html_id":"set_kill(kill:Bool)-instance-method","name":"set_kill","doc":"Set the `kill` flag on an image. Handy for stopping sets of threads.\nAt least libvips 8.8 is needed.","summary":"

    Set the kill flag on an image.

    ","abstract":false,"args":[{"name":"kill","external_name":"kill","restriction":"Bool"}],"args_string":"(kill : Bool)","args_html":"(kill : Bool)","location":{"filename":"src/vips/image.cr","line_number":1223,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1223"},"def":{"name":"set_kill","args":[{"name":"kill","external_name":"kill","restriction":"Bool"}],"visibility":"Public","body":"if Vips.at_least_libvips?(8, 8)\nelse\n return\nend\nLibVips.vips_image_set_kill(self, kill)\n"}},{"html_id":"set_progress(enable:Bool)-instance-method","name":"set_progress","doc":"Enable progress reporting on an image.\nWhen progress reporting is enabled, evaluation of the most downstream\nimage from this image will report progress using the `Enums::Signal::PreEval`,\n`Enums::Signal::Eval` and `Enums::Signal::PostEval` signals.","summary":"

    Enable progress reporting on an image.

    ","abstract":false,"args":[{"name":"enable","external_name":"enable","restriction":"Bool"}],"args_string":"(enable : Bool)","args_html":"(enable : Bool)","location":{"filename":"src/vips/image.cr","line_number":1238,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1238"},"def":{"name":"set_progress","args":[{"name":"enable","external_name":"enable","restriction":"Bool"}],"visibility":"Public","body":"LibVips.vips_image_set_progress(self, enable)"}},{"html_id":"set_progress(&block:Int32->Nil)-instance-method","name":"set_progress","doc":"Enable progress reporting on an image and provide a block which will be executed on feedback.\nYou can use this function to update user-interfaces with progress feedback, for example\n\n```\nimage = Vips::Image.new_from_file(\"huge.jpg\", access: Enums::Access.Sequential)\nimage.set_progress { |percent| puts \"#{percent} complete\" }\nimage.dzsave(\"image-pyramid\")\n```","summary":"

    Enable progress reporting on an image and provide a block which will be executed on feedback.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1250,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1250"},"def":{"name":"set_progress","yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Int32 -> Nil)"},"visibility":"Public","body":"last_percent = 0\nsignal_connect(Enums::Signal::Eval) do |image, progress|\n if progress.percent == last_percent\n else\n block.call(progress.percent)\n end\nend\n"}},{"html_id":"sharpen(**kwargs)-instance-method","name":"sharpen","doc":"Unsharp masking for print\n\n```\n# out_ = in.sharpen({sigma: Float64, x1: Float64, y2: Float64, y3: Float64, m1: Float64, m2: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*sigma* : Float64 - Sigma of Gaussian\n\n*x1* : Float64 - Flat/jaggy threshold\n\n*y2* : Float64 - Maximum brightening\n\n*y3* : Float64 - Maximum darkening\n\n*m1* : Float64 - Slope for flat areas\n\n*m2* : Float64 - Slope for jaggy areas\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unsharp masking for print

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8463,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8463"},"def":{"name":"sharpen","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"sharpen\", options)).as(Type)).as_image\n"}},{"html_id":"shrink(hshrink:Float64,vshrink:Float64,**kwargs)-instance-method","name":"shrink","doc":"Shrink an image\n\n```\n# out_ = in.shrink(hshrink, vshrink, {ceil: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Float64 - Horizontal shrink factor\n\n*vshrink* : Float64 - Vertical shrink factor\n\n_Optionals_\n\n*ceil* : Bool - Round-up output dimensions\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"args_string":"(hshrink : Float64, vshrink : Float64, **kwargs)","args_html":"(hshrink : Float64, vshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8493,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8493"},"def":{"name":"shrink","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"shrink\", options, hshrink, vshrink)).as(Type)).as_image\n"}},{"html_id":"shrinkh(hshrink:Int32,**kwargs)-instance-method","name":"shrinkh","doc":"Shrink an image horizontally\n\n```\n# out_ = in.shrinkh(hshrink, {ceil: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Int32 - Horizontal shrink factor\n\n_Optionals_\n\n*ceil* : Bool - Round-up output dimensions\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image horizontally

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Int32"}],"args_string":"(hshrink : Int32, **kwargs)","args_html":"(hshrink : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8521,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8521"},"def":{"name":"shrinkh","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"shrinkh\", options, hshrink)).as(Type)).as_image\n"}},{"html_id":"shrinkv(vshrink:Int32,**kwargs)-instance-method","name":"shrinkv","doc":"Shrink an image vertically\n\n```\n# out_ = in.shrinkv(vshrink, {ceil: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*vshrink* : Int32 - Vertical shrink factor\n\n_Optionals_\n\n*ceil* : Bool - Round-up output dimensions\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image vertically

    ","abstract":false,"args":[{"name":"vshrink","external_name":"vshrink","restriction":"Int32"}],"args_string":"(vshrink : Int32, **kwargs)","args_html":"(vshrink : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8549,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8549"},"def":{"name":"shrinkv","args":[{"name":"vshrink","external_name":"vshrink","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"shrinkv\", options, vshrink)).as(Type)).as_image\n"}},{"html_id":"sign-instance-method","name":"sign","doc":"Unit vector of pixel\n\n```\n# out_ = in.sign()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unit vector of pixel

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8566,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8566"},"def":{"name":"sign","visibility":"Public","body":"((self.call(\"sign\")).as(Type)).as_image"}},{"html_id":"signal_connect(signal:Enums::Signal,data:Pointer(Void)=Pointer(Void).null,&callback:EvalProc)-instance-method","name":"signal_connect","doc":"Connects a `EvalProc` callback to a signal on this image.\nThe callback will be triggered every time this signal is issued on this image.","summary":"

    Connects a EvalProc callback to a signal on this image.

    ","abstract":false,"args":[{"name":"signal","external_name":"signal","restriction":"Enums::Signal"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"args_string":"(signal : Enums::Signal, data : Pointer(Void) = Pointer(Void).null, &callback : EvalProc)","args_html":"(signal : Enums::Signal, data : Pointer(Void) = Pointer(Void).null, &callback : EvalProc)","location":{"filename":"src/vips/image.cr","line_number":1230,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1230"},"def":{"name":"signal_connect","args":[{"name":"signal","external_name":"signal","restriction":"Enums::Signal"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"yields":0,"block_arity":0,"block_arg":{"name":"callback","external_name":"callback","restriction":"EvalProc"},"visibility":"Public","body":"signal_connect(signal.to_s.downcase, callback, data)"}},{"html_id":"similarity(**kwargs)-instance-method","name":"similarity","doc":"Similarity transform of an image\n\n```\n# out_ = in.similarity({scale: Float64, angle: Float64, interpolate: Interpolate, background: Array(Float64), odx: Float64, ody: Float64, idx: Float64, idy: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*scale* : Float64 - Scale by this factor\n\n*angle* : Float64 - Rotate anticlockwise by this many degrees\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*background* : Array(Float64) - Background value\n\n*odx* : Float64 - Horizontal output displacement\n\n*ody* : Float64 - Vertical output displacement\n\n*idx* : Float64 - Horizontal input displacement\n\n*idy* : Float64 - Vertical input displacement\n\n\n**Returns**\n\nOutput image\n","summary":"

    Similarity transform of an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8602,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8602"},"def":{"name":"similarity","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"similarity\", options)).as(Type)).as_image\n"}},{"html_id":"sin:Image-instance-method","name":"sin","doc":"Return the sine of an image in degrees.","summary":"

    Return the sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":873,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L873"},"def":{"name":"sin","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Sin)"}},{"html_id":"sinh:Image-instance-method","name":"sinh","doc":"Return the hyperbolic sine of an image in degrees.","summary":"

    Return the hyperbolic sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":903,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L903"},"def":{"name":"sinh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Sinh)"}},{"html_id":"size-instance-method","name":"size","doc":"Get the image size","summary":"

    Get the image size

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1056,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1056"},"def":{"name":"size","visibility":"Public","body":"[width, height]"}},{"html_id":"smartcrop(width:Int32,height:Int32,**kwargs)-instance-method","name":"smartcrop","doc":"Extract an area from an image\n\n```\n# out_, attention_x, attention_y = input.smartcrop(width, height, {interesting: Enums::Interesting})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Width of extract area\n\n*height* : Int32 - Height of extract area\n\n_Optionals_\n\n*interesting* : Enums::Interesting - How to measure interestingness\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*attention_x* : Int32? - Horizontal position of attention centre\n\n*attention_y* : Int32? - Vertical position of attention centre\n","summary":"

    Extract an area from an image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8672,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8672"},"def":{"name":"smartcrop","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"attention_x\"] = true\noptions[\"attention_y\"] = true\nresults = (self.call(\"smartcrop\", options, width, height)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nattention_x = ((o = opts) && (val = o[\"attention_x\"]?)) ? val.as_i32 : nil\nattention_y = ((o = opts) && (val = o[\"attention_y\"]?)) ? val.as_i32 : nil\n{final_result, attention_x, attention_y}\n"}},{"html_id":"sobel-instance-method","name":"sobel","doc":"Sobel edge detector\n\n```\n# out_ = in.sobel()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Sobel edge detector

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8698,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8698"},"def":{"name":"sobel","visibility":"Public","body":"((self.call(\"sobel\")).as(Type)).as_image"}},{"html_id":"spcor(ref:Image)-instance-method","name":"spcor","doc":"Spatial correlation\n\n```\n# out_ = in.spcor(ref)\n```\n\n\nInput Parameters\n\n**Required**\n\n*ref* : Image - Input reference image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Spatial correlation

    ","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"args_string":"(ref : Image)","args_html":"(ref : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8720,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8720"},"def":{"name":"spcor","args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"spcor\", ref)).as(Type)).as_image"}},{"html_id":"spectrum-instance-method","name":"spectrum","doc":"Make displayable power spectrum\n\n```\n# out_ = in.spectrum()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make displayable power spectrum

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8735,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8735"},"def":{"name":"spectrum","visibility":"Public","body":"((self.call(\"spectrum\")).as(Type)).as_image"}},{"html_id":"srgb2hsv-instance-method","name":"srgb2hsv","doc":"Transform srgb to hsv\n\n```\n# out_ = in.srgb2hsv()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform srgb to hsv

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8750,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8750"},"def":{"name":"srgb2hsv","visibility":"Public","body":"((self.call(\"srgb2hsv\")).as(Type)).as_image"}},{"html_id":"srgb2scrgb-instance-method","name":"srgb2scrgb","doc":"Convert an srgb image to scrgb\n\n```\n# out_ = in.srgb2scrgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert an srgb image to scrgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8765,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8765"},"def":{"name":"srgb2scrgb","visibility":"Public","body":"((self.call(\"srgb2scrgb\")).as(Type)).as_image"}},{"html_id":"stats-instance-method","name":"stats","doc":"Find many image stats\n\n```\n# out_ = in.stats()\n```\n\n\n**Returns**\n\nOutput array of statistics\n","summary":"

    Find many image stats

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8780,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8780"},"def":{"name":"stats","visibility":"Public","body":"((self.call(\"stats\")).as(Type)).as_image"}},{"html_id":"stdif(width:Int32,height:Int32,**kwargs)-instance-method","name":"stdif","doc":"Statistical difference\n\n```\n# out_ = in.stdif(width, height, {s0: Float64, b: Float64, m0: Float64, a: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Window width in pixels\n\n*height* : Int32 - Window height in pixels\n\n_Optionals_\n\n*s0* : Float64 - New deviation\n\n*b* : Float64 - Weight of new deviation\n\n*m0* : Float64 - New mean\n\n*a* : Float64 - Weight of new mean\n\n\n**Returns**\n\nOutput image\n","summary":"

    Statistical difference

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8814,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8814"},"def":{"name":"stdif","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"stdif\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"subsample(xfac:Int32,yfac:Int32,**kwargs)-instance-method","name":"subsample","doc":"Subsample an image\n\n```\n# out_ = input.subsample(xfac, yfac, {point: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*xfac* : Int32 - Horizontal subsample factor\n\n*yfac* : Int32 - Vertical subsample factor\n\n_Optionals_\n\n*point* : Bool - Point sample\n\n\n**Returns**\n\nOutput image\n","summary":"

    Subsample an image

    ","abstract":false,"args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"args_string":"(xfac : Int32, yfac : Int32, **kwargs)","args_html":"(xfac : Int32, yfac : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8844,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8844"},"def":{"name":"subsample","args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"subsample\", options, xfac, yfac)).as(Type)).as_image\n"}},{"html_id":"subtract(right:Image)-instance-method","name":"subtract","doc":"Subtract two images\n\n```\n# out_ = left.subtract(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Subtract two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8868,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8868"},"def":{"name":"subtract","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"subtract\", right)).as(Type)).as_image"}},{"html_id":"tan:Image-instance-method","name":"tan","doc":"Return the tangent of an image in degrees.","summary":"

    Return the tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":883,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L883"},"def":{"name":"tan","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Tan)"}},{"html_id":"tanh:Image-instance-method","name":"tanh","doc":"Return the hyperbolic tangent of an image in degrees.","summary":"

    Return the hyperbolic tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":913,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L913"},"def":{"name":"tanh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Tanh)"}},{"html_id":"thumbnail_image(width:Int32,**kwargs)-instance-method","name":"thumbnail_image","doc":"Generate thumbnail from image\n\n```\n# out_ = in.thumbnail_image(width, {height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(width : Int32, **kwargs)","args_html":"(width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9270,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9270"},"def":{"name":"thumbnail_image","args":[{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"thumbnail_image\", options, width)).as(Type)).as_image\n"}},{"html_id":"tiffsave(filename:String,**kwargs)-instance-method","name":"tiffsave","doc":"Save image to tiff file\n\n```\nin.tiffsave(filename, {compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to tiff file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9623,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9623"},"def":{"name":"tiffsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"tiffsave\", options, filename)\n"}},{"html_id":"tiffsave_buffer(**kwargs)-instance-method","name":"tiffsave_buffer","doc":"Save image to tiff buffer\n\n```\n# buffer = in.tiffsave_buffer({compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to tiff buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9692,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9692"},"def":{"name":"tiffsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"tiffsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"tiffsave_stream(stream:IO,**kwargs)-instance-method","name":"tiffsave_stream","doc":"Save image to tiff stream\n\n```\nin.tiffsave_stream(stream, {compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to tiff stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9828,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9828"},"def":{"name":"tiffsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ntiffsave_target(target, **kwargs)\n"}},{"html_id":"tiffsave_target(target:Target,**kwargs)-instance-method","name":"tiffsave_target","doc":"Save image to tiff target\n\n```\nin.tiffsave_target(target, {compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to tiff target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9762,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9762"},"def":{"name":"tiffsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"tiffsave_target\", options, target)\n"}},{"html_id":"tilecache(**kwargs)-instance-method","name":"tilecache","doc":"Cache an image as a set of tiles\n\n```\n# out_ = in.tilecache({tile_width: Int32, tile_height: Int32, max_tiles: Int32, access: Enums::Access, threaded: Bool, persistent: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*max_tiles* : Int32 - Maximum number of tiles to cache\n\n*access* : Enums::Access - Expected access pattern\n\n*threaded* : Bool - Allow threaded access\n\n*persistent* : Bool - Keep cache between evaluations\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cache an image as a set of tiles

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9861,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9861"},"def":{"name":"tilecache","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"tilecache\", options)).as(Type)).as_image\n"}},{"html_id":"to_s(io:IO)-instance-method","name":"to_s","doc":"Appends a short String representation of this object\nwhich includes its class name and its object address.\n\n```\nclass Person\n def initialize(@name : String, @age : Int32)\n end\nend\n\nPerson.new(\"John\", 32).to_s # => #\n```","summary":"

    Appends a short String representation of this object which includes its class name and its object address.

    ","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/image.cr","line_number":1293,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1293"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"io << \"\""}},{"html_id":"transpose3d(**kwargs)-instance-method","name":"transpose3d","doc":"Transpose3d an image\n\n```\n# out_ = in.transpose3d({page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*page_height* : Int32 - Height of each input page\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transpose3d an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9927,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9927"},"def":{"name":"transpose3d","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"transpose3d\", options)).as(Type)).as_image\n"}},{"html_id":"unpremultiply(**kwargs)-instance-method","name":"unpremultiply","doc":"Unpremultiply image alpha\n\n```\n# out_ = in.unpremultiply({max_alpha: Float64, alpha_band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*max_alpha* : Float64 - Maximum value of alpha channel\n\n*alpha_band* : Int32 - Unpremultiply with this alpha\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpremultiply image alpha

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9953,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9953"},"def":{"name":"unpremultiply","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"unpremultiply\", options)).as(Type)).as_image\n"}},{"html_id":"vipssave(filename:String,**kwargs)-instance-method","name":"vipssave","doc":"Save image to file in vips format\n\n```\nin.vipssave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to file in vips format

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10097,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10097"},"def":{"name":"vipssave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"vipssave\", options, filename)\n"}},{"html_id":"vipssave_stream(stream:IO,**kwargs)-instance-method","name":"vipssave_stream","doc":"Save image to stream in vips format\n\n```\nin.vipssave_stream(stream, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to stream in vips format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10148,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10148"},"def":{"name":"vipssave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nvipssave_target(target, **kwargs)\n"}},{"html_id":"vipssave_target(target:Target,**kwargs)-instance-method","name":"vipssave_target","doc":"Save image to target in vips format\n\n```\nin.vipssave_target(target, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to target in vips format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10124,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10124"},"def":{"name":"vipssave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"vipssave_target\", options, target)\n"}},{"html_id":"webpsave(filename:String,**kwargs)-instance-method","name":"webpsave","doc":"Save as webp\n\n```\nin.webpsave(filename, {q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as webp

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10382,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10382"},"def":{"name":"webpsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"webpsave\", options, filename)\n"}},{"html_id":"webpsave_buffer(**kwargs)-instance-method","name":"webpsave_buffer","doc":"Save as webp\n\n```\n# buffer = in.webpsave_buffer({q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save as webp

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10433,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10433"},"def":{"name":"webpsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"webpsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"webpsave_mime(**kwargs)-instance-method","name":"webpsave_mime","doc":"Save image to webp mime\n\n```\nin.webpsave_mime({q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to webp mime

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10481,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10481"},"def":{"name":"webpsave_mime","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"webpsave_mime\", options)\n"}},{"html_id":"webpsave_stream(stream:IO,**kwargs)-instance-method","name":"webpsave_stream","doc":"Save as webp\n\n```\nin.webpsave_stream(stream, {q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save as webp

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10580,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10580"},"def":{"name":"webpsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nwebpsave_target(target, **kwargs)\n"}},{"html_id":"webpsave_target(target:Target,**kwargs)-instance-method","name":"webpsave_target","doc":"Save as webp\n\n```\nin.webpsave_target(target, {q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as webp

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10532,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10532"},"def":{"name":"webpsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"webpsave_target\", options, target)\n"}},{"html_id":"width:Int32-instance-method","name":"width","doc":"Image width in pixels","summary":"

    Image width in pixels

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10816,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10816"},"def":{"name":"width","return_type":"Int32","visibility":"Public","body":"(get(\"width\")).as_i32"}},{"html_id":"wrap(**kwargs)-instance-method","name":"wrap","doc":"Wrap image origin\n\n```\n# out_ = in.wrap({x: Int32, y: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*x* : Int32 - Left edge of input in output\n\n*y* : Int32 - Top edge of input in output\n\n\n**Returns**\n\nOutput image\n","summary":"

    Wrap image origin

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10637,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10637"},"def":{"name":"wrap","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"wrap\", options)).as(Type)).as_image\n"}},{"html_id":"write(other:Image)-instance-method","name":"write","doc":"Write an image to another image.\nThis function writes `self` to another image. Use something like\n`new_temp_file` to make an image that can be written to.","summary":"

    Write an image to another image.

    ","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"Image"}],"args_string":"(other : Image)","args_html":"(other : Image)","location":{"filename":"src/vips/image.cr","line_number":556,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L556"},"def":{"name":"write","args":[{"name":"other","external_name":"other","restriction":"Image"}],"visibility":"Public","body":"(LibVips.vips_image_write(self, other.to_unsafe)).tap do |ret|\n if ret == 0\n else\n raise(VipsException.new(\"unable to write to image\"))\n end\nend"}},{"html_id":"write_to_buffer(format:String,**kwargs)-instance-method","name":"write_to_buffer","doc":"Write this image to a memory buffer. This method can save images in any format supported by vips. Save options may be encoded in the\nfilename or given as a keyword argument. For example:\n\n```\nimage.write_to_file(\"fred.jpg[Q=95])\"\n```\n\nor equivalently:\n\n```\nimage.write_to_file(\"fred.jpg\", Q: 95)\n```\n\nThe full set of save options depend on the selected saver. Try\nsomething like:\n\n```\n$ vips jpegsave\n```\n\nto see all the available options for JPEG save.\n\nGet the `GType` of a metadata field. The result is 0 if no such field\nexists.","summary":"

    Write this image to a memory buffer.

    ","abstract":false,"args":[{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(format : String, **kwargs)","args_html":"(format : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":472,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L472"},"def":{"name":"write_to_buffer","args":[{"name":"format","external_name":"format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"buffer_options = String.new(LibVips.vips_filename_get_options(format))\nsaver = Pointer(UInt8).null\nif Vips.at_least_libvips?(8, 9)\n LibVips.vips_error_freeze\n saver = LibVips.vips_foreign_find_save_target(filename)\n LibVips.vips_error_thaw\nend\noptions = Optional.new(**kwargs)\noptions[\"string_options\"] = buffer_options\nif !saver.null?\n target = Target.new_to_memory\n call(String.new(saver), options, target)\n return target.blob\nend\nsaver = LibVips.vips_foreign_find_save_buffer(format)\nif saver.nil?\n raise(VipsException.new(\"unable to write to buffer\"))\nend\nreturn ((call(String.new(saver), options)).as(Type)).as_bytes\n"}},{"html_id":"write_to_bytes:Bytes-instance-method","name":"write_to_bytes","doc":"Write the image to a `Bytes`.\nA large area of memory is allocated, the image is rendered to that\nmemory array, and the array is returned as a buffer.\n\nFor example, if you have a 2x2 uchar image containing the bytes 1, 2,\n3, 4, read left-to-right, top-to-bottom, then:\n```\nbuf = image.write_to_memory # => return Bytes of size 4 containing values 1,2,3,4\n```\nReturns `Bytes`","summary":"

    Write the image to a Bytes.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":544,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L544"},"def":{"name":"write_to_bytes","return_type":"Bytes","visibility":"Public","body":"ptr, size = write_to_memory\nresult = Bytes.new(size)\nresult.to_unsafe.copy_from(ptr.as(::Pointer(UInt8)), size)\nVips.free(ptr)\nresult\n"}},{"html_id":"write_to_file(name:String,**kwargs)-instance-method","name":"write_to_file","doc":"Write this image to a file. This method can save images in any format supported by vips. Save options may be encoded in the\nfilename or given as a keyword argument. For example:\n\n```\nimage.write_to_file(\"fred.jpg[Q=95])\"\n```\n\nor equivalently:\n\n```\nimage.write_to_file(\"fred.jpg\", Q: 95)\n```\n\nThe full set of save options depend on the selected saver. Try\nsomething like:\n\n```\n$ vips jpegsave\n```\n\nto see all the available options for JPEG save.\n\nGet the `GType` of a metadata field. The result is 0 if no such field\nexists.","summary":"

    Write this image to a file.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String, **kwargs)","args_html":"(name : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":435,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L435"},"def":{"name":"write_to_file","args":[{"name":"name","external_name":"name","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"filename = String.new(LibVips.vips_filename_get_filename(name))\nfile_options = String.new(LibVips.vips_filename_get_options(name))\noperation_name = String.new((LibVips.vips_foreign_find_save(filename)) || Bytes.empty)\nif operation_name.blank?\n raise(VipsException.new(\"Unable to write to file #{filename}\"))\nend\noptions = Optional.new(**kwargs)\noptions[\"string_options\"] = file_options\ncall(operation_name, options, filename)\n"}},{"html_id":"write_to_memory:Tuple(Pointer(Void),LibC::SizeT)-instance-method","name":"write_to_memory","doc":"Write the image to memory as a simple, unformatted C-style array.\nNote: The caller is responsible for freeing this memory with `Vips.free`\nReturns {Void*, LibC::SizeT}","summary":"

    Write the image to memory as a simple, unformatted C-style array.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":528,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L528"},"def":{"name":"write_to_memory","return_type":"::Tuple(::Pointer(Void), LibC::SizeT)","visibility":"Public","body":"ptr = LibVips.vips_image_write_to_memory(self, out size)\nif ptr.null?\n raise(VipsException.new(\"unable to write to memory\"))\nend\n{ptr, size}\n"}},{"html_id":"write_to_target(stream:IO,format:String,**kwargs)-instance-method","name":"write_to_target","doc":"Write an image to a stream.\nThis behaves exactly as `write_to_file`, but the image is\nwritten to a *stream* rather than a file.\nNote: At least libvips 8.9 is needed.","summary":"

    Write an image to a stream.

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(stream : IO, format : String, **kwargs)","args_html":"(stream : IO, format : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":520,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L520"},"def":{"name":"write_to_target","args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"format","external_name":"format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nwrite_to_target(target, format, **kwargs)\n"}},{"html_id":"write_to_target(target:Target,format:String,**kwargs)-instance-method","name":"write_to_target","doc":"Write an image to a target.\nThis behaves exactly as `write_to_file`, but the image is\nwritten to a *target* rather than a file.\nNote: At least libvips 8.9 is needed.","summary":"

    Write an image to a target.

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"},{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(target : Target, format : String, **kwargs)","args_html":"(target : Target, format : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":504,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L504"},"def":{"name":"write_to_target","args":[{"name":"target","external_name":"target","restriction":"Target"},{"name":"format","external_name":"format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"buffer_options = String.new(LibVips.vips_filename_get_options(format))\noperation_name = String.new((LibVips.vips_foreign_find_save_target(format)) || Bytes.empty)\nif operation_name.blank?\n raise(VipsException.new(\"Unable to write to target\"))\nend\noptions = Optional.new(**kwargs)\noptions[\"string_options\"] = buffer_options\ncall(operation_name, options, target)\n"}},{"html_id":"xoffset:Int32-instance-method","name":"xoffset","doc":"Horizontal offset of origin","summary":"

    Horizontal offset of origin

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10846,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10846"},"def":{"name":"xoffset","return_type":"Int32","visibility":"Public","body":"(get(\"xoffset\")).as_i32"}},{"html_id":"xres:Float64-instance-method","name":"xres","doc":"Horizontal resolution in pixels/mm","summary":"

    Horizontal resolution in pixels/mm

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10856,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10856"},"def":{"name":"xres","return_type":"Float64","visibility":"Public","body":"(get(\"xres\")).as_f64"}},{"html_id":"xyz2cmyk-instance-method","name":"xyz2cmyk","doc":"Transform xyz to cmyk\n\n```\n# out_ = in.xyz2cmyk()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to cmyk

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10688,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10688"},"def":{"name":"xyz2cmyk","visibility":"Public","body":"((self.call(\"xyz2cmyk\")).as(Type)).as_image"}},{"html_id":"xyz2lab(**kwargs)-instance-method","name":"xyz2lab","doc":"Transform xyz to lab\n\n```\n# out_ = in.xyz2lab({temp: Array(Float64)})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*temp* : Array(Float64) - Colour temperature\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10710,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10710"},"def":{"name":"xyz2lab","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"xyz2lab\", options)).as(Type)).as_image\n"}},{"html_id":"xyz2scrgb-instance-method","name":"xyz2scrgb","doc":"Transform xyz to scrgb\n\n```\n# out_ = in.xyz2scrgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to scrgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10727,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10727"},"def":{"name":"xyz2scrgb","visibility":"Public","body":"((self.call(\"xyz2scrgb\")).as(Type)).as_image"}},{"html_id":"xyz2yxy-instance-method","name":"xyz2yxy","doc":"Transform xyz to yxy\n\n```\n# out_ = in.xyz2yxy()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to yxy

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10742,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10742"},"def":{"name":"xyz2yxy","visibility":"Public","body":"((self.call(\"xyz2yxy\")).as(Type)).as_image"}},{"html_id":"yoffset:Int32-instance-method","name":"yoffset","doc":"Vertical offset of origin","summary":"

    Vertical offset of origin

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10851,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10851"},"def":{"name":"yoffset","return_type":"Int32","visibility":"Public","body":"(get(\"yoffset\")).as_i32"}},{"html_id":"yres:Float64-instance-method","name":"yres","doc":"Vertical resolution in pixels/mm","summary":"

    Vertical resolution in pixels/mm

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10861,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10861"},"def":{"name":"yres","return_type":"Float64","visibility":"Public","body":"(get(\"yres\")).as_f64"}},{"html_id":"yxy2xyz-instance-method","name":"yxy2xyz","doc":"Transform yxy to xyz\n\n```\n# out_ = in.yxy2xyz()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform yxy to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10757,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10757"},"def":{"name":"yxy2xyz","visibility":"Public","body":"((self.call(\"yxy2xyz\")).as(Type)).as_image"}},{"html_id":"zoom(xfac:Int32,yfac:Int32)-instance-method","name":"zoom","doc":"Zoom an image\n\n```\n# out_ = input.zoom(xfac, yfac)\n```\n\n\nInput Parameters\n\n**Required**\n\n*xfac* : Int32 - Horizontal zoom factor\n\n*yfac* : Int32 - Vertical zoom factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Zoom an image

    ","abstract":false,"args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"args_string":"(xfac : Int32, yfac : Int32)","args_html":"(xfac : Int32, yfac : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":10811,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10811"},"def":{"name":"zoom","args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"zoom\", xfac, yfac)).as(Type)).as_image"}}],"types":[{"html_id":"vips/Vips/Image/EvalProc","path":"Vips/Image/EvalProc.html","kind":"alias","full_name":"Vips::Image::EvalProc","name":"EvalProc","abstract":false,"locations":[{"filename":"src/vips/image.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L5"}],"repository_name":"vips","program":false,"enum":false,"alias":true,"aliased":"Proc(Vips::Image, LibVips::VipsProgress, Nil)","aliased_html":"Vips::Image, LibVips::VipsProgress -> Nil","const":false,"namespace":{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},"doc":"Evaluation callback that can be used on the `Enums::Signal::PreEval`, `Enums::Signal::Eval`, and `Enums::Signal::PostEval` signals.\nSee `set_progress` to enable progress reporting on an image.","summary":"

    Evaluation callback that can be used on the Enums::Signal::PreEval, Enums::Signal::Eval, and Enums::Signal::PostEval signals.

    "}]},{"html_id":"vips/Vips/Interpolate","path":"Vips/Interpolate.html","kind":"class","full_name":"Vips::Interpolate","name":"Interpolate","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/interpolate.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/interpolate.cr#L3"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Make interpolators for operators like `Image#affine`","summary":"

    Make interpolators for operators like Image#affine

    ","class_methods":[{"html_id":"new_from_name(name:String)-class-method","name":"new_from_name","doc":"Make a new interpolator by name.\nMake a new interpolator from the libvips class nickname. For example:\n\n```\ninter = Vips::Interpolate.new_from_name(\"bicubic\")\n```\nYou can get a list of all supported interpolators from the command-line with\n\n```sh\nvips -l interpolate\n```\nSee for example `Image#affine`","summary":"

    Make a new interpolator by name.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/interpolate.cr","line_number":20,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/interpolate.cr#L20"},"def":{"name":"new_from_name","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"vi = LibVips.vips_interpolate_new(name)\nif vi.null?\n raise(VipsException.new(\"no such interpolator #{name}\"))\nend\nnew(vi)\n"}}]},{"html_id":"vips/Vips/Introspect","path":"Vips/Introspect.html","kind":"class","full_name":"Vips::Introspect","name":"Introspect","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/introspect.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L5"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Build introspection data for operations\nMake an operation, introspect it, and build a structure representing\neverything we know about it.","summary":"

    Build introspection data for operations Make an operation, introspect it, and build a structure representing everything we know about it.

    ","class_methods":[{"html_id":"get(operation_name:String)-class-method","name":"get","doc":"Get introspection data for a specified operation name.","summary":"

    Get introspection data for a specified operation name.

    ","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"args_string":"(operation_name : String)","args_html":"(operation_name : String)","location":{"filename":"src/vips/introspect.cr","line_number":113,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L113"},"def":{"name":"get","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"visibility":"Public","body":"__temp_49 = operation_name\n@@cache[__temp_49]? || (@@cache[__temp_49] = Introspect.new(operation_name))\n"}}],"instance_methods":[{"html_id":"get_args(op:Operation)-instance-method","name":"get_args","doc":"Get all arguments for an operation.","summary":"

    Get all arguments for an operation.

    ","abstract":false,"args":[{"name":"op","external_name":"op","restriction":"Operation"}],"args_string":"(op : Operation)","args_html":"(op : Operation)","location":{"filename":"src/vips/introspect.cr","line_number":73,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L73"},"def":{"name":"get_args","args":[{"name":"op","external_name":"op","restriction":"Operation"}],"visibility":"Public","body":"args = Array(Tuple(String, LibVips::VipsArgumentFlags)).new\nadd_arg = ->(name : String, flags : LibVips::VipsArgumentFlags) do\n name = name.gsub('-', '_')\n args << {name, flags}\n nil\nend\nif Vips.at_least_libvips?(8, 7)\n result = LibVips.vips_object_get_args(op.to_obj, out names, out flags_, out count)\n if result == 0\n else\n raise(VipsException.new(\"unable to get arguments for operation\"))\n end\n 0.upto(count - 1) do |i|\n flag = LibVips::VipsArgumentFlags.from_value(flags_[i])\n if (flag & LibVips::VipsArgumentFlags::Construct).value == 0\n next\n end\n name = String.new(names[i])\n add_arg.call(name, flag)\n end\nelse\n proc = LibVips::VipsArgumentMapFn.new do |_self, pspec, argcls, arginst, a, b|\n flag = argcls.value.flags\n if (flag & LibVips::VipsArgumentFlags::Construct).value == 0\n next Pointer(Void).null\n end\n name = String.new(pspec.value.name)\n handler = Box(Proc(String, LibVips::VipsArgumentFlags, Nil)).unbox(a)\n handler.call(name, flag)\n Pointer(Void).null\n end\n LibVips.vips_argument_map(op.to_obj, proc, Box.box(add_arg), Pointer(Void).null)\nend\nargs\n"}},{"html_id":"member_x:Argument|Nil-instance-method","name":"member_x","doc":"The first required input image or nil","summary":"

    The first required input image or nil

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L12"},"def":{"name":"member_x","return_type":"Argument | ::Nil","visibility":"Public","body":"if (value = @member_x).nil?\n ::raise(NilAssertionError.new(\"Vips::Introspect#member_x cannot be nil\"))\nelse\n value\nend"}},{"html_id":"member_x?:Argument|Nil|Nil-instance-method","name":"member_x?","doc":"The first required input image or nil","summary":"

    The first required input image or nil

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L12"},"def":{"name":"member_x?","return_type":"Argument | ::Nil | ::Nil","visibility":"Public","body":"@member_x"}},{"html_id":"mutable:Bool-instance-method","name":"mutable","doc":"A bool indicating if this operation is mutable","summary":"

    A bool indicating if this operation is mutable

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":15,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L15"},"def":{"name":"mutable","return_type":"Bool","visibility":"Public","body":"@mutable"}},{"html_id":"optional_input:Hash(String,Argument)-instance-method","name":"optional_input","doc":"The optional input for this operation","summary":"

    The optional input for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":21,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L21"},"def":{"name":"optional_input","return_type":"Hash(String, Argument)","visibility":"Public","body":"@optional_input"}},{"html_id":"optional_output:Hash(String,Argument)-instance-method","name":"optional_output","doc":"The optional output for this operation","summary":"

    The optional output for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L27"},"def":{"name":"optional_output","return_type":"Hash(String, Argument)","visibility":"Public","body":"@optional_output"}},{"html_id":"required_input:Array(Argument)-instance-method","name":"required_input","doc":"The required input for this operation","summary":"

    The required input for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L18"},"def":{"name":"required_input","return_type":"Array(Argument)","visibility":"Public","body":"@required_input"}},{"html_id":"required_output:Array(Argument)-instance-method","name":"required_output","doc":"The required output for this operation","summary":"

    The required output for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":24,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L24"},"def":{"name":"required_output","return_type":"Array(Argument)","visibility":"Public","body":"@required_output"}}],"types":[{"html_id":"vips/Vips/Introspect/Argument","path":"Vips/Introspect/Argument.html","kind":"struct","full_name":"Vips::Introspect::Argument","name":"Argument","abstract":false,"superclass":{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L9"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips/Introspect","kind":"class","full_name":"Vips::Introspect","name":"Introspect"},"doc":"An object structure that encapsulate the metadata\nrequired to specify arguments","summary":"

    An object structure that encapsulate the metadata required to specify arguments

    ","constructors":[{"html_id":"new(name:String,flags:LibVips::VipsArgumentFlags,type:LibVips::GType)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"flags","external_name":"flags","restriction":"LibVips::VipsArgumentFlags"},{"name":"type","external_name":"type","restriction":"LibVips::GType"}],"args_string":"(name : String, flags : LibVips::VipsArgumentFlags, type : LibVips::GType)","args_html":"(name : String, flags : LibVips::VipsArgumentFlags, type : LibVips::GType)","location":{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L9"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"flags","external_name":"flags","restriction":"LibVips::VipsArgumentFlags"},{"name":"type","external_name":"type","restriction":"LibVips::GType"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, flags, type)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L9"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@name.clone, @flags.clone, @type.clone)"}},{"html_id":"copy_with(name_name=@name,flags_flags=@flags,type_type=@type)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""},{"name":"_flags","default_value":"@flags","external_name":"flags","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""}],"args_string":"(name _name = @name, flags _flags = @flags, type _type = @type)","args_html":"(name _name = @name, flags _flags = @flags, type _type = @type)","location":{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L9"},"def":{"name":"copy_with","args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""},{"name":"_flags","default_value":"@flags","external_name":"flags","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""}],"visibility":"Public","body":"self.class.new(_name, _flags, _type)"}},{"html_id":"flags:LibVips::VipsArgumentFlags-instance-method","name":"flags","abstract":false,"def":{"name":"flags","return_type":"LibVips::VipsArgumentFlags","visibility":"Public","body":"@flags"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"type:LibVips::GType-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"LibVips::GType","visibility":"Public","body":"@type"}}]}]},{"html_id":"vips/Vips/MutableImage","path":"Vips/MutableImage.html","kind":"class","full_name":"Vips::MutableImage","name":"MutableImage","abstract":false,"superclass":{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},"ancestors":[{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/ext/mutableimage.cr","line_number":13,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L13"},{"filename":"src/vips/mutableimage.cr","line_number":4,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L4"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"[]=(index,value)-instance-method","name":"[]=","doc":"Use `[]` to set band elements on an image. For example\n\n```\nimg = image.mutate { |x| x[1] = green }\n```\nwill change band 1 ( the middle band)","summary":"

    Use [] to set band elements on an image.

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(index, value)","args_html":"(index, value)","location":{"filename":"src/vips/mutableimage.cr","line_number":44,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L44"},"def":{"name":"[]=","args":[{"name":"index","external_name":"index","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"nleft = Math.min(bands, Math.max(0, index))\nnright = Math.min(bands, Math.max(0, (bands - 1) - i))\noffset = bands - nright\nleft = nleft > 0 ? image.extract_band(0, n: nleft) : nil\nright = nright > 0 ? image.extract_band(offset, n: nright) : nil\nif left.nil?\n @image = value.bandjoin(right.not_nil!)\nelse\n if right.nil?\n @image = left.not_nil!.bandjoin(value)\n else\n image = left.not_nil!.bandjoin(value, right.not_nil!)\n end\nend\n"}},{"html_id":"draw_circle(ink:Array(Float64),cx:Int32,cy:Int32,radius:Int32,**kwargs):Nil-instance-method","name":"draw_circle","doc":"Draw a circle on an image\n\n```\n# image.mutate { |x| x.draw_circle(ink, cx, cy, radius, {fill: Bool} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*cx* : Int32 - Centre of draw_circle\n\n*cy* : Int32 - Centre of draw_circle\n\n*radius* : Int32 - Radius in pixels\n\n_Optionals_\n\n*fill* : Bool - Draw a solid object\n","summary":"

    Draw a circle on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"cx","external_name":"cx","restriction":"Int32"},{"name":"cy","external_name":"cy","restriction":"Int32"},{"name":"radius","external_name":"radius","restriction":"Int32"}],"args_string":"(ink : Array(Float64), cx : Int32, cy : Int32, radius : Int32, **kwargs) : Nil","args_html":"(ink : Array(Float64), cx : Int32, cy : Int32, radius : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":37,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L37"},"def":{"name":"draw_circle","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"cx","external_name":"cx","restriction":"Int32"},{"name":"cy","external_name":"cy","restriction":"Int32"},{"name":"radius","external_name":"radius","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_circle\", options, ink, cx, cy, radius)\n"}},{"html_id":"draw_flood(ink:Array(Float64),x:Int32,y:Int32,**kwargs):Nil-instance-method","name":"draw_flood","doc":"Flood-fill an area\n\n```\n# image.mutate { |x| x.draw_flood(ink, x, y, {test: Image, equal: Bool} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*x* : Int32 - DrawFlood start point\n\n*y* : Int32 - DrawFlood start point\n\n_Optionals_\n\n*test* : Image - Test pixels in this image\n\n*equal* : Bool - DrawFlood while equal to edge\n","summary":"

    Flood-fill an area

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(ink : Array(Float64), x : Int32, y : Int32, **kwargs) : Nil","args_html":"(ink : Array(Float64), x : Int32, y : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L65"},"def":{"name":"draw_flood","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_flood\", options, ink, x, y)\n"}},{"html_id":"draw_image(sub:Image,x:Int32,y:Int32,**kwargs):Nil-instance-method","name":"draw_image","doc":"Paint an image into another image\n\n```\n# image.mutate { |x| x.draw_image(sub, x, y, {mode: Enums::CombineMode} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*sub* : Image - Sub-image to insert into main image\n\n*x* : Int32 - Draw image here\n\n*y* : Int32 - Draw image here\n\n_Optionals_\n\n*mode* : Enums::CombineMode - Combining mode\n","summary":"

    Paint an image into another image

    ","abstract":false,"args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(sub : Image, x : Int32, y : Int32, **kwargs) : Nil","args_html":"(sub : Image, x : Int32, y : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":91,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L91"},"def":{"name":"draw_image","args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_image\", options, sub, x, y)\n"}},{"html_id":"draw_line(ink:Array(Float64),x1:Int32,y1:Int32,x2:Int32,y2:Int32):Nil-instance-method","name":"draw_line","doc":"Draw a line on an image\n\n```\n# image.mutate { |x| x.draw_line(ink, x1, y1, x2, y2 }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*x1* : Int32 - Start of draw_line\n\n*y1* : Int32 - Start of draw_line\n\n*x2* : Int32 - End of draw_line\n\n*y2* : Int32 - End of draw_line\n","summary":"

    Draw a line on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x1","external_name":"x1","restriction":"Int32"},{"name":"y1","external_name":"y1","restriction":"Int32"},{"name":"x2","external_name":"x2","restriction":"Int32"},{"name":"y2","external_name":"y2","restriction":"Int32"}],"args_string":"(ink : Array(Float64), x1 : Int32, y1 : Int32, x2 : Int32, y2 : Int32) : Nil","args_html":"(ink : Array(Float64), x1 : Int32, y1 : Int32, x2 : Int32, y2 : Int32) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":117,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L117"},"def":{"name":"draw_line","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x1","external_name":"x1","restriction":"Int32"},{"name":"y1","external_name":"y1","restriction":"Int32"},{"name":"x2","external_name":"x2","restriction":"Int32"},{"name":"y2","external_name":"y2","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"self.call(\"draw_line\", ink, x1, y1, x2, y2)"}},{"html_id":"draw_mask(ink:Array(Float64),mask:Image,x:Int32,y:Int32):Nil-instance-method","name":"draw_mask","doc":"Draw a mask on an image\n\n```\n# image.mutate { |x| x.draw_mask(ink, mask, x, y }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*mask* : Image - Mask of pixels to draw\n\n*x* : Int32 - Draw mask here\n\n*y* : Int32 - Draw mask here\n","summary":"

    Draw a mask on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(ink : Array(Float64), mask : Image, x : Int32, y : Int32) : Nil","args_html":"(ink : Array(Float64), mask : Image, x : Int32, y : Int32) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":140,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L140"},"def":{"name":"draw_mask","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"self.call(\"draw_mask\", ink, mask, x, y)"}},{"html_id":"draw_rect(ink:Array(Float64),left:Int32,top:Int32,width:Int32,height:Int32,**kwargs):Nil-instance-method","name":"draw_rect","doc":"Paint a rectangle on an image\n\n```\n# image.mutate { |x| x.draw_rect(ink, left, top, width, height, {fill: Bool} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*left* : Int32 - Rect to fill\n\n*top* : Int32 - Rect to fill\n\n*width* : Int32 - Rect to fill\n\n*height* : Int32 - Rect to fill\n\n_Optionals_\n\n*fill* : Bool - Draw a solid object\n","summary":"

    Paint a rectangle on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(ink : Array(Float64), left : Int32, top : Int32, width : Int32, height : Int32, **kwargs) : Nil","args_html":"(ink : Array(Float64), left : Int32, top : Int32, width : Int32, height : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":169,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L169"},"def":{"name":"draw_rect","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_rect\", options, ink, left, top, width, height)\n"}},{"html_id":"draw_smudge(left:Int32,top:Int32,width:Int32,height:Int32):Nil-instance-method","name":"draw_smudge","doc":"Blur a rectangle on an image\n\n```\n# image.mutate { |x| x.draw_smudge(left, top, width, height }\n```\n\n\nInput Parameters\n\n**Required**\n\n*left* : Int32 - Rect to fill\n\n*top* : Int32 - Rect to fill\n\n*width* : Int32 - Rect to fill\n\n*height* : Int32 - Rect to fill\n","summary":"

    Blur a rectangle on an image

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32) : Nil","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":193,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L193"},"def":{"name":"draw_smudge","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"self.call(\"draw_smudge\", left, top, width, height)"}},{"html_id":"mutate(&)-instance-method","name":"mutate","doc":"Mutate an image with a block. Inside the block, you can call methods\nwhich modify the image, such as setting or removing metadata, or\nmodifying pixels.\n\nFor example:\n\n```\nimage = image.mutate do |x|\n (0..1).step 0.01 do |i|\n x.draw_line([255.0], (x.width * i).to_i, 0, 0, (x.height * (1 - i)).to_i)\n end\nend\n```\n\nSee `MutableImage`.","summary":"

    Mutate an image with a block.

    ","abstract":false,"location":{"filename":"src/vips/mutableimage.cr","line_number":59,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L59"},"def":{"name":"mutate","yields":1,"block_arity":1,"visibility":"Public","body":"yield self\nimage\n"}},{"html_id":"remove(name:String)-instance-method","name":"remove","doc":"Remove a metadata item from an image.\nnamed metadata item is removed","summary":"

    Remove a metadata item from an image.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/mutableimage.cr","line_number":34,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L34"},"def":{"name":"remove","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"LibVips.vips_image_remove(self, name)"}},{"html_id":"set(gtype:LibVips::GType,name:String,value)-instance-method","name":"set","doc":"Sets the type and value of an item of metadata. Any old item of the\nsame name is removed. See `GValue` for types","summary":"

    Sets the type and value of an item of metadata.

    ","abstract":false,"args":[{"name":"gtype","external_name":"gtype","restriction":"LibVips::GType"},{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"args_string":"(gtype : LibVips::GType, name : String, value)","args_html":"(gtype : LibVips::GType, name : String, value)","location":{"filename":"src/vips/mutableimage.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L18"},"def":{"name":"set","args":[{"name":"gtype","external_name":"gtype","restriction":"LibVips::GType"},{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gv = GValue.new\ngv.set_type(gtype)\ngv.set(value)\nLibVips.vips_image_set(self, name, gv)\n"}},{"html_id":"set(name:String,value)-instance-method","name":"set","doc":"Sets the value of an item of metadata. The metadata item must already exists","summary":"

    Sets the value of an item of metadata.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"args_string":"(name : String, value)","args_html":"(name : String, value)","location":{"filename":"src/vips/mutableimage.cr","line_number":26,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L26"},"def":{"name":"set","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gtype = get_typeof(name)\nif gtype == 0\n raise(VipsException.new(\"metadata item #{name} does not exist - use the set(gtype,name,value) overload to create and set\"))\nend\nset(gtype, name, value)\n"}},{"html_id":"to_s(io:IO)-instance-method","name":"to_s","doc":"Appends a short String representation of this object\nwhich includes its class name and its object address.\n\n```\nclass Person\n def initialize(@name : String, @age : Int32)\n end\nend\n\nPerson.new(\"John\", 32).to_s # => #\n```","summary":"

    Appends a short String representation of this object which includes its class name and its object address.

    ","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/mutableimage.cr","line_number":64,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L64"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"io << \"\""}}]},{"html_id":"vips/Vips/Operation","path":"Vips/Operation.html","kind":"class","full_name":"Vips::Operation","name":"Operation","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/operation.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"class_methods":[{"html_id":"build(operation:Operation)-class-method","name":"build","abstract":false,"args":[{"name":"operation","external_name":"operation","restriction":"Operation"}],"args_string":"(operation : Operation)","args_html":"(operation : Operation)","location":{"filename":"src/vips/operation.cr","line_number":17,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L17"},"def":{"name":"build","args":[{"name":"operation","external_name":"operation","restriction":"Operation"}],"visibility":"Public","body":"op = LibVips.vips_cache_operation_build(operation)\nif op.null?\n LibVips.vips_object_unref_outputs(operation.to_obj)\n raise(VipsException.new(\"unable to call operation\"))\nend\nnew(op)\n"}},{"html_id":"call(operation_name:String,kwargs:Optional|Nil,match_image:Image|Nil,*args)-class-method","name":"call","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional | ::Nil"},{"name":"match_image","external_name":"match_image","restriction":"Image | ::Nil"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(operation_name : String, kwargs : Optional | Nil, match_image : Image | Nil, *args)","args_html":"(operation_name : String, kwargs : Optional | Nil, match_image : Image | Nil, *args)","location":{"filename":"src/vips/operation.cr","line_number":53,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L53"},"def":{"name":"call","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional | ::Nil"},{"name":"match_image","external_name":"match_image","restriction":"Image | ::Nil"},{"name":"args","external_name":"args","restriction":""}],"splat_index":3,"visibility":"Public","body":"str_options = kwargs.try do |__arg0|\n (__arg0.delete(\"string_options\")).try(&.as_s)\nend\nintro = Introspect.get(operation_name)\nif intro.required_input.size != args.size\n raise(VipsException.new(\"unable to call #{operation_name}: #{args.size} arguments given, but #{intro.required_input.size} required\"))\nend\nif (!intro.mutable) && match_image.is_a?(MutableImage)\n raise(VipsException.new(\"unable to call #{operation_name}: operation must be mutable\"))\nend\nop = new(operation_name)\nif (stropt = str_options) && (!(op.set(stropt)))\n raise(VipsException.new(\"unable to call #{operation_name}\"))\nend\nif (mi = match_image) && (mx = intro.member_x?)\n op.set(mx.type, mx.name, mi)\nend\nintro.required_input.each_with_index do |arg, i|\n op.set(arg.type, match_image, arg.name, args[i])\nend\nif (kw = kwargs)\n kw.each do |key, val|\n if ( arg = intro.optional_input[key]?)\n op.set(arg.type, match_image, key, val)\n else\n if !(intro.optional_output.has_key?(key))\n raise(VipsException.new(\"#{operation_name} does not support optional argument: #{key}\"))\n end\n end\n end\nend\nvop = build(op)\nresults = Array(Type).new(intro.required_output.size)\nintro.required_output.each do |oarg|\n results << (vop.get(oarg.name))\nend\nif (kw = kwargs)\n optarg = Optional.new\n kw.each do |k, _|\n if intro.optional_output.has_key?(k)\n optarg[k] = vop.get(k)\n end\n end\n if optarg.empty?\n else\n results << (Type.new(optarg))\n end\n LibVips.vips_object_unref_outputs(op.to_obj)\nend\nresults.size == 1 ? results.first : results\n"}},{"html_id":"call(operation_name:String,kwargs:Optional,*args)-class-method","name":"call","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(operation_name : String, kwargs : Optional, *args)","args_html":"(operation_name : String, kwargs : Optional, *args)","location":{"filename":"src/vips/operation.cr","line_number":117,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L117"},"def":{"name":"call","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional"},{"name":"args","external_name":"args","restriction":""}],"splat_index":2,"visibility":"Public","body":"call(operation_name, kwargs, nil, *args)"}},{"html_id":"call(operation_name:String,*args)-class-method","name":"call","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(operation_name : String, *args)","args_html":"(operation_name : String, *args)","location":{"filename":"src/vips/operation.cr","line_number":121,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L121"},"def":{"name":"call","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"splat_index":1,"visibility":"Public","body":"call(operation_name, nil, nil, *args)"}}],"constructors":[{"html_id":"new(operation_name:String)-class-method","name":"new","doc":"Creates a new `VisOperation` with the specified nickname\nYou'll need to set any arguments and build the operation before you can use it.","summary":"

    Creates a new VisOperation with the specified nickname You'll need to set any arguments and build the operation before you can use it.

    ","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"args_string":"(operation_name : String)","args_html":"(operation_name : String)","location":{"filename":"src/vips/operation.cr","line_number":11,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L11"},"def":{"name":"new","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"visibility":"Public","body":"op = LibVips.vips_operation_new(operation_name)\nif op.null?\n raise(VipsException.new(\"no such operation #{operation_name}\"))\nend\nnew(op)\n"}},{"html_id":"new(ophandle:Pointer(LibVips::VipsOperation))-class-method","name":"new","abstract":false,"args":[{"name":"ophandle","external_name":"ophandle","restriction":"::Pointer(::LibVips::VipsOperation)"}],"args_string":"(ophandle : Pointer(LibVips::VipsOperation))","args_html":"(ophandle : Pointer(LibVips::VipsOperation))","location":{"filename":"src/vips/operation.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L5"},"def":{"name":"new","args":[{"name":"ophandle","external_name":"ophandle","restriction":"::Pointer(::LibVips::VipsOperation)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(ophandle)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"flags-instance-method","name":"flags","doc":"Lookup the set of flags for this operation","summary":"

    Lookup the set of flags for this operation

    ","abstract":false,"location":{"filename":"src/vips/operation.cr","line_number":49,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L49"},"def":{"name":"flags","visibility":"Public","body":"LibVips.vips_operation_get_flags(self)"}},{"html_id":"to_obj:Pointer(LibVips::VipsObject)-instance-method","name":"to_obj","abstract":false,"location":{"filename":"src/vips/operation.cr","line_number":130,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L130"},"def":{"name":"to_obj","visibility":"Public","body":"@ohandle"}}]},{"html_id":"vips/Vips/Region","path":"Vips/Region.html","kind":"class","full_name":"Vips::Region","name":"Region","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/region.cr","line_number":6,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/region.cr#L6"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Wrap libvips VipsRegion object.\nA region is a small part of an image. You use regions to read pixels\nout of images without storing the entire image in memory.\nNote: At least libvips 8.8 is needed.","summary":"

    Wrap libvips VipsRegion object.

    ","constructors":[{"html_id":"new(image:Image)-class-method","name":"new","doc":"Make a region on an image","summary":"

    Make a region on an image

    ","abstract":false,"args":[{"name":"image","external_name":"image","restriction":"Image"}],"args_string":"(image : Image)","args_html":"(image : Image)","location":{"filename":"src/vips/region.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/region.cr#L12"},"def":{"name":"new","args":[{"name":"image","external_name":"image","restriction":"Image"}],"visibility":"Public","body":"vi = (LibVips.vips_region_new(image)).tap do |ret|\n if ret.null?\n raise(VipsException.new(\"unable to make region\"))\n end\nend\nnew(vi)\n"}}],"instance_methods":[{"html_id":"fetch(left:Int32,top:Int32,width:Int32,height:Int32):Bytes-instance-method","name":"fetch","doc":"Fetch an area of pixels.\n*left* Left edge of area to fetch.\n*top* Top edge of area to fetch.\n*width* Width of area to fetch.\n*height* Height of area to fetch.\nReturns `Bytes` filled with pixel data.","summary":"

    Fetch an area of pixels.

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32) : Bytes","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32) : Bytes","location":{"filename":"src/vips/region.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/region.cr#L35"},"def":{"name":"fetch","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"return_type":"Bytes","visibility":"Public","body":"ptr = (LibVips.vips_region_fetch(self, left, top, width, height, out size)).tap do |ret|\n if ret.null?\n raise(\"unable to fetch from region\")\n end\nend\nresult = Bytes.new(size)\nptr.copy_to(result.to_unsafe, size)\nVips.free(ptr.as(::Pointer(Void)))\nresult\n"}},{"html_id":"height:Int32-instance-method","name":"height","doc":"height of pixels held by region","summary":"

    height of pixels held by region

    ","abstract":false,"location":{"filename":"src/vips/region.cr","line_number":25,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/region.cr#L25"},"def":{"name":"height","return_type":"Int32","visibility":"Public","body":"LibVips.vips_region_height(self)"}},{"html_id":"width:Int32-instance-method","name":"width","doc":"width of pixels held by region","summary":"

    width of pixels held by region

    ","abstract":false,"location":{"filename":"src/vips/region.cr","line_number":20,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/region.cr#L20"},"def":{"name":"width","return_type":"Int32","visibility":"Public","body":"LibVips.vips_region_width(self)"}}]},{"html_id":"vips/Vips/Source","path":"Vips/Source.html","kind":"class","full_name":"Vips::Source","name":"Source","abstract":false,"superclass":{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},"ancestors":[{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/source.cr","line_number":7,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L7"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/SourceCustom","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Input connection. For example\n```\nsource = Vips::Source.new_from_file(\"k2.jpg\")\nimage = Vips::Image.new_from_source(source)\n```","summary":"

    Input connection.

    ","class_methods":[{"html_id":"new_from_descriptor(descriptor:Int)-class-method","name":"new_from_descriptor","doc":"Create a new source from a file descriptor. File descriptors are\nsmall integers, for example 0 is stdin.\n\nPass sources to `Image.new_from_source` to load images from\nthem.","summary":"

    Create a new source from a file descriptor.

    ","abstract":false,"args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int"}],"args_string":"(descriptor : Int)","args_html":"(descriptor : Int)","location":{"filename":"src/vips/source.cr","line_number":17,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L17"},"def":{"name":"new_from_descriptor","args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int"}],"visibility":"Public","body":"ptr = LibVips.vips_source_new_from_descriptor(descriptor)\nif ptr.null?\n raise(VipsException.new(\"can't create source from descriptor #{descriptor}\"))\nend\nnew(ptr)\n"}},{"html_id":"new_from_file(filename:String)-class-method","name":"new_from_file","doc":"Create a new source from a file name.\n\nPass sources to `Image.new_from_source` to load images from\nthem.","summary":"

    Create a new source from a file name.

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String)","args_html":"(filename : String)","location":{"filename":"src/vips/source.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L27"},"def":{"name":"new_from_file","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"visibility":"Public","body":"ptr = LibVips.vips_source_new_from_file(filename)\nif ptr.null?\n raise(VipsException.new(\"can't create source from filename #{filename}\"))\nend\nnew(ptr)\n"}},{"html_id":"new_from_memory(data:String|Bytes|IO)-class-method","name":"new_from_memory","doc":"Create a new source from an area of memory. Memory areas can be\nString, Bytes, or IO\n\nPass sources to `Image.new_from_source` to load images from\nthem.","summary":"

    Create a new source from an area of memory.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"}],"args_string":"(data : String | Bytes | IO)","args_html":"(data : String | Bytes | IO)","location":{"filename":"src/vips/source.cr","line_number":39,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L39"},"def":{"name":"new_from_memory","args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"}],"visibility":"Public","body":"buff = case data\nwhen String\n data.to_slice\nwhen IO\n data.gets_to_end.to_slice\nelse\n data\nend\nptr = LibVips.vips_source_new_from_memory(Box.box(buff), buff.bytesize)\nif ptr.null?\n raise(VipsException.new(\"can't create source from memory #{data}\"))\nend\n@@references << buff\nnew(ptr)\n"}}],"instance_methods":[{"html_id":"finalize-instance-method","name":"finalize","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":52,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L52"},"def":{"name":"finalize","visibility":"Public","body":"@@references.clear"}}]},{"html_id":"vips/Vips/SourceCustom","path":"Vips/SourceCustom.html","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom","abstract":false,"superclass":{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},"ancestors":[{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/source.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L79"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/SourceStream","kind":"class","full_name":"Vips::SourceStream","name":"SourceStream"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"A source you can attach action signal handlers to to implement\ncustom input types.\n\nFor example:\n\n```\nfile = File.open(\"some/file/name\", \"rb\")\nsource = Vips::SourceCustom.new\nsource.on_read { |slice| file.read(slice) }\nimage = Vips::Image.new_from_source(source)\n```\n\n(just an example -- of course in practice you'd use `Source#new_from_file`\nto read from a named file)","summary":"

    A source you can attach action signal handlers to to implement custom input types.

    ","constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":82,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L82"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"finalize-instance-method","name":"finalize","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":123,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L123"},"def":{"name":"finalize","visibility":"Public","body":"@@box.clear"}},{"html_id":"on_read(&block:Bytes->Int32)-instance-method","name":"on_read","doc":"The block is executed to read data from the source. The interface is\nexactly as IO::read, ie. it takes a slice and reads atmost `slice.size` and\nreturns a number of bytes read from the source, or 0 if the source is already\nat end of file.","summary":"

    The block is executed to read data from the source.

    ","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":93,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L93"},"def":{"name":"on_read","yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Bytes -> Int32)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"read\", LibVips::ReadCB.new do |_source, buff, size, data|\n if size <= 0\n next 0\n end\n callback = Box(typeof(block)).unbox(data)\n slice = Bytes.new(buff.as(::Pointer(UInt8)), size)\n callback.call(slice)\nend, boxed_data)\n"}},{"html_id":"on_seek(&block:Int64,IO::Seek->Int64)-instance-method","name":"on_seek","doc":"The block is executed to seek the source. The interface is exactly as\nIO::seek, ie. it should take an offset and whence, and return the\nnew read position.\n\nThis handler is optional -- if you do not attach a seek handler,\n`Source` will treat your source like an unseekable pipe object and\ndo extra caching.","summary":"

    The block is executed to seek the source.

    ","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":112,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L112"},"def":{"name":"on_seek","yields":2,"block_arity":2,"block_arg":{"name":"block","external_name":"block","restriction":"(Int64, IO::Seek -> Int64)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"seek\", LibVips::SeekCB.new do |_source, offset, whence, data|\n callback = Box(typeof(block)).unbox(data)\n ret = callback.call(offset, IO::Seek.from_value(whence))\n ret.to_i64\nend, boxed_data)\n"}}]},{"html_id":"vips/Vips/SourceStream","path":"Vips/SourceStream.html","kind":"class","full_name":"Vips::SourceStream","name":"SourceStream","abstract":false,"superclass":{"html_id":"vips/Vips/SourceCustom","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom"},"ancestors":[{"html_id":"vips/Vips/SourceCustom","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom"},{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/source.cr","line_number":129,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L129"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Source connected to a readable `IO`","summary":"

    Source connected to a readable IO

    ","class_methods":[{"html_id":"new_from_stream(io:IO)-class-method","name":"new_from_stream","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/source.cr","line_number":136,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L136"},"def":{"name":"new_from_stream","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"if io.closed?\n raise(VipsException.new(\"The stream should be readable\"))\nend\nnew(io)\n"}}]},{"html_id":"vips/Vips/Stats","path":"Vips/Stats.html","kind":"module","full_name":"Vips::Stats","name":"Stats","abstract":false,"locations":[{"filename":"src/vips/stats.cr","line_number":7,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/stats.cr#L7"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"vips/Vips/Stats","kind":"module","full_name":"Vips::Stats","name":"Stats"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"allocations:Int-instance-method","name":"allocations","doc":"Get the number of active allocations.","summary":"

    Get the number of active allocations.

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":11,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/stats.cr#L11"},"def":{"name":"allocations","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_allocs"}},{"html_id":"mem:Int-instance-method","name":"mem","doc":"Get the number of bytes currently allocated `vips_malloc()` and friends.\nlibvips uses this figure to decide when to start dropping cache.","summary":"

    Get the number of bytes currently allocated vips_malloc() and friends.

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":17,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/stats.cr#L17"},"def":{"name":"mem","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_mem"}},{"html_id":"mem_highwater:Int-instance-method","name":"mem_highwater","doc":"Returns the largest number of bytes simultaneously allocated via vips_tracked_malloc().\nHandy for estimating max memory requirements for a program.","summary":"

    Returns the largest number of bytes simultaneously allocated via vips_tracked_malloc().

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":23,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/stats.cr#L23"},"def":{"name":"mem_highwater","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_mem_highwater"}},{"html_id":"open_files:Int-instance-method","name":"open_files","doc":"Get the number of open files.","summary":"

    Get the number of open files.

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/stats.cr#L28"},"def":{"name":"open_files","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_files"}}]},{"html_id":"vips/Vips/Target","path":"Vips/Target.html","kind":"class","full_name":"Vips::Target","name":"Target","abstract":false,"superclass":{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},"ancestors":[{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/target.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L3"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/TargetCustom","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"an output connection","summary":"

    an output connection

    ","class_methods":[{"html_id":"new_to_descriptor(descriptor:Int32)-class-method","name":"new_to_descriptor","doc":"Make a new target to write to a file descriptor (a small integer).\n```\ntarget = Vips::Target.new_to_descriptor(STDOUT)\n```\nMakes a descriptor attached to `STDOUT`.\n\nYou can pass this target to (for example) `write_to_target`","summary":"

    Make a new target to write to a file descriptor (a small integer).

    ","abstract":false,"args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int32"}],"args_string":"(descriptor : Int32)","args_html":"(descriptor : Int32)","location":{"filename":"src/vips/target.cr","line_number":15,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L15"},"def":{"name":"new_to_descriptor","args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int32"}],"visibility":"Public","body":"ptr = (LibVips.vips_target_new_to_descriptor(descriptor)).tap do |ret|\n if ret.null?\n raise(VipsException.new(\"can't create output target to descriptor #{descriptor}\"))\n end\nend\nnew(ptr)\n"}},{"html_id":"new_to_file(filename:String)-class-method","name":"new_to_file","doc":"Make a new target to write to a file.\n```\ntarget = Vips::Target.new_to_file(\"myfile.jpg\")\n```\n\nYou can pass this target to (for example) `write_to_target`","summary":"

    Make a new target to write to a file.

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String)","args_html":"(filename : String)","location":{"filename":"src/vips/target.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L28"},"def":{"name":"new_to_file","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"visibility":"Public","body":"ptr = (LibVips.vips_target_new_to_file(filename)).tap do |ret|\n if ret.null?\n raise(VipsException.new(\"can't create output target to file #{filename}\"))\n end\nend\nnew(ptr)\n"}},{"html_id":"new_to_memory-class-method","name":"new_to_memory","doc":"Make a new target to write to an area of memory.\n```\ntarget = Vips::Target.new_to_memory\n```\n\nYou can pass this target to (for example) `write_to_target`\n\nAfter writing to target, fetch the bytes from the target object with:\n\n```\nbytes = target.blob\n```","summary":"

    Make a new target to write to an area of memory.

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L47"},"def":{"name":"new_to_memory","visibility":"Public","body":"ptr = LibVips.vips_target_new_to_memory.tap do |ret|\n if ret.null?\n raise(VipsException.new(\"can't create output target to memory\"))\n end\nend\nnew(ptr)\n"}}],"instance_methods":[{"html_id":"blob:Bytes-instance-method","name":"blob","doc":"Get the memory object held by the target when using `new_to_memory`","summary":"

    Get the memory object held by the target when using .new_to_memory

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":55,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L55"},"def":{"name":"blob","return_type":"Bytes","visibility":"Public","body":"(get(\"blob\")).as_bytes"}}]},{"html_id":"vips/Vips/TargetCustom","path":"Vips/TargetCustom.html","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom","abstract":false,"superclass":{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"},"ancestors":[{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/target.cr","line_number":66,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L66"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/TargetStream","kind":"class","full_name":"Vips::TargetStream","name":"TargetStream"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"`Target` you can connect handlers to implement behavior.","summary":"

    Target you can connect handlers to implement behavior.

    ","constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":69,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L69"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"on_finish(&block:->)-instance-method","name":"on_finish","doc":"The block is executed at the end of write. It should do any necessary\nfinishing action, such as closing a file or flushing IO","summary":"

    The block is executed at the end of write.

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":94,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L94"},"def":{"name":"on_finish","yields":0,"block_arity":0,"block_arg":{"name":"block","external_name":"block","restriction":"(->)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"finish\", LibVips::FinishCB.new do |_source, data|\n callback = Box(typeof(block)).unbox(data)\n callback.call\n @@box.delete(data)\n nil\nend, boxed_data)\n"}},{"html_id":"on_write(&block:Bytes->Int64)-instance-method","name":"on_write","doc":"The block is executed to write data to the target. The interface is\nexactly as IO::write, ie. it should write the bytes and return the\nnumber of bytes written.","summary":"

    The block is executed to write data to the target.

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L79"},"def":{"name":"on_write","yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Bytes -> Int64)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"write\", LibVips::WriteCB.new do |source, buff, size, data|\n if size <= 0\n next -1_i64\n end\n callback = Box(typeof(block)).unbox(data)\n slice = Bytes.new(buff, size)\n @@box.delete(data)\n callback.call(slice)\nend, boxed_data)\n"}}]},{"html_id":"vips/Vips/TargetStream","path":"Vips/TargetStream.html","kind":"class","full_name":"Vips::TargetStream","name":"TargetStream","abstract":false,"superclass":{"html_id":"vips/Vips/TargetCustom","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom"},"ancestors":[{"html_id":"vips/Vips/TargetCustom","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom"},{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/target.cr","line_number":108,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L108"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Target connected to a writeable `IO`","summary":"

    Target connected to a writeable IO

    ","class_methods":[{"html_id":"new_from_stream(io:IO)-class-method","name":"new_from_stream","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/target.cr","line_number":118,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L118"},"def":{"name":"new_from_stream","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"if io.closed?\n raise(VipsException.new(\"The stream should be write\"))\nend\nnew(io)\n"}}]},{"html_id":"vips/Vips/Type","path":"Vips/Type.html","kind":"struct","full_name":"Vips::Type","name":"Type","abstract":false,"superclass":{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vips.cr","line_number":226,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L226"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"constructors":[{"html_id":"new(value:Array(Float64)|Array(Int32)|Array(Vips::Image)|Bool|Float64|Int32|Slice(UInt8)|String|UInt64|Vips::GObject|Vips::Optional)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Array(::Float64) | ::Array(::Int32) | ::Array(::Vips::Image) | ::Bool | ::Float64 | ::Int32 | ::Slice(::UInt8) | ::String | ::UInt64 | ::Vips::GObject | ::Vips::Optional"}],"args_string":"(value : Array(Float64) | Array(Int32) | Array(Vips::Image) | Bool | Float64 | Int32 | Slice(UInt8) | String | UInt64 | Vips::GObject | Vips::Optional)","args_html":"(value : Array(Float64) | Array(Int32) | Array(Vips::Image) | Bool | Float64 | Int32 | Slice(UInt8) | String | UInt64 | Vips::GObject | Vips::Optional)","location":{"filename":"src/vips/vips.cr","line_number":232,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L232"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Array(::Float64) | ::Array(::Int32) | ::Array(::Vips::Image) | ::Bool | ::Float64 | ::Int32 | ::Slice(::UInt8) | ::String | ::UInt64 | ::Vips::GObject | ::Vips::Optional"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"as_a32-instance-method","name":"as_a32","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":261,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L261"},"def":{"name":"as_a32","visibility":"Public","body":"@value.as(Array(Int32))"}},{"html_id":"as_a64-instance-method","name":"as_a64","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":265,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L265"},"def":{"name":"as_a64","visibility":"Public","body":"@value.as(Array(Float64))"}},{"html_id":"as_aimg-instance-method","name":"as_aimg","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":273,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L273"},"def":{"name":"as_aimg","visibility":"Public","body":"@value.as(Array(Image))"}},{"html_id":"as_b-instance-method","name":"as_b","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":235,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L235"},"def":{"name":"as_b","visibility":"Public","body":"if @value.is_a?(Number)\n return as_i32 > 0\nend\n@value.as(Bool)\n"}},{"html_id":"as_bytes-instance-method","name":"as_bytes","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":257,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L257"},"def":{"name":"as_bytes","visibility":"Public","body":"@value.as(Bytes)"}},{"html_id":"as_enum(cls:Enum.class)-instance-method","name":"as_enum","abstract":false,"args":[{"name":"cls","external_name":"cls","restriction":"Enum.class"}],"args_string":"(cls : Enum.class)","args_html":"(cls : Enum.class)","location":{"filename":"src/vips/vips.cr","line_number":285,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L285"},"def":{"name":"as_enum","args":[{"name":"cls","external_name":"cls","restriction":"Enum.class"}],"visibility":"Public","body":"cls.from_value(as_i32)"}},{"html_id":"as_f64-instance-method","name":"as_f64","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":244,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L244"},"def":{"name":"as_f64","visibility":"Public","body":"@value.is_a?(Number) ? (@value.as(Number)).to_f : @value.as(Float64)"}},{"html_id":"as_h-instance-method","name":"as_h","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":277,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L277"},"def":{"name":"as_h","visibility":"Public","body":"@value.as(Optional)"}},{"html_id":"as_i32-instance-method","name":"as_i32","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":240,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L240"},"def":{"name":"as_i32","visibility":"Public","body":"@value.is_a?(Number) ? (@value.as(Number)).to_i : @value.as(Int32)"}},{"html_id":"as_image-instance-method","name":"as_image","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":269,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L269"},"def":{"name":"as_image","visibility":"Public","body":"@value.as(Image)"}},{"html_id":"as_o-instance-method","name":"as_o","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":281,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L281"},"def":{"name":"as_o","visibility":"Public","body":"@value.as(GObject)"}},{"html_id":"as_s-instance-method","name":"as_s","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":252,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L252"},"def":{"name":"as_s","visibility":"Public","body":"if @value.is_a?(String)\n return @value.as(String)\nend\n@value.to_s\n"}},{"html_id":"as_u64-instance-method","name":"as_u64","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":248,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L248"},"def":{"name":"as_u64","visibility":"Public","body":"@value.is_a?(Number) ? (@value.as(Number)).to_u64 : @value.as(UInt64)"}},{"html_id":"value:VALTYPE-instance-method","name":"value","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":230,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L230"},"def":{"name":"value","return_type":"VALTYPE","visibility":"Public","body":"@value"}}]},{"html_id":"vips/Vips/VipsBlob","path":"Vips/VipsBlob.html","kind":"class","full_name":"Vips::VipsBlob","name":"VipsBlob","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vipsblob.cr","line_number":4,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L4"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"constructors":[{"html_id":"new(handle:Pointer(LibVips::VipsBlob))-class-method","name":"new","abstract":false,"args":[{"name":"handle","external_name":"handle","restriction":"::Pointer(LibVips::VipsBlob)"}],"args_string":"(handle : Pointer(LibVips::VipsBlob))","args_html":"(handle : Pointer(LibVips::VipsBlob))","location":{"filename":"src/vips/vipsblob.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L5"},"def":{"name":"new","args":[{"name":"handle","external_name":"handle","restriction":"::Pointer(LibVips::VipsBlob)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(handle)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"get_data-instance-method","name":"get_data","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L9"},"def":{"name":"get_data","visibility":"Public","body":"data = LibVips.vips_blob_get(self, out size)\n{data, size}\n"}},{"html_id":"invalid?-instance-method","name":"invalid?","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L27"},"def":{"name":"invalid?","visibility":"Public","body":"@handle.null?"}},{"html_id":"length-instance-method","name":"length","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":14,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L14"},"def":{"name":"length","visibility":"Public","body":"@blob.area.length"}},{"html_id":"ref_count-instance-method","name":"ref_count","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L18"},"def":{"name":"ref_count","visibility":"Public","body":"@blob.area.count"}},{"html_id":"release-instance-method","name":"release","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":22,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L22"},"def":{"name":"release","visibility":"Public","body":"if @handle.null?\n return\nend\nLibVips.vips_area_unref(Box.box(@blob.area))\n"}}]},{"html_id":"vips/Vips/VipsException","path":"Vips/VipsException.html","kind":"class","full_name":"Vips::VipsException","name":"VipsException","abstract":false,"superclass":{"html_id":"vips/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"vips/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vips.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"constructors":[{"html_id":"new(message)-class-method","name":"new","abstract":false,"args":[{"name":"message","external_name":"message","restriction":""}],"args_string":"(message)","args_html":"(message)","location":{"filename":"src/vips/vips.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L3"},"def":{"name":"new","args":[{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"vips/Vips/VipsObject","path":"Vips/VipsObject.html","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject","abstract":false,"superclass":{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},"ancestors":[{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vipsobject.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},{"html_id":"vips/Vips/Interpolate","kind":"class","full_name":"Vips::Interpolate","name":"Interpolate"},{"html_id":"vips/Vips/Operation","kind":"class","full_name":"Vips::Operation","name":"Operation"},{"html_id":"vips/Vips/Region","kind":"class","full_name":"Vips::Region","name":"Region"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"get(name:String)-instance-method","name":"get","doc":"Returns a GObject property","summary":"

    Returns a GObject property

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":22,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L22"},"def":{"name":"get","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"pspec = get_pspec(name)\nif pspec.nil?\n raise(VipsException.new(\"Property not found\"))\nend\ngtype = pspec.value_type\ngv = GValue.new\ngv.set_type(gtype)\nget(name, gv)\n"}},{"html_id":"get_blurb(name:String)-instance-method","name":"get_blurb","doc":"Get the blurb for a GObject property.","summary":"

    Get the blurb for a GObject property.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":58,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L58"},"def":{"name":"get_blurb","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"pspec = get_pspec(name)\nif pspec.nil?\n return \"\"\nend\nString.new(LibVips.g_param_spec_get_blurb(pspec))\n"}},{"html_id":"get_description-instance-method","name":"get_description","doc":"Get the description of a GObject.","summary":"

    Get the description of a GObject.

    ","abstract":false,"location":{"filename":"src/vips/vipsobject.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L65"},"def":{"name":"get_description","visibility":"Public","body":"String.new(LibVips.vips_object_get_description(@ohandle))"}},{"html_id":"get_pspec(name:String):LibVips::GParamSpec|Nil-instance-method","name":"get_pspec","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String) : LibVips::GParamSpec | Nil","args_html":"(name : String) : LibVips::GParamSpec | Nil","location":{"filename":"src/vips/vipsobject.cr","line_number":16,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L16"},"def":{"name":"get_pspec","args":[{"name":"name","external_name":"name","restriction":"String"}],"return_type":"LibVips::GParamSpec | ::Nil","visibility":"Public","body":"ret = LibVips.vips_object_get_argument(@ohandle, name, out pspec, out _, out _)\nret != 0 ? nil : pspec.value\n"}},{"html_id":"get_typeof(name:String)-instance-method","name":"get_typeof","doc":"Get the GType of a GObject property","summary":"

    Get the GType of a GObject property

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L47"},"def":{"name":"get_typeof","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"if pspec = get_pspec(name)\n pspec.value_type\nelse\n Vips.clear_error\n nil\nend"}},{"html_id":"post_close(&block:->)-instance-method","name":"post_close","abstract":false,"location":{"filename":"src/vips/vipsobject.cr","line_number":7,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L7"},"def":{"name":"post_close","yields":0,"block_arity":0,"block_arg":{"name":"block","external_name":"block","restriction":"(->)"},"visibility":"Public","body":"signal_connect(\"postclose\", block)"}},{"html_id":"print_all-instance-method","name":"print_all","doc":"Print a table of all active libvips objects. Handy for debugging.","summary":"

    Print a table of all active libvips objects.

    ","abstract":false,"location":{"filename":"src/vips/vipsobject.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L12"},"def":{"name":"print_all","visibility":"Public","body":"LibVips.vips_object_print_all"}},{"html_id":"set(gtype,name,value)-instance-method","name":"set","doc":"Set a GObject property. Value is converted to the property type, if possible.","summary":"

    Set a GObject property.

    ","abstract":false,"args":[{"name":"gtype","external_name":"gtype","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(gtype, name, value)","args_html":"(gtype, name, value)","location":{"filename":"src/vips/vipsobject.cr","line_number":33,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L33"},"def":{"name":"set","args":[{"name":"gtype","external_name":"gtype","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gv = GValue.new\ngv.set_type(gtype)\ngv.set(value)\nset(name, gv)\n"}},{"html_id":"set(options:String)-instance-method","name":"set","doc":"Set a series of properties using a String","summary":"

    Set a series of properties using a String

    ","abstract":false,"args":[{"name":"options","external_name":"options","restriction":"String"}],"args_string":"(options : String)","args_html":"(options : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":42,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L42"},"def":{"name":"set","args":[{"name":"options","external_name":"options","restriction":"String"}],"visibility":"Public","body":"(LibVips.vips_object_set_from_string(@ohandle, options)) == 0"}}]}]}]}} \ No newline at end of file +{"repository_name":"vips","body":"# CrystalVips\n\n[![crystal-vips CI](https://github.com/naqvis/crystal-vips/actions/workflows/ci.yml/badge.svg)](https://github.com/naqvis/crystal-vips/actions/workflows/ci.yml)\n[![Latest release](https://img.shields.io/github/release/naqvis/crystal-vips.svg)](https://github.com/naqvis/crystal-vips/releases)\n[![Docs](https://img.shields.io/badge/docs-available-brightgreen.svg)](https://naqvis.github.io/crystal-vips/)\n\nProvides Crystal language interface to the [libvips](https://github.com/libvips/libvips) image processing library.\nPrograms that use `CrystalVips` don't manipulate images directly, instead they create pipelines of image processing operations starting from a source image. When the pipe is connected to a destination, the whole pipeline executes at once and in parallel, streaming the image from source to destination in a set of small fragments.\n\nBecause `CrystalVips` is parallel, its' quick, and because it doesn't need to keep entire images in memory, its light. For example, the libvips speed and memory use benchmark:\n\n[https://github.com/libvips/libvips/wiki/Speed-and-memory-use](https://github.com/libvips/libvips/wiki/Speed-and-memory-use)\n\n## Pre-requisites\n\nYou need to [install the libvips\nlibrary](https://www.libvips.org/install.html). It's in the linux package managers, homebrew and MacPorts, and there are Windows binaries on the vips website. For example, on Debian:\n\n```\nsudo apt-get install --no-install-recommends libvips42\n```\n\n(`--no-install-recommends` stops Debian installing a *lot* of extra packages)\n\nOr macOS:\n\n```\nbrew install vips\n```\n\n## Installation\n\n1. Add the dependency to your `shard.yml`:\n\n ```yaml\n dependencies:\n vips:\n github: naqvis/crystal-vips\n ```\n\n2. Run `shards install`\n\n## Usage\n\n```crystal\nrequire \"vips\"\n\nim = Vips::Image.new_from_file(\"image.jpg\")\n\n# put im at position (100, 100) in a 3000 x 3000 pixel image, \n# make the other pixels in the image by mirroring im up / down / \n# left / right, see\n# https://libvips.github.io/libvips/API/current/libvips-conversion.html#vips-embed\nim = im.embed(100, 100, 3000, 3000, extend: Vips::Enums::Extend::Mirror)\n\n# multiply the green (middle) band by 2, leave the other two alone\nim *= [1, 2, 1]\n\n# make an image from an array constant, convolve with it\nmask = Vips::Image.new_from_array([\n [-1, -1, -1],\n [-1, 16, -1],\n [-1, -1, -1]], 8)\nim = im.conv(mask, precision: Vips::Enums::Precision::Integer)\n\n# finally, write the result back to a file on disk\nim.write_to_file(\"output.jpg\")\n```\n\nRefer to [example](example) folder for more samples\n\n## Development\n\nTo run all tests:\n\n```\ncrystal spec\n```\n\n# Getting more help\n\nThe libvips website has a handy table of [all the libvips\noperators](http://libvips.github.io/libvips/API/current/func-list.html). Each\none links to the main API docs so you can see what you need to pass to it.\n\nA simple way to see the arguments for an operation is to try running it\nfrom the command-line. For example:\n\n```bash\n$ vips embed\nembed an image in a larger image\nusage:\n embed in out x y width height\nwhere:\n in - Input image, input VipsImage\n out - Output image, output VipsImage\n x - Left edge of input in output, input gint\n\t\t\tdefault: 0\n\t\t\tmin: -1000000000, max: 1000000000\n y - Top edge of input in output, input gint\n\t\t\tdefault: 0\n\t\t\tmin: -1000000000, max: 1000000000\n width - Image width in pixels, input gint\n\t\t\tdefault: 1\n\t\t\tmin: 1, max: 1000000000\n height - Image height in pixels, input gint\n\t\t\tdefault: 1\n\t\t\tmin: 1, max: 1000000000\noptional arguments:\n extend - How to generate the extra pixels, input VipsExtend\n\t\t\tdefault: black\n\t\t\tallowed: black, copy, repeat, mirror, white, background\n background - Color for background pixels, input VipsArrayDouble\noperation flags: sequential \n```\n\n## Contributing\n\n1. Fork it ()\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n\n## Contributors\n\n- [Ali Naqvi](https://github.com/naqvis) - creator and maintainer\n","program":{"html_id":"vips/toplevel","path":"toplevel.html","kind":"module","full_name":"Top Level Namespace","name":"Top Level Namespace","abstract":false,"locations":[],"repository_name":"vips","program":true,"enum":false,"alias":false,"const":false,"types":[{"html_id":"vips/Vips","path":"Vips.html","kind":"module","full_name":"Vips","name":"Vips","abstract":false,"locations":[{"filename":"src/vips.cr","line_number":25,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips.cr#L25"},{"filename":"src/vips/connection.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/connection.cr#L1"},{"filename":"src/vips/ext/image.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L12"},{"filename":"src/vips/ext/mutableimage.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L12"},{"filename":"src/vips/gobject.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L1"},{"filename":"src/vips/gvalue.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L1"},{"filename":"src/vips/image.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1"},{"filename":"src/vips/interpolate.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/interpolate.cr#L1"},{"filename":"src/vips/introspect.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L1"},{"filename":"src/vips/mutableimage.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L3"},{"filename":"src/vips/operation.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L1"},{"filename":"src/vips/region.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/region.cr#L1"},{"filename":"src/vips/source.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L1"},{"filename":"src/vips/stats.cr","line_number":6,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/stats.cr#L6"},{"filename":"src/vips/target.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L1"},{"filename":"src/vips/vips.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L1"},{"filename":"src/vips/vipsblob.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L3"},{"filename":"src/vips/vipsobject.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L1"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"VERSION","name":"VERSION","value":"{{ (`shards version \\\"/home/runner/work/crystal-vips/crystal-vips/src\\\"`).chomp.stringify }}"}],"doc":"Provides Crystal language interface to the [libvips](https://github.com/libvips/libvips) image processing library.\nPrograms that use libvips don't manipulate images directly, instead they create pipelines of image processing\noperations starting from a source image. When the pipe is connected to a destination, the whole pipeline executes\nat once and in parallel, streaming the image from source to destination in a set of small fragments.","summary":"

    Provides Crystal language interface to the libvips image processing library.

    ","class_methods":[{"html_id":"at_least_libvips?(x:Int,y:Int,z=0)-class-method","name":"at_least_libvips?","doc":"Is this at least libvips major.minor.[.patch]?","summary":"

    Is this at least libvips major.minor.[.patch]?

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int"},{"name":"y","external_name":"y","restriction":"Int"},{"name":"z","default_value":"0","external_name":"z","restriction":""}],"args_string":"(x : Int, y : Int, z = 0)","args_html":"(x : Int, y : Int, z = 0)","location":{"filename":"src/vips/vips.cr","line_number":87,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L87"},"def":{"name":"at_least_libvips?","args":[{"name":"x","external_name":"x","restriction":"Int"},{"name":"y","external_name":"y","restriction":"Int"},{"name":"z","default_value":"0","external_name":"z","restriction":""}],"visibility":"Public","body":"major = version(0)\nminor = version(1)\npatch = version(2)\n(major > x || ((major == x) && minor > y)) || (((major == x) && (minor == y)) && patch >= z)\n"}},{"html_id":"clear_error-class-method","name":"clear_error","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":186,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L186"},"def":{"name":"clear_error","visibility":"Public","body":"LibVips.vips_error_clear"}},{"html_id":"concurrency-class-method","name":"concurrency","doc":"Returns the number of worker threads that vips uses for image evaluation.","summary":"

    Returns the number of worker threads that vips uses for image evaluation.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L35"},"def":{"name":"concurrency","visibility":"Public","body":"LibVips.vips_concurrency_get"}},{"html_id":"concurrency=(value:Int)-class-method","name":"concurrency=","doc":"Set the size of the pools of worker threads vips uses for image evaluation.","summary":"

    Set the size of the pools of worker threads vips uses for image evaluation.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int"}],"args_string":"(value : Int)","args_html":"(value : Int)","location":{"filename":"src/vips/vips.cr","line_number":40,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L40"},"def":{"name":"concurrency=","args":[{"name":"value","external_name":"value","restriction":"Int"}],"visibility":"Public","body":"if value > 0\nelse\n value = default_concurrency\nend\nLibVips.vips_concurrency_set(value)\n"}},{"html_id":"default_concurrency:Int32-class-method","name":"default_concurrency","doc":"Track the original default concurrency so we can reset to it.","summary":"

    Track the original default concurrency so we can reset to it.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":206,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L206"},"def":{"name":"default_concurrency","return_type":"Int32","visibility":"Public","body":"if (value = @@default_concurrency).nil?\n @@default_concurrency = (LibVips.vips_concurrency_get)\nelse\n value\nend"}},{"html_id":"enum_values(type:LibC::ULong)-class-method","name":"enum_values","doc":"Get all values for a enum (GType).","summary":"

    Get all values for a enum (GType).

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":156,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L156"},"def":{"name":"enum_values","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"typecls = LibVips.g_type_class_ref(type)\nvalues = Hash(String, Int32).new\nif typecls.null?\n return values\nend\nenumcls = (typecls.as(Pointer(LibVips::GEnumClass))).value\nptr = enumcls.values.as(Pointer(LibVips::GEnumValue))\n0.upto(enumcls.n_values - 2) do |i|\n enumval = ptr[i]\n values[String.new(enumval.value_nick)] = enumval.value\nend\nvalues\n"}},{"html_id":"free(mem:Pointer(Void))-class-method","name":"free","doc":"Frees the memory pointed to by `mem`","summary":"

    Frees the memory pointed to by mem

    ","abstract":false,"args":[{"name":"mem","external_name":"mem","restriction":"::Pointer(Void)"}],"args_string":"(mem : Pointer(Void))","args_html":"(mem : Pointer(Void))","location":{"filename":"src/vips/vips.cr","line_number":172,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L172"},"def":{"name":"free","args":[{"name":"mem","external_name":"mem","restriction":"::Pointer(Void)"}],"visibility":"Public","body":"LibVips.g_free(mem)"}},{"html_id":"fundamental_type(type:LibC::ULong)-class-method","name":"fundamental_type","doc":"Extract the fundamental type ID portion.","summary":"

    Extract the fundamental type ID portion.

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":182,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L182"},"def":{"name":"fundamental_type","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"LibVips.g_type_fundamental(type)"}},{"html_id":"get_enums-class-method","name":"get_enums","doc":"Get a list of enums available within the libvips library.","summary":"

    Get a list of enums available within the libvips library.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":149,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L149"},"def":{"name":"get_enums","visibility":"Public","body":"enums = Array(String).new\nLibVips.vips_type_map(type_from_name(\"GEnum\"), ->enum_cb, Box.box(enums), nil)\nenums.sort!\n"}},{"html_id":"get_operations-class-method","name":"get_operations","doc":"Get a list of operations available within the libvips library.\nThis can be useful for documentation generators","summary":"

    Get a list of operations available within the libvips library.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":142,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L142"},"def":{"name":"get_operations","visibility":"Public","body":"nicknames = Array(String).new\nLibVips.vips_type_map(type_from_name(\"VipsOperation\"), ->ops_cb, Box.box(nicknames), nil)\nnicknames.uniq!.sort!\n"}},{"html_id":"get_suffixes-class-method","name":"get_suffixes","doc":"Get a list of all the filename suffixes supported by libvips\nNote: At least libvips 8.8 is needed","summary":"

    Get a list of all the filename suffixes supported by libvips Note: At least libvips 8.8 is needed

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":98,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L98"},"def":{"name":"get_suffixes","visibility":"Public","body":"names = [] of String\nif at_least_libvips?(8, 8)\nelse\n return names\nend\nptr = LibVips.vips_foreign_get_suffixes\ncount = 0\nwhile (strptr = (ptr + count).value)\n names << (String.new(strptr))\n LibVips.g_free(strptr)\n count = count + 1\nend\nLibVips.g_free(ptr)\nnames.uniq!.sort!\n"}},{"html_id":"init-class-method","name":"init","doc":"Starts up the world of VIPS.\nthis function is automatically called","summary":"

    Starts up the world of VIPS.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":16,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L16"},"def":{"name":"init","visibility":"Public","body":"@@initialized || (@@initialized = (LibVips.vips_init(\"CrystalVips\")) == 0)\nif @@initialized\nelse\n raise(VipsException.new(\"unable to initialize libvips\"))\nend\n@@initialized\n"}},{"html_id":"initialized?-class-method","name":"initialized?","doc":"Flag to tell if libvips has been initialized or not.\ninitialization will happen at the load of module and you should only call\n`Vips#init` if auto initialization failed.","summary":"

    Flag to tell if libvips has been initialized or not.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":193,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L193"},"def":{"name":"initialized?","visibility":"Public","body":"@@initialized"}},{"html_id":"leak=(leak)-class-method","name":"leak=","doc":"Enable or disable libvips leak checking.\nWhen enabled, libvips will check for object and area leaks on exit.\nEnabling this option will make libvips run slightly more slowly.","summary":"

    Enable or disable libvips leak checking.

    ","abstract":false,"args":[{"name":"leak","external_name":"leak","restriction":""}],"args_string":"(leak)","args_html":"(leak)","location":{"filename":"src/vips/vips.cr","line_number":198,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L198"},"def":{"name":"leak=","args":[{"name":"leak","external_name":"leak","restriction":""}],"visibility":"Public","body":"@@leak = leak"}},{"html_id":"leak?-class-method","name":"leak?","doc":"Enable or disable libvips leak checking.\nWhen enabled, libvips will check for object and area leaks on exit.\nEnabling this option will make libvips run slightly more slowly.","summary":"

    Enable or disable libvips leak checking.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":198,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L198"},"def":{"name":"leak?","visibility":"Public","body":"@@leak"}},{"html_id":"nickname(type:LibC::ULong)-class-method","name":"nickname","doc":"Return the nickname for a GType.","summary":"

    Return the nickname for a GType.

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":136,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L136"},"def":{"name":"nickname","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"String.new((LibVips.vips_nickname_find(type)) || Bytes.empty)"}},{"html_id":"profile(profile)-class-method","name":"profile","abstract":false,"args":[{"name":"profile","external_name":"profile","restriction":""}],"args_string":"(profile)","args_html":"(profile)","location":{"filename":"src/vips/vips.cr","line_number":30,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L30"},"def":{"name":"profile","args":[{"name":"profile","external_name":"profile","restriction":""}],"visibility":"Public","body":"@@profile = profile\nLibVips.vips_profile_set(@@profile)\n"}},{"html_id":"profile=(profile)-class-method","name":"profile=","doc":"Enable or disable libvips profile recording.\nIf set, vips will record profiling information, and dump it on program\nexit. These profiles can be analyzed with the `vipsprofile` program.","summary":"

    Enable or disable libvips profile recording.

    ","abstract":false,"args":[{"name":"profile","external_name":"profile","restriction":""}],"args_string":"(profile)","args_html":"(profile)","location":{"filename":"src/vips/vips.cr","line_number":203,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L203"},"def":{"name":"profile=","args":[{"name":"profile","external_name":"profile","restriction":""}],"visibility":"Public","body":"@@profile = profile"}},{"html_id":"profile?-class-method","name":"profile?","doc":"Enable or disable libvips profile recording.\nIf set, vips will record profiling information, and dump it on program\nexit. These profiles can be analyzed with the `vipsprofile` program.","summary":"

    Enable or disable libvips profile recording.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":203,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L203"},"def":{"name":"profile?","visibility":"Public","body":"@@profile"}},{"html_id":"report_leaks-class-method","name":"report_leaks","doc":"Reports leaks (hopefully there are none) it also tracks and reports peak memory use.","summary":"

    Reports leaks (hopefully there are none) it also tracks and reports peak memory use.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":114,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L114"},"def":{"name":"report_leaks","visibility":"Public","body":"LibVips.vips_object_print_all\nputs(\"memory: #{Stats.allocations} allocations, #{Stats.mem} bytes\")\nputs(\"files: #{Stats.open_files} open\")\nputs(\"memory: high-water mark: #{Stats.mem_highwater}\")\nerrbuf = String.new(LibVips.vips_error_buffer)\nif errbuf.blank?\nelse\n puts(\"error buffer: #{errbuf}\")\nend\n"}},{"html_id":"shutdown-class-method","name":"shutdown","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":22,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L22"},"def":{"name":"shutdown","visibility":"Public","body":"LibVips.vips_shutdown"}},{"html_id":"type_from_name(nickname:String)-class-method","name":"type_from_name","doc":"Return the GType for a name.","summary":"

    Return the GType for a name.

    ","abstract":false,"args":[{"name":"nickname","external_name":"nickname","restriction":"String"}],"args_string":"(nickname : String)","args_html":"(nickname : String)","location":{"filename":"src/vips/vips.cr","line_number":177,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L177"},"def":{"name":"type_from_name","args":[{"name":"nickname","external_name":"nickname","restriction":"String"}],"visibility":"Public","body":"LibVips.g_type_from_name(nickname)"}},{"html_id":"typefind(basename:String,nickname:String)-class-method","name":"typefind","doc":"Get the GType for a name.\nLooks up the GType for a nickname. Types below basename in the type\nhierarchy are searched.","summary":"

    Get the GType for a name.

    ","abstract":false,"args":[{"name":"basename","external_name":"basename","restriction":"String"},{"name":"nickname","external_name":"nickname","restriction":"String"}],"args_string":"(basename : String, nickname : String)","args_html":"(basename : String, nickname : String)","location":{"filename":"src/vips/vips.cr","line_number":126,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L126"},"def":{"name":"typefind","args":[{"name":"basename","external_name":"basename","restriction":"String"},{"name":"nickname","external_name":"nickname","restriction":"String"}],"visibility":"Public","body":"LibVips.vips_type_find(basename, nickname)"}},{"html_id":"typename(type:LibC::ULong)-class-method","name":"typename","doc":"Returns the name for a GType","summary":"

    Returns the name for a GType

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":131,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L131"},"def":{"name":"typename","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"String.new((LibVips.g_type_name(type)) || Bytes.empty)"}},{"html_id":"vector=(val:Bool)-class-method","name":"vector=","doc":"Enable SIMD and the run-time compiler.\nThis can give a nice speed-up, but can also be unstable on\nsome systems or with some versions of the run-time compiler.","summary":"

    Enable SIMD and the run-time compiler.

    ","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Bool"}],"args_string":"(val : Bool)","args_html":"(val : Bool)","location":{"filename":"src/vips/vips.cr","line_number":82,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L82"},"def":{"name":"vector=","args":[{"name":"val","external_name":"val","restriction":"Bool"}],"visibility":"Public","body":"LibVips.vips_vector_set_enabled(val)"}},{"html_id":"vector?-class-method","name":"vector?","doc":"Returns if SIMD and the run-time compiler is enabled or not","summary":"

    Returns if SIMD and the run-time compiler is enabled or not

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":75,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L75"},"def":{"name":"vector?","visibility":"Public","body":"LibVips.vips_vector_isenabled == 1"}},{"html_id":"version(flag:Int)-class-method","name":"version","doc":"Get the major, minor or patch version number of the libvips library.\nPass 0 to get the major version number\n1 to get minor, 2 to get patch.","summary":"

    Get the major, minor or patch version number of the libvips library.

    ","abstract":false,"args":[{"name":"flag","external_name":"flag","restriction":"Int"}],"args_string":"(flag : Int)","args_html":"(flag : Int)","location":{"filename":"src/vips/vips.cr","line_number":48,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L48"},"def":{"name":"version","args":[{"name":"flag","external_name":"flag","restriction":"Int"}],"visibility":"Public","body":"if (0..2).includes?(flag)\nelse\n raise(ArgumentError.new(\"Flag must be in the range of 0 to 2\"))\nend\n(LibVips.vips_version(flag)).tap do |v|\n if v < 0\n raise(VipsException.new(\"Unable to get library version\"))\n end\nend\n"}},{"html_id":"version-class-method","name":"version","doc":"Returns version of libvips in 3-byte integer","summary":"

    Returns version of libvips in 3-byte integer

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":56,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L56"},"def":{"name":"version","visibility":"Public","body":"if initialized\nelse\n raise(VipsException.new(\"Unable to initialize libvips\"))\nend\nvalue = 0\n0.upto(2) do |flag|\n if flag == 0\n value = version(flag)\n else\n value = (value << 8) + (version(flag))\n end\nend\nvalue\n"}},{"html_id":"version_string-class-method","name":"version_string","doc":"Returns version string of libvips","summary":"

    Returns version string of libvips

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":70,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L70"},"def":{"name":"version_string","visibility":"Public","body":"String.new(LibVips.vips_version_string)"}}],"types":[{"html_id":"vips/Vips/Cache","path":"Vips/Cache.html","kind":"module","full_name":"Vips::Cache","name":"Cache","abstract":false,"locations":[{"filename":"src/vips/cache.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L1"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"class_methods":[{"html_id":"max:Int32-class-method","name":"max","doc":"Gets the maximum number of operations libvips keep in cache","summary":"

    Gets the maximum number of operations libvips keep in cache

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L3"},"def":{"name":"max","return_type":"Int32","visibility":"Public","body":"LibVips.vips_cache_get_max"}},{"html_id":"max=(value:Int32)-class-method","name":"max=","doc":"Sets the maximum number of operations libvips keep in cache","summary":"

    Sets the maximum number of operations libvips keep in cache

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32"}],"args_string":"(value : Int32)","args_html":"(value : Int32)","location":{"filename":"src/vips/cache.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L8"},"def":{"name":"max=","args":[{"name":"value","external_name":"value","restriction":"Int32"}],"visibility":"Public","body":"LibVips.vips_cache_set_max(value)"}},{"html_id":"max_files-class-method","name":"max_files","doc":"Gets the maximum amount of tracked files allowed.","summary":"

    Gets the maximum amount of tracked files allowed.

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":23,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L23"},"def":{"name":"max_files","visibility":"Public","body":"LibVips.vips_cache_get_max_files"}},{"html_id":"max_files=(value:Int32)-class-method","name":"max_files=","doc":"Sets the maximum amount of tracked files allowed.","summary":"

    Sets the maximum amount of tracked files allowed.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32"}],"args_string":"(value : Int32)","args_html":"(value : Int32)","location":{"filename":"src/vips/cache.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L28"},"def":{"name":"max_files=","args":[{"name":"value","external_name":"value","restriction":"Int32"}],"visibility":"Public","body":"LibVips.vips_cache_set_max_files(value)"}},{"html_id":"max_mem-class-method","name":"max_mem","doc":"Gets the maximum amount of tracked memory allowed.","summary":"

    Gets the maximum amount of tracked memory allowed.

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":13,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L13"},"def":{"name":"max_mem","visibility":"Public","body":"LibVips.vips_cache_get_max_mem"}},{"html_id":"max_mem=(value:LibC::SizeT)-class-method","name":"max_mem=","doc":"Sets the maximum amount of tracked memory allowed.","summary":"

    Sets the maximum amount of tracked memory allowed.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"LibC::SizeT"}],"args_string":"(value : LibC::SizeT)","args_html":"(value : LibC::SizeT)","location":{"filename":"src/vips/cache.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L18"},"def":{"name":"max_mem=","args":[{"name":"value","external_name":"value","restriction":"LibC::SizeT"}],"visibility":"Public","body":"LibVips.vips_cache_set_max_mem(value)"}},{"html_id":"size-class-method","name":"size","doc":"Gets the current number of operations in cache.","summary":"

    Gets the current number of operations in cache.

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":33,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L33"},"def":{"name":"size","visibility":"Public","body":"LibVips.vips_cache_get_size"}},{"html_id":"trace=(value:Bool)-class-method","name":"trace=","doc":"Enable or disable libvips cache tracing.","summary":"

    Enable or disable libvips cache tracing.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool)","args_html":"(value : Bool)","location":{"filename":"src/vips/cache.cr","line_number":38,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L38"},"def":{"name":"trace=","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"visibility":"Public","body":"LibVips.vips_cache_set_trace(value)"}}]},{"html_id":"vips/Vips/Connection","path":"Vips/Connection.html","kind":"class","full_name":"Vips::Connection","name":"Connection","abstract":true,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/connection.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/connection.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"filename:String|Nil-instance-method","name":"filename","doc":"Get the filename associated with a connection or nil if there is no associated file","summary":"

    Get the filename associated with a connection or nil if there is no associated file

    ","abstract":false,"location":{"filename":"src/vips/connection.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/connection.cr#L8"},"def":{"name":"filename","return_type":"String | ::Nil","visibility":"Public","body":"ptr = LibVips.vips_connection_filename(@chandle)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"nick:String|Nil-instance-method","name":"nick","doc":"Make a human-readable name for a connection suitable for error messages","summary":"

    Make a human-readable name for a connection suitable for error messages

    ","abstract":false,"location":{"filename":"src/vips/connection.cr","line_number":14,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/connection.cr#L14"},"def":{"name":"nick","return_type":"String | ::Nil","visibility":"Public","body":"ptr = LibVips.vips_connection_nick(@chandle)\nptr.null? ? nil : String.new(ptr)\n"}}]},{"html_id":"vips/Vips/Enums","path":"Vips/Enums.html","kind":"module","full_name":"Vips::Enums","name":"Enums","abstract":false,"locations":[{"filename":"src/vips/enums.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L1"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"types":[{"html_id":"vips/Vips/Enums/Access","path":"Vips/Enums/Access.html","kind":"enum","full_name":"Vips::Enums::Access","name":"Access","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L2"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Random","name":"Random","value":"0","doc":"Requests can come in any order","summary":"

    Requests can come in any order

    "},{"id":"Sequential","name":"Sequential","value":"1","doc":"Means requests will be top-to-bottom, but with some\namount of buffering behind the read point for small non-local\naccesses.","summary":"

    Means requests will be top-to-bottom, but with some amount of buffering behind the read point for small non-local accesses.

    "},{"id":"SequentialUnbuffered","name":"SequentialUnbuffered","value":"2","doc":"Top-to-bottom without a buffer.","summary":"

    Top-to-bottom without a buffer.

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"random?-instance-method","name":"random?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":4,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L4"},"def":{"name":"random?","visibility":"Public","body":"self == Random"}},{"html_id":"sequential?-instance-method","name":"sequential?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L9"},"def":{"name":"sequential?","visibility":"Public","body":"self == Sequential"}},{"html_id":"sequential_unbuffered?-instance-method","name":"sequential_unbuffered?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L12"},"def":{"name":"sequential_unbuffered?","visibility":"Public","body":"self == SequentialUnbuffered"}}]},{"html_id":"vips/Vips/Enums/Align","path":"Vips/Enums/Align.html","kind":"enum","full_name":"Vips::Enums::Align","name":"Align","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":16,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L16"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Low","name":"Low","value":"0","doc":"Align on the low coordinate edge","summary":"

    Align on the low coordinate edge

    "},{"id":"Centre","name":"Centre","value":"1","doc":"Align on the centre.","summary":"

    Align on the centre.

    "},{"id":"High","name":"High","value":"2","doc":"Align on the high coordinate edge","summary":"

    Align on the high coordinate edge

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"doc":"Various types of alignment.","summary":"

    Various types of alignment.

    ","instance_methods":[{"html_id":"centre?-instance-method","name":"centre?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":21,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L21"},"def":{"name":"centre?","visibility":"Public","body":"self == Centre"}},{"html_id":"high?-instance-method","name":"high?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":24,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L24"},"def":{"name":"high?","visibility":"Public","body":"self == High"}},{"html_id":"low?-instance-method","name":"low?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L18"},"def":{"name":"low?","visibility":"Public","body":"self == Low"}}]},{"html_id":"vips/Vips/Enums/Angle","path":"Vips/Enums/Angle.html","kind":"enum","full_name":"Vips::Enums::Angle","name":"Angle","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L27"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"D0","name":"D0","value":"0"},{"id":"D90","name":"D90","value":"1"},{"id":"D180","name":"D180","value":"2"},{"id":"D270","name":"D270","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"d0?-instance-method","name":"d0?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L28"},"def":{"name":"d0?","visibility":"Public","body":"self == D0"}},{"html_id":"d180?-instance-method","name":"d180?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":30,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L30"},"def":{"name":"d180?","visibility":"Public","body":"self == D180"}},{"html_id":"d270?-instance-method","name":"d270?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":31,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L31"},"def":{"name":"d270?","visibility":"Public","body":"self == D270"}},{"html_id":"d90?-instance-method","name":"d90?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":29,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L29"},"def":{"name":"d90?","visibility":"Public","body":"self == D90"}}]},{"html_id":"vips/Vips/Enums/Angle45","path":"Vips/Enums/Angle45.html","kind":"enum","full_name":"Vips::Enums::Angle45","name":"Angle45","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":34,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L34"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"D0","name":"D0","value":"0"},{"id":"D45","name":"D45","value":"1"},{"id":"D90","name":"D90","value":"2"},{"id":"D135","name":"D135","value":"3"},{"id":"D180","name":"D180","value":"4"},{"id":"D225","name":"D225","value":"5"},{"id":"D270","name":"D270","value":"6"},{"id":"D315","name":"D315","value":"7"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"d0?-instance-method","name":"d0?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L35"},"def":{"name":"d0?","visibility":"Public","body":"self == D0"}},{"html_id":"d135?-instance-method","name":"d135?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":38,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L38"},"def":{"name":"d135?","visibility":"Public","body":"self == D135"}},{"html_id":"d180?-instance-method","name":"d180?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":39,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L39"},"def":{"name":"d180?","visibility":"Public","body":"self == D180"}},{"html_id":"d225?-instance-method","name":"d225?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":40,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L40"},"def":{"name":"d225?","visibility":"Public","body":"self == D225"}},{"html_id":"d270?-instance-method","name":"d270?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":41,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L41"},"def":{"name":"d270?","visibility":"Public","body":"self == D270"}},{"html_id":"d315?-instance-method","name":"d315?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":42,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L42"},"def":{"name":"d315?","visibility":"Public","body":"self == D315"}},{"html_id":"d45?-instance-method","name":"d45?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":36,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L36"},"def":{"name":"d45?","visibility":"Public","body":"self == D45"}},{"html_id":"d90?-instance-method","name":"d90?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":37,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L37"},"def":{"name":"d90?","visibility":"Public","body":"self == D90"}}]},{"html_id":"vips/Vips/Enums/BandFormat","path":"Vips/Enums/BandFormat.html","kind":"enum","full_name":"Vips::Enums::BandFormat","name":"BandFormat","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":45,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L45"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Notset","name":"Notset","value":"-1"},{"id":"Uchar","name":"Uchar","value":"0"},{"id":"Char","name":"Char","value":"1"},{"id":"Ushort","name":"Ushort","value":"2"},{"id":"Short","name":"Short","value":"3"},{"id":"Uint","name":"Uint","value":"4"},{"id":"Int","name":"Int","value":"5"},{"id":"Float","name":"Float","value":"6"},{"id":"Complex","name":"Complex","value":"7"},{"id":"Double","name":"Double","value":"8"},{"id":"Dpcomplex","name":"Dpcomplex","value":"9"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"char?-instance-method","name":"char?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":48,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L48"},"def":{"name":"char?","visibility":"Public","body":"self == Char"}},{"html_id":"complex?-instance-method","name":"complex?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":54,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L54"},"def":{"name":"complex?","visibility":"Public","body":"self == Complex"}},{"html_id":"double?-instance-method","name":"double?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":55,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L55"},"def":{"name":"double?","visibility":"Public","body":"self == Double"}},{"html_id":"dpcomplex?-instance-method","name":"dpcomplex?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":56,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L56"},"def":{"name":"dpcomplex?","visibility":"Public","body":"self == Dpcomplex"}},{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":53,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L53"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"int?-instance-method","name":"int?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":52,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L52"},"def":{"name":"int?","visibility":"Public","body":"self == Int"}},{"html_id":"notset?-instance-method","name":"notset?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":46,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L46"},"def":{"name":"notset?","visibility":"Public","body":"self == Notset"}},{"html_id":"short?-instance-method","name":"short?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":50,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L50"},"def":{"name":"short?","visibility":"Public","body":"self == Short"}},{"html_id":"uchar?-instance-method","name":"uchar?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L47"},"def":{"name":"uchar?","visibility":"Public","body":"self == Uchar"}},{"html_id":"uint?-instance-method","name":"uint?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":51,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L51"},"def":{"name":"uint?","visibility":"Public","body":"self == Uint"}},{"html_id":"ushort?-instance-method","name":"ushort?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":49,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L49"},"def":{"name":"ushort?","visibility":"Public","body":"self == Ushort"}}]},{"html_id":"vips/Vips/Enums/BlendMode","path":"Vips/Enums/BlendMode.html","kind":"enum","full_name":"Vips::Enums::BlendMode","name":"BlendMode","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":59,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L59"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Clear","name":"Clear","value":"0"},{"id":"Source","name":"Source","value":"1"},{"id":"Over","name":"Over","value":"2"},{"id":"In","name":"In","value":"3"},{"id":"Out","name":"Out","value":"4"},{"id":"Atop","name":"Atop","value":"5"},{"id":"Dest","name":"Dest","value":"6"},{"id":"DestOver","name":"DestOver","value":"7"},{"id":"DestIn","name":"DestIn","value":"8"},{"id":"DestOut","name":"DestOut","value":"9"},{"id":"DestAtop","name":"DestAtop","value":"10"},{"id":"Xor","name":"Xor","value":"11"},{"id":"Add","name":"Add","value":"12"},{"id":"Saturate","name":"Saturate","value":"13"},{"id":"Multiply","name":"Multiply","value":"14"},{"id":"Screen","name":"Screen","value":"15"},{"id":"Overlay","name":"Overlay","value":"16"},{"id":"Darken","name":"Darken","value":"17"},{"id":"Lighten","name":"Lighten","value":"18"},{"id":"ColourDodge","name":"ColourDodge","value":"19"},{"id":"ColourBurn","name":"ColourBurn","value":"20"},{"id":"HardLight","name":"HardLight","value":"21"},{"id":"SoftLight","name":"SoftLight","value":"22"},{"id":"Difference","name":"Difference","value":"23"},{"id":"Exclusion","name":"Exclusion","value":"24"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"add?-instance-method","name":"add?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":72,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L72"},"def":{"name":"add?","visibility":"Public","body":"self == Add"}},{"html_id":"atop?-instance-method","name":"atop?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L65"},"def":{"name":"atop?","visibility":"Public","body":"self == Atop"}},{"html_id":"clear?-instance-method","name":"clear?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":60,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L60"},"def":{"name":"clear?","visibility":"Public","body":"self == Clear"}},{"html_id":"colour_burn?-instance-method","name":"colour_burn?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":80,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L80"},"def":{"name":"colour_burn?","visibility":"Public","body":"self == ColourBurn"}},{"html_id":"colour_dodge?-instance-method","name":"colour_dodge?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L79"},"def":{"name":"colour_dodge?","visibility":"Public","body":"self == ColourDodge"}},{"html_id":"darken?-instance-method","name":"darken?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":77,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L77"},"def":{"name":"darken?","visibility":"Public","body":"self == Darken"}},{"html_id":"dest?-instance-method","name":"dest?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":66,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L66"},"def":{"name":"dest?","visibility":"Public","body":"self == Dest"}},{"html_id":"dest_atop?-instance-method","name":"dest_atop?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":70,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L70"},"def":{"name":"dest_atop?","visibility":"Public","body":"self == DestAtop"}},{"html_id":"dest_in?-instance-method","name":"dest_in?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":68,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L68"},"def":{"name":"dest_in?","visibility":"Public","body":"self == DestIn"}},{"html_id":"dest_out?-instance-method","name":"dest_out?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":69,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L69"},"def":{"name":"dest_out?","visibility":"Public","body":"self == DestOut"}},{"html_id":"dest_over?-instance-method","name":"dest_over?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":67,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L67"},"def":{"name":"dest_over?","visibility":"Public","body":"self == DestOver"}},{"html_id":"difference?-instance-method","name":"difference?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":83,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L83"},"def":{"name":"difference?","visibility":"Public","body":"self == Difference"}},{"html_id":"exclusion?-instance-method","name":"exclusion?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":84,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L84"},"def":{"name":"exclusion?","visibility":"Public","body":"self == Exclusion"}},{"html_id":"hard_light?-instance-method","name":"hard_light?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":81,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L81"},"def":{"name":"hard_light?","visibility":"Public","body":"self == HardLight"}},{"html_id":"in?-instance-method","name":"in?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":63,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L63"},"def":{"name":"in?","visibility":"Public","body":"self == In"}},{"html_id":"lighten?-instance-method","name":"lighten?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":78,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L78"},"def":{"name":"lighten?","visibility":"Public","body":"self == Lighten"}},{"html_id":"multiply?-instance-method","name":"multiply?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":74,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L74"},"def":{"name":"multiply?","visibility":"Public","body":"self == Multiply"}},{"html_id":"out?-instance-method","name":"out?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":64,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L64"},"def":{"name":"out?","visibility":"Public","body":"self == Out"}},{"html_id":"over?-instance-method","name":"over?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":62,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L62"},"def":{"name":"over?","visibility":"Public","body":"self == Over"}},{"html_id":"overlay?-instance-method","name":"overlay?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":76,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L76"},"def":{"name":"overlay?","visibility":"Public","body":"self == Overlay"}},{"html_id":"saturate?-instance-method","name":"saturate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":73,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L73"},"def":{"name":"saturate?","visibility":"Public","body":"self == Saturate"}},{"html_id":"screen?-instance-method","name":"screen?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":75,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L75"},"def":{"name":"screen?","visibility":"Public","body":"self == Screen"}},{"html_id":"soft_light?-instance-method","name":"soft_light?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":82,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L82"},"def":{"name":"soft_light?","visibility":"Public","body":"self == SoftLight"}},{"html_id":"source?-instance-method","name":"source?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":61,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L61"},"def":{"name":"source?","visibility":"Public","body":"self == Source"}},{"html_id":"xor?-instance-method","name":"xor?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":71,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L71"},"def":{"name":"xor?","visibility":"Public","body":"self == Xor"}}]},{"html_id":"vips/Vips/Enums/Coding","path":"Vips/Enums/Coding.html","kind":"enum","full_name":"Vips::Enums::Coding","name":"Coding","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":87,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L87"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"None","name":"None","value":"0"},{"id":"Labq","name":"Labq","value":"2"},{"id":"Rad","name":"Rad","value":"6"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":88,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L88"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"labq?-instance-method","name":"labq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":90,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L90"},"def":{"name":"labq?","visibility":"Public","body":"self == Labq"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":89,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L89"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"rad?-instance-method","name":"rad?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":91,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L91"},"def":{"name":"rad?","visibility":"Public","body":"self == Rad"}}]},{"html_id":"vips/Vips/Enums/Combine","path":"Vips/Enums/Combine.html","kind":"enum","full_name":"Vips::Enums::Combine","name":"Combine","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":94,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L94"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Max","name":"Max","value":"0"},{"id":"Sum","name":"Sum","value":"1"},{"id":"Min","name":"Min","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"max?-instance-method","name":"max?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":95,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L95"},"def":{"name":"max?","visibility":"Public","body":"self == Max"}},{"html_id":"min?-instance-method","name":"min?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":97,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L97"},"def":{"name":"min?","visibility":"Public","body":"self == Min"}},{"html_id":"sum?-instance-method","name":"sum?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":96,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L96"},"def":{"name":"sum?","visibility":"Public","body":"self == Sum"}}]},{"html_id":"vips/Vips/Enums/CombineMode","path":"Vips/Enums/CombineMode.html","kind":"enum","full_name":"Vips::Enums::CombineMode","name":"CombineMode","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":100,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L100"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Set","name":"Set","value":"0"},{"id":"Add","name":"Add","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"add?-instance-method","name":"add?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":102,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L102"},"def":{"name":"add?","visibility":"Public","body":"self == Add"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":101,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L101"},"def":{"name":"set?","visibility":"Public","body":"self == Set"}}]},{"html_id":"vips/Vips/Enums/CompassDirection","path":"Vips/Enums/CompassDirection.html","kind":"enum","full_name":"Vips::Enums::CompassDirection","name":"CompassDirection","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":105,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L105"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Centre","name":"Centre","value":"0"},{"id":"North","name":"North","value":"1"},{"id":"East","name":"East","value":"2"},{"id":"South","name":"South","value":"3"},{"id":"West","name":"West","value":"4"},{"id":"NorthEast","name":"NorthEast","value":"5"},{"id":"SouthEast","name":"SouthEast","value":"6"},{"id":"SouthWest","name":"SouthWest","value":"7"},{"id":"NorthWest","name":"NorthWest","value":"8"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"centre?-instance-method","name":"centre?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":106,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L106"},"def":{"name":"centre?","visibility":"Public","body":"self == Centre"}},{"html_id":"east?-instance-method","name":"east?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":108,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L108"},"def":{"name":"east?","visibility":"Public","body":"self == East"}},{"html_id":"north?-instance-method","name":"north?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":107,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L107"},"def":{"name":"north?","visibility":"Public","body":"self == North"}},{"html_id":"north_east?-instance-method","name":"north_east?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":111,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L111"},"def":{"name":"north_east?","visibility":"Public","body":"self == NorthEast"}},{"html_id":"north_west?-instance-method","name":"north_west?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":114,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L114"},"def":{"name":"north_west?","visibility":"Public","body":"self == NorthWest"}},{"html_id":"south?-instance-method","name":"south?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":109,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L109"},"def":{"name":"south?","visibility":"Public","body":"self == South"}},{"html_id":"south_east?-instance-method","name":"south_east?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":112,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L112"},"def":{"name":"south_east?","visibility":"Public","body":"self == SouthEast"}},{"html_id":"south_west?-instance-method","name":"south_west?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":113,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L113"},"def":{"name":"south_west?","visibility":"Public","body":"self == SouthWest"}},{"html_id":"west?-instance-method","name":"west?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":110,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L110"},"def":{"name":"west?","visibility":"Public","body":"self == West"}}]},{"html_id":"vips/Vips/Enums/DemandStyle","path":"Vips/Enums/DemandStyle.html","kind":"enum","full_name":"Vips::Enums::DemandStyle","name":"DemandStyle","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":117,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L117"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"Smalltile","name":"Smalltile","value":"0"},{"id":"Fatstrip","name":"Fatstrip","value":"1"},{"id":"Thinstrip","name":"Thinstrip","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":118,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L118"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"fatstrip?-instance-method","name":"fatstrip?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":120,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L120"},"def":{"name":"fatstrip?","visibility":"Public","body":"self == Fatstrip"}},{"html_id":"smalltile?-instance-method","name":"smalltile?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":119,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L119"},"def":{"name":"smalltile?","visibility":"Public","body":"self == Smalltile"}},{"html_id":"thinstrip?-instance-method","name":"thinstrip?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":121,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L121"},"def":{"name":"thinstrip?","visibility":"Public","body":"self == Thinstrip"}}]},{"html_id":"vips/Vips/Enums/Direction","path":"Vips/Enums/Direction.html","kind":"enum","full_name":"Vips::Enums::Direction","name":"Direction","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":124,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L124"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Horizontal","name":"Horizontal","value":"0"},{"id":"Vertical","name":"Vertical","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"horizontal?-instance-method","name":"horizontal?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":125,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L125"},"def":{"name":"horizontal?","visibility":"Public","body":"self == Horizontal"}},{"html_id":"vertical?-instance-method","name":"vertical?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":126,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L126"},"def":{"name":"vertical?","visibility":"Public","body":"self == Vertical"}}]},{"html_id":"vips/Vips/Enums/Extend","path":"Vips/Enums/Extend.html","kind":"enum","full_name":"Vips::Enums::Extend","name":"Extend","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":129,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L129"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Black","name":"Black","value":"0"},{"id":"Copy","name":"Copy","value":"1"},{"id":"Repeat","name":"Repeat","value":"2"},{"id":"Mirror","name":"Mirror","value":"3"},{"id":"White","name":"White","value":"4"},{"id":"Background","name":"Background","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"background?-instance-method","name":"background?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":135,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L135"},"def":{"name":"background?","visibility":"Public","body":"self == Background"}},{"html_id":"black?-instance-method","name":"black?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":130,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L130"},"def":{"name":"black?","visibility":"Public","body":"self == Black"}},{"html_id":"copy?-instance-method","name":"copy?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":131,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L131"},"def":{"name":"copy?","visibility":"Public","body":"self == Copy"}},{"html_id":"mirror?-instance-method","name":"mirror?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":133,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L133"},"def":{"name":"mirror?","visibility":"Public","body":"self == Mirror"}},{"html_id":"repeat?-instance-method","name":"repeat?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":132,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L132"},"def":{"name":"repeat?","visibility":"Public","body":"self == Repeat"}},{"html_id":"white?-instance-method","name":"white?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":134,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L134"},"def":{"name":"white?","visibility":"Public","body":"self == White"}}]},{"html_id":"vips/Vips/Enums/FailOn","path":"Vips/Enums/FailOn.html","kind":"enum","full_name":"Vips::Enums::FailOn","name":"FailOn","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":142,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L142"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0","doc":"Never stop","summary":"

    Never stop

    "},{"id":"Truncated","name":"Truncated","value":"1","doc":"Stop on image truncated, nothing else","summary":"

    Stop on image truncated, nothing else

    "},{"id":"Error","name":"Error","value":"2","doc":"Stop on serious error or truncation","summary":"

    Stop on serious error or truncation

    "},{"id":"Warning","name":"Warning","value":"3","doc":"Stop on anything, even warnings","summary":"

    Stop on anything, even warnings

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"doc":"How sensitive loaders are to errors, from never stop (very insensitive), to\nstop on the smallest warning (very sensitive).\n\nEach one implies the ones before it, so `Error` implies `Truncated`","summary":"

    How sensitive loaders are to errors, from never stop (very insensitive), to stop on the smallest warning (very sensitive).

    ","instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":150,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L150"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":144,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L144"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"truncated?-instance-method","name":"truncated?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":147,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L147"},"def":{"name":"truncated?","visibility":"Public","body":"self == Truncated"}},{"html_id":"warning?-instance-method","name":"warning?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":153,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L153"},"def":{"name":"warning?","visibility":"Public","body":"self == Warning"}}]},{"html_id":"vips/Vips/Enums/ForeignDzContainer","path":"Vips/Enums/ForeignDzContainer.html","kind":"enum","full_name":"Vips::Enums::ForeignDzContainer","name":"ForeignDzContainer","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":156,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L156"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Fs","name":"Fs","value":"0"},{"id":"Zip","name":"Zip","value":"1"},{"id":"Szi","name":"Szi","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"fs?-instance-method","name":"fs?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":157,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L157"},"def":{"name":"fs?","visibility":"Public","body":"self == Fs"}},{"html_id":"szi?-instance-method","name":"szi?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":159,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L159"},"def":{"name":"szi?","visibility":"Public","body":"self == Szi"}},{"html_id":"zip?-instance-method","name":"zip?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":158,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L158"},"def":{"name":"zip?","visibility":"Public","body":"self == Zip"}}]},{"html_id":"vips/Vips/Enums/ForeignDzDepth","path":"Vips/Enums/ForeignDzDepth.html","kind":"enum","full_name":"Vips::Enums::ForeignDzDepth","name":"ForeignDzDepth","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":162,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L162"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Onepixel","name":"Onepixel","value":"0"},{"id":"Onetile","name":"Onetile","value":"1"},{"id":"One","name":"One","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"one?-instance-method","name":"one?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":165,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L165"},"def":{"name":"one?","visibility":"Public","body":"self == One"}},{"html_id":"onepixel?-instance-method","name":"onepixel?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":163,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L163"},"def":{"name":"onepixel?","visibility":"Public","body":"self == Onepixel"}},{"html_id":"onetile?-instance-method","name":"onetile?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":164,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L164"},"def":{"name":"onetile?","visibility":"Public","body":"self == Onetile"}}]},{"html_id":"vips/Vips/Enums/ForeignDzLayout","path":"Vips/Enums/ForeignDzLayout.html","kind":"enum","full_name":"Vips::Enums::ForeignDzLayout","name":"ForeignDzLayout","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":168,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L168"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Dz","name":"Dz","value":"0"},{"id":"Zoomify","name":"Zoomify","value":"1"},{"id":"Google","name":"Google","value":"2"},{"id":"Iiif","name":"Iiif","value":"3"},{"id":"Iiif3","name":"Iiif3","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"dz?-instance-method","name":"dz?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":169,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L169"},"def":{"name":"dz?","visibility":"Public","body":"self == Dz"}},{"html_id":"google?-instance-method","name":"google?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":171,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L171"},"def":{"name":"google?","visibility":"Public","body":"self == Google"}},{"html_id":"iiif3?-instance-method","name":"iiif3?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":173,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L173"},"def":{"name":"iiif3?","visibility":"Public","body":"self == Iiif3"}},{"html_id":"iiif?-instance-method","name":"iiif?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":172,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L172"},"def":{"name":"iiif?","visibility":"Public","body":"self == Iiif"}},{"html_id":"zoomify?-instance-method","name":"zoomify?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":170,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L170"},"def":{"name":"zoomify?","visibility":"Public","body":"self == Zoomify"}}]},{"html_id":"vips/Vips/Enums/ForeignFlags","path":"Vips/Enums/ForeignFlags.html","kind":"enum","full_name":"Vips::Enums::ForeignFlags","name":"ForeignFlags","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":414,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L414"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Partial","name":"Partial","value":"1"},{"id":"Bigendian","name":"Bigendian","value":"2"},{"id":"Sequential","name":"Sequential","value":"4"},{"id":"None","name":"None","value":"0"},{"id":"All","name":"All","value":"7"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"bigendian?-instance-method","name":"bigendian?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":416,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L416"},"def":{"name":"bigendian?","visibility":"Public","body":"self.includes?(Bigendian)"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":414,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L414"},"def":{"name":"none?","visibility":"Public","body":"value == 0"}},{"html_id":"partial?-instance-method","name":"partial?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":415,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L415"},"def":{"name":"partial?","visibility":"Public","body":"self.includes?(Partial)"}},{"html_id":"sequential?-instance-method","name":"sequential?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":417,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L417"},"def":{"name":"sequential?","visibility":"Public","body":"self.includes?(Sequential)"}}]},{"html_id":"vips/Vips/Enums/ForeignHeifCompression","path":"Vips/Enums/ForeignHeifCompression.html","kind":"enum","full_name":"Vips::Enums::ForeignHeifCompression","name":"ForeignHeifCompression","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":176,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L176"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Hevc","name":"Hevc","value":"1"},{"id":"Avc","name":"Avc","value":"2"},{"id":"Jpeg","name":"Jpeg","value":"3"},{"id":"Av1","name":"Av1","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"av1?-instance-method","name":"av1?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":180,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L180"},"def":{"name":"av1?","visibility":"Public","body":"self == Av1"}},{"html_id":"avc?-instance-method","name":"avc?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":178,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L178"},"def":{"name":"avc?","visibility":"Public","body":"self == Avc"}},{"html_id":"hevc?-instance-method","name":"hevc?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":177,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L177"},"def":{"name":"hevc?","visibility":"Public","body":"self == Hevc"}},{"html_id":"jpeg?-instance-method","name":"jpeg?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":179,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L179"},"def":{"name":"jpeg?","visibility":"Public","body":"self == Jpeg"}}]},{"html_id":"vips/Vips/Enums/ForeignJpegSubsample","path":"Vips/Enums/ForeignJpegSubsample.html","kind":"enum","full_name":"Vips::Enums::ForeignJpegSubsample","name":"ForeignJpegSubsample","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":183,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L183"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"On","name":"On","value":"1"},{"id":"Off","name":"Off","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":184,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L184"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":186,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L186"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":185,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L185"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"vips/Vips/Enums/ForeignPpmFormat","path":"Vips/Enums/ForeignPpmFormat.html","kind":"enum","full_name":"Vips::Enums::ForeignPpmFormat","name":"ForeignPpmFormat","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":189,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L189"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pbm","name":"Pbm","value":"0"},{"id":"Pgm","name":"Pgm","value":"1"},{"id":"Ppm","name":"Ppm","value":"2"},{"id":"Pfm","name":"Pfm","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"pbm?-instance-method","name":"pbm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":190,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L190"},"def":{"name":"pbm?","visibility":"Public","body":"self == Pbm"}},{"html_id":"pfm?-instance-method","name":"pfm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":193,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L193"},"def":{"name":"pfm?","visibility":"Public","body":"self == Pfm"}},{"html_id":"pgm?-instance-method","name":"pgm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":191,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L191"},"def":{"name":"pgm?","visibility":"Public","body":"self == Pgm"}},{"html_id":"ppm?-instance-method","name":"ppm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":192,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L192"},"def":{"name":"ppm?","visibility":"Public","body":"self == Ppm"}}]},{"html_id":"vips/Vips/Enums/ForeignSubsample","path":"Vips/Enums/ForeignSubsample.html","kind":"enum","full_name":"Vips::Enums::ForeignSubsample","name":"ForeignSubsample","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":196,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L196"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"On","name":"On","value":"1"},{"id":"Off","name":"Off","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":197,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L197"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":199,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L199"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":198,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L198"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"vips/Vips/Enums/ForeignTiffCompression","path":"Vips/Enums/ForeignTiffCompression.html","kind":"enum","full_name":"Vips::Enums::ForeignTiffCompression","name":"ForeignTiffCompression","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":202,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L202"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Jpeg","name":"Jpeg","value":"1"},{"id":"Deflate","name":"Deflate","value":"2"},{"id":"Packbits","name":"Packbits","value":"3"},{"id":"Ccittfax4","name":"Ccittfax4","value":"4"},{"id":"Lzw","name":"Lzw","value":"5"},{"id":"Webp","name":"Webp","value":"6"},{"id":"Zstd","name":"Zstd","value":"7"},{"id":"Jp2k","name":"Jp2k","value":"8"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"ccittfax4?-instance-method","name":"ccittfax4?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":207,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L207"},"def":{"name":"ccittfax4?","visibility":"Public","body":"self == Ccittfax4"}},{"html_id":"deflate?-instance-method","name":"deflate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":205,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L205"},"def":{"name":"deflate?","visibility":"Public","body":"self == Deflate"}},{"html_id":"jp2k?-instance-method","name":"jp2k?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":211,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L211"},"def":{"name":"jp2k?","visibility":"Public","body":"self == Jp2k"}},{"html_id":"jpeg?-instance-method","name":"jpeg?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":204,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L204"},"def":{"name":"jpeg?","visibility":"Public","body":"self == Jpeg"}},{"html_id":"lzw?-instance-method","name":"lzw?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":208,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L208"},"def":{"name":"lzw?","visibility":"Public","body":"self == Lzw"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":203,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L203"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"packbits?-instance-method","name":"packbits?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":206,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L206"},"def":{"name":"packbits?","visibility":"Public","body":"self == Packbits"}},{"html_id":"webp?-instance-method","name":"webp?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":209,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L209"},"def":{"name":"webp?","visibility":"Public","body":"self == Webp"}},{"html_id":"zstd?-instance-method","name":"zstd?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":210,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L210"},"def":{"name":"zstd?","visibility":"Public","body":"self == Zstd"}}]},{"html_id":"vips/Vips/Enums/ForeignTiffPredictor","path":"Vips/Enums/ForeignTiffPredictor.html","kind":"enum","full_name":"Vips::Enums::ForeignTiffPredictor","name":"ForeignTiffPredictor","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":214,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L214"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"1"},{"id":"Horizontal","name":"Horizontal","value":"2"},{"id":"Float","name":"Float","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":217,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L217"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"horizontal?-instance-method","name":"horizontal?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":216,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L216"},"def":{"name":"horizontal?","visibility":"Public","body":"self == Horizontal"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":215,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L215"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"vips/Vips/Enums/ForeignTiffResunit","path":"Vips/Enums/ForeignTiffResunit.html","kind":"enum","full_name":"Vips::Enums::ForeignTiffResunit","name":"ForeignTiffResunit","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":220,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L220"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Cm","name":"Cm","value":"0"},{"id":"Inch","name":"Inch","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"cm?-instance-method","name":"cm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":221,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L221"},"def":{"name":"cm?","visibility":"Public","body":"self == Cm"}},{"html_id":"inch?-instance-method","name":"inch?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":222,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L222"},"def":{"name":"inch?","visibility":"Public","body":"self == Inch"}}]},{"html_id":"vips/Vips/Enums/ForeignWebpPreset","path":"Vips/Enums/ForeignWebpPreset.html","kind":"enum","full_name":"Vips::Enums::ForeignWebpPreset","name":"ForeignWebpPreset","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":225,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L225"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Default","name":"Default","value":"0"},{"id":"Picture","name":"Picture","value":"1"},{"id":"Photo","name":"Photo","value":"2"},{"id":"Drawing","name":"Drawing","value":"3"},{"id":"Icon","name":"Icon","value":"4"},{"id":"Text","name":"Text","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"default?-instance-method","name":"default?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":226,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L226"},"def":{"name":"default?","visibility":"Public","body":"self == Default"}},{"html_id":"drawing?-instance-method","name":"drawing?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":229,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L229"},"def":{"name":"drawing?","visibility":"Public","body":"self == Drawing"}},{"html_id":"icon?-instance-method","name":"icon?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":230,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L230"},"def":{"name":"icon?","visibility":"Public","body":"self == Icon"}},{"html_id":"photo?-instance-method","name":"photo?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":228,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L228"},"def":{"name":"photo?","visibility":"Public","body":"self == Photo"}},{"html_id":"picture?-instance-method","name":"picture?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":227,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L227"},"def":{"name":"picture?","visibility":"Public","body":"self == Picture"}},{"html_id":"text?-instance-method","name":"text?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":231,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L231"},"def":{"name":"text?","visibility":"Public","body":"self == Text"}}]},{"html_id":"vips/Vips/Enums/ImageType","path":"Vips/Enums/ImageType.html","kind":"enum","full_name":"Vips::Enums::ImageType","name":"ImageType","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":234,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L234"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"None","name":"None","value":"0"},{"id":"Setbuf","name":"Setbuf","value":"1"},{"id":"SetbufForeign","name":"SetbufForeign","value":"2"},{"id":"Openin","name":"Openin","value":"3"},{"id":"Mmapin","name":"Mmapin","value":"4"},{"id":"Mmapinrw","name":"Mmapinrw","value":"5"},{"id":"Openout","name":"Openout","value":"6"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":235,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L235"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"mmapin?-instance-method","name":"mmapin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":240,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L240"},"def":{"name":"mmapin?","visibility":"Public","body":"self == Mmapin"}},{"html_id":"mmapinrw?-instance-method","name":"mmapinrw?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":241,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L241"},"def":{"name":"mmapinrw?","visibility":"Public","body":"self == Mmapinrw"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":236,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L236"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"openin?-instance-method","name":"openin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":239,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L239"},"def":{"name":"openin?","visibility":"Public","body":"self == Openin"}},{"html_id":"openout?-instance-method","name":"openout?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":242,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L242"},"def":{"name":"openout?","visibility":"Public","body":"self == Openout"}},{"html_id":"setbuf?-instance-method","name":"setbuf?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":237,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L237"},"def":{"name":"setbuf?","visibility":"Public","body":"self == Setbuf"}},{"html_id":"setbuf_foreign?-instance-method","name":"setbuf_foreign?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":238,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L238"},"def":{"name":"setbuf_foreign?","visibility":"Public","body":"self == SetbufForeign"}}]},{"html_id":"vips/Vips/Enums/Intent","path":"Vips/Enums/Intent.html","kind":"enum","full_name":"Vips::Enums::Intent","name":"Intent","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":245,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L245"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Perceptual","name":"Perceptual","value":"0"},{"id":"Relative","name":"Relative","value":"1"},{"id":"Saturation","name":"Saturation","value":"2"},{"id":"Absolute","name":"Absolute","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"absolute?-instance-method","name":"absolute?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":249,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L249"},"def":{"name":"absolute?","visibility":"Public","body":"self == Absolute"}},{"html_id":"perceptual?-instance-method","name":"perceptual?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":246,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L246"},"def":{"name":"perceptual?","visibility":"Public","body":"self == Perceptual"}},{"html_id":"relative?-instance-method","name":"relative?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":247,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L247"},"def":{"name":"relative?","visibility":"Public","body":"self == Relative"}},{"html_id":"saturation?-instance-method","name":"saturation?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":248,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L248"},"def":{"name":"saturation?","visibility":"Public","body":"self == Saturation"}}]},{"html_id":"vips/Vips/Enums/Interesting","path":"Vips/Enums/Interesting.html","kind":"enum","full_name":"Vips::Enums::Interesting","name":"Interesting","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":252,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L252"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Centre","name":"Centre","value":"1"},{"id":"Entropy","name":"Entropy","value":"2"},{"id":"Attention","name":"Attention","value":"3"},{"id":"Low","name":"Low","value":"4"},{"id":"High","name":"High","value":"5"},{"id":"All","name":"All","value":"6"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":259,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L259"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"attention?-instance-method","name":"attention?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":256,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L256"},"def":{"name":"attention?","visibility":"Public","body":"self == Attention"}},{"html_id":"centre?-instance-method","name":"centre?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":254,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L254"},"def":{"name":"centre?","visibility":"Public","body":"self == Centre"}},{"html_id":"entropy?-instance-method","name":"entropy?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":255,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L255"},"def":{"name":"entropy?","visibility":"Public","body":"self == Entropy"}},{"html_id":"high?-instance-method","name":"high?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":258,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L258"},"def":{"name":"high?","visibility":"Public","body":"self == High"}},{"html_id":"low?-instance-method","name":"low?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":257,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L257"},"def":{"name":"low?","visibility":"Public","body":"self == Low"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":253,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L253"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"vips/Vips/Enums/Interpretation","path":"Vips/Enums/Interpretation.html","kind":"enum","full_name":"Vips::Enums::Interpretation","name":"Interpretation","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":262,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L262"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"Multiband","name":"Multiband","value":"0"},{"id":"Bw","name":"Bw","value":"1"},{"id":"Histogram","name":"Histogram","value":"10"},{"id":"Xyz","name":"Xyz","value":"12"},{"id":"Lab","name":"Lab","value":"13"},{"id":"Cmyk","name":"Cmyk","value":"15"},{"id":"Labq","name":"Labq","value":"16"},{"id":"Rgb","name":"Rgb","value":"17"},{"id":"Cmc","name":"Cmc","value":"18"},{"id":"Lch","name":"Lch","value":"19"},{"id":"Labs","name":"Labs","value":"21"},{"id":"Srgb","name":"Srgb","value":"22"},{"id":"Yxy","name":"Yxy","value":"23"},{"id":"Fourier","name":"Fourier","value":"24"},{"id":"Rgb16","name":"Rgb16","value":"25"},{"id":"Grey16","name":"Grey16","value":"26"},{"id":"Matrix","name":"Matrix","value":"27"},{"id":"Scrgb","name":"Scrgb","value":"28"},{"id":"Hsv","name":"Hsv","value":"29"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"bw?-instance-method","name":"bw?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":265,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L265"},"def":{"name":"bw?","visibility":"Public","body":"self == Bw"}},{"html_id":"cmc?-instance-method","name":"cmc?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":272,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L272"},"def":{"name":"cmc?","visibility":"Public","body":"self == Cmc"}},{"html_id":"cmyk?-instance-method","name":"cmyk?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":269,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L269"},"def":{"name":"cmyk?","visibility":"Public","body":"self == Cmyk"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":263,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L263"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"fourier?-instance-method","name":"fourier?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":277,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L277"},"def":{"name":"fourier?","visibility":"Public","body":"self == Fourier"}},{"html_id":"grey16?-instance-method","name":"grey16?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":279,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L279"},"def":{"name":"grey16?","visibility":"Public","body":"self == Grey16"}},{"html_id":"histogram?-instance-method","name":"histogram?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":266,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L266"},"def":{"name":"histogram?","visibility":"Public","body":"self == Histogram"}},{"html_id":"hsv?-instance-method","name":"hsv?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":282,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L282"},"def":{"name":"hsv?","visibility":"Public","body":"self == Hsv"}},{"html_id":"lab?-instance-method","name":"lab?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":268,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L268"},"def":{"name":"lab?","visibility":"Public","body":"self == Lab"}},{"html_id":"labq?-instance-method","name":"labq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":270,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L270"},"def":{"name":"labq?","visibility":"Public","body":"self == Labq"}},{"html_id":"labs?-instance-method","name":"labs?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":274,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L274"},"def":{"name":"labs?","visibility":"Public","body":"self == Labs"}},{"html_id":"lch?-instance-method","name":"lch?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":273,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L273"},"def":{"name":"lch?","visibility":"Public","body":"self == Lch"}},{"html_id":"matrix?-instance-method","name":"matrix?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":280,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L280"},"def":{"name":"matrix?","visibility":"Public","body":"self == Matrix"}},{"html_id":"multiband?-instance-method","name":"multiband?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":264,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L264"},"def":{"name":"multiband?","visibility":"Public","body":"self == Multiband"}},{"html_id":"rgb16?-instance-method","name":"rgb16?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":278,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L278"},"def":{"name":"rgb16?","visibility":"Public","body":"self == Rgb16"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":271,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L271"},"def":{"name":"rgb?","visibility":"Public","body":"self == Rgb"}},{"html_id":"scrgb?-instance-method","name":"scrgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":281,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L281"},"def":{"name":"scrgb?","visibility":"Public","body":"self == Scrgb"}},{"html_id":"srgb?-instance-method","name":"srgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":275,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L275"},"def":{"name":"srgb?","visibility":"Public","body":"self == Srgb"}},{"html_id":"xyz?-instance-method","name":"xyz?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":267,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L267"},"def":{"name":"xyz?","visibility":"Public","body":"self == Xyz"}},{"html_id":"yxy?-instance-method","name":"yxy?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":276,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L276"},"def":{"name":"yxy?","visibility":"Public","body":"self == Yxy"}}]},{"html_id":"vips/Vips/Enums/Kernel","path":"Vips/Enums/Kernel.html","kind":"enum","full_name":"Vips::Enums::Kernel","name":"Kernel","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":285,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L285"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Nearest","name":"Nearest","value":"0"},{"id":"Linear","name":"Linear","value":"1"},{"id":"Cubic","name":"Cubic","value":"2"},{"id":"Mitchell","name":"Mitchell","value":"3"},{"id":"Lanczos2","name":"Lanczos2","value":"4"},{"id":"Lanczos3","name":"Lanczos3","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"cubic?-instance-method","name":"cubic?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":288,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L288"},"def":{"name":"cubic?","visibility":"Public","body":"self == Cubic"}},{"html_id":"lanczos2?-instance-method","name":"lanczos2?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":290,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L290"},"def":{"name":"lanczos2?","visibility":"Public","body":"self == Lanczos2"}},{"html_id":"lanczos3?-instance-method","name":"lanczos3?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":291,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L291"},"def":{"name":"lanczos3?","visibility":"Public","body":"self == Lanczos3"}},{"html_id":"linear?-instance-method","name":"linear?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":287,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L287"},"def":{"name":"linear?","visibility":"Public","body":"self == Linear"}},{"html_id":"mitchell?-instance-method","name":"mitchell?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":289,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L289"},"def":{"name":"mitchell?","visibility":"Public","body":"self == Mitchell"}},{"html_id":"nearest?-instance-method","name":"nearest?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":286,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L286"},"def":{"name":"nearest?","visibility":"Public","body":"self == Nearest"}}]},{"html_id":"vips/Vips/Enums/OperationBoolean","path":"Vips/Enums/OperationBoolean.html","kind":"enum","full_name":"Vips::Enums::OperationBoolean","name":"OperationBoolean","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":294,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L294"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"And","name":"And","value":"0"},{"id":"Or","name":"Or","value":"1"},{"id":"Eor","name":"Eor","value":"2"},{"id":"Lshift","name":"Lshift","value":"3"},{"id":"Rshift","name":"Rshift","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"and?-instance-method","name":"and?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":295,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L295"},"def":{"name":"and?","visibility":"Public","body":"self == And"}},{"html_id":"eor?-instance-method","name":"eor?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":297,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L297"},"def":{"name":"eor?","visibility":"Public","body":"self == Eor"}},{"html_id":"lshift?-instance-method","name":"lshift?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":298,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L298"},"def":{"name":"lshift?","visibility":"Public","body":"self == Lshift"}},{"html_id":"or?-instance-method","name":"or?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":296,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L296"},"def":{"name":"or?","visibility":"Public","body":"self == Or"}},{"html_id":"rshift?-instance-method","name":"rshift?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":299,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L299"},"def":{"name":"rshift?","visibility":"Public","body":"self == Rshift"}}]},{"html_id":"vips/Vips/Enums/OperationComplex","path":"Vips/Enums/OperationComplex.html","kind":"enum","full_name":"Vips::Enums::OperationComplex","name":"OperationComplex","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":302,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L302"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Polar","name":"Polar","value":"0"},{"id":"Rect","name":"Rect","value":"1"},{"id":"Conj","name":"Conj","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"conj?-instance-method","name":"conj?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":305,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L305"},"def":{"name":"conj?","visibility":"Public","body":"self == Conj"}},{"html_id":"polar?-instance-method","name":"polar?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":303,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L303"},"def":{"name":"polar?","visibility":"Public","body":"self == Polar"}},{"html_id":"rect?-instance-method","name":"rect?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":304,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L304"},"def":{"name":"rect?","visibility":"Public","body":"self == Rect"}}]},{"html_id":"vips/Vips/Enums/OperationComplex2","path":"Vips/Enums/OperationComplex2.html","kind":"enum","full_name":"Vips::Enums::OperationComplex2","name":"OperationComplex2","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":308,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L308"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"CrossPhase","name":"CrossPhase","value":"0"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"cross_phase?-instance-method","name":"cross_phase?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":309,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L309"},"def":{"name":"cross_phase?","visibility":"Public","body":"self == CrossPhase"}}]},{"html_id":"vips/Vips/Enums/OperationComplexget","path":"Vips/Enums/OperationComplexget.html","kind":"enum","full_name":"Vips::Enums::OperationComplexget","name":"OperationComplexget","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":312,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L312"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Real","name":"Real","value":"0"},{"id":"Imag","name":"Imag","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"imag?-instance-method","name":"imag?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":314,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L314"},"def":{"name":"imag?","visibility":"Public","body":"self == Imag"}},{"html_id":"real?-instance-method","name":"real?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":313,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L313"},"def":{"name":"real?","visibility":"Public","body":"self == Real"}}]},{"html_id":"vips/Vips/Enums/OperationFlags","path":"Vips/Enums/OperationFlags.html","kind":"enum","full_name":"Vips::Enums::OperationFlags","name":"OperationFlags","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":406,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L406"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Sequential","name":"Sequential","value":"1"},{"id":"SequentialUnbuffered","name":"SequentialUnbuffered","value":"2"},{"id":"Nocache","name":"Nocache","value":"4"},{"id":"Deprecated","name":"Deprecated","value":"8"},{"id":"None","name":"None","value":"0"},{"id":"All","name":"All","value":"15"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"deprecated?-instance-method","name":"deprecated?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":410,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L410"},"def":{"name":"deprecated?","visibility":"Public","body":"self.includes?(Deprecated)"}},{"html_id":"nocache?-instance-method","name":"nocache?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":409,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L409"},"def":{"name":"nocache?","visibility":"Public","body":"self.includes?(Nocache)"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":406,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L406"},"def":{"name":"none?","visibility":"Public","body":"value == 0"}},{"html_id":"sequential?-instance-method","name":"sequential?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":407,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L407"},"def":{"name":"sequential?","visibility":"Public","body":"self.includes?(Sequential)"}},{"html_id":"sequential_unbuffered?-instance-method","name":"sequential_unbuffered?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":408,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L408"},"def":{"name":"sequential_unbuffered?","visibility":"Public","body":"self.includes?(SequentialUnbuffered)"}}]},{"html_id":"vips/Vips/Enums/OperationMath","path":"Vips/Enums/OperationMath.html","kind":"enum","full_name":"Vips::Enums::OperationMath","name":"OperationMath","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":317,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L317"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Sin","name":"Sin","value":"0"},{"id":"Cos","name":"Cos","value":"1"},{"id":"Tan","name":"Tan","value":"2"},{"id":"Asin","name":"Asin","value":"3"},{"id":"Acos","name":"Acos","value":"4"},{"id":"Atan","name":"Atan","value":"5"},{"id":"Log","name":"Log","value":"6"},{"id":"Log10","name":"Log10","value":"7"},{"id":"Exp","name":"Exp","value":"8"},{"id":"Exp10","name":"Exp10","value":"9"},{"id":"Sinh","name":"Sinh","value":"10"},{"id":"Cosh","name":"Cosh","value":"11"},{"id":"Tanh","name":"Tanh","value":"12"},{"id":"Asinh","name":"Asinh","value":"13"},{"id":"Acosh","name":"Acosh","value":"14"},{"id":"Atanh","name":"Atanh","value":"15"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"acos?-instance-method","name":"acos?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":322,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L322"},"def":{"name":"acos?","visibility":"Public","body":"self == Acos"}},{"html_id":"acosh?-instance-method","name":"acosh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":332,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L332"},"def":{"name":"acosh?","visibility":"Public","body":"self == Acosh"}},{"html_id":"asin?-instance-method","name":"asin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":321,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L321"},"def":{"name":"asin?","visibility":"Public","body":"self == Asin"}},{"html_id":"asinh?-instance-method","name":"asinh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":331,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L331"},"def":{"name":"asinh?","visibility":"Public","body":"self == Asinh"}},{"html_id":"atan?-instance-method","name":"atan?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":323,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L323"},"def":{"name":"atan?","visibility":"Public","body":"self == Atan"}},{"html_id":"atanh?-instance-method","name":"atanh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":333,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L333"},"def":{"name":"atanh?","visibility":"Public","body":"self == Atanh"}},{"html_id":"cos?-instance-method","name":"cos?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":319,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L319"},"def":{"name":"cos?","visibility":"Public","body":"self == Cos"}},{"html_id":"cosh?-instance-method","name":"cosh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":329,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L329"},"def":{"name":"cosh?","visibility":"Public","body":"self == Cosh"}},{"html_id":"exp10?-instance-method","name":"exp10?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":327,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L327"},"def":{"name":"exp10?","visibility":"Public","body":"self == Exp10"}},{"html_id":"exp?-instance-method","name":"exp?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":326,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L326"},"def":{"name":"exp?","visibility":"Public","body":"self == Exp"}},{"html_id":"log10?-instance-method","name":"log10?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":325,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L325"},"def":{"name":"log10?","visibility":"Public","body":"self == Log10"}},{"html_id":"log?-instance-method","name":"log?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":324,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L324"},"def":{"name":"log?","visibility":"Public","body":"self == Log"}},{"html_id":"sin?-instance-method","name":"sin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":318,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L318"},"def":{"name":"sin?","visibility":"Public","body":"self == Sin"}},{"html_id":"sinh?-instance-method","name":"sinh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":328,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L328"},"def":{"name":"sinh?","visibility":"Public","body":"self == Sinh"}},{"html_id":"tan?-instance-method","name":"tan?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":320,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L320"},"def":{"name":"tan?","visibility":"Public","body":"self == Tan"}},{"html_id":"tanh?-instance-method","name":"tanh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":330,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L330"},"def":{"name":"tanh?","visibility":"Public","body":"self == Tanh"}}]},{"html_id":"vips/Vips/Enums/OperationMath2","path":"Vips/Enums/OperationMath2.html","kind":"enum","full_name":"Vips::Enums::OperationMath2","name":"OperationMath2","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":336,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L336"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pow","name":"Pow","value":"0"},{"id":"Wop","name":"Wop","value":"1"},{"id":"Atan2","name":"Atan2","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"atan2?-instance-method","name":"atan2?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":339,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L339"},"def":{"name":"atan2?","visibility":"Public","body":"self == Atan2"}},{"html_id":"pow?-instance-method","name":"pow?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":337,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L337"},"def":{"name":"pow?","visibility":"Public","body":"self == Pow"}},{"html_id":"wop?-instance-method","name":"wop?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":338,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L338"},"def":{"name":"wop?","visibility":"Public","body":"self == Wop"}}]},{"html_id":"vips/Vips/Enums/OperationMorphology","path":"Vips/Enums/OperationMorphology.html","kind":"enum","full_name":"Vips::Enums::OperationMorphology","name":"OperationMorphology","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":342,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L342"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Erode","name":"Erode","value":"0"},{"id":"Dilate","name":"Dilate","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"dilate?-instance-method","name":"dilate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":344,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L344"},"def":{"name":"dilate?","visibility":"Public","body":"self == Dilate"}},{"html_id":"erode?-instance-method","name":"erode?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":343,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L343"},"def":{"name":"erode?","visibility":"Public","body":"self == Erode"}}]},{"html_id":"vips/Vips/Enums/OperationRelational","path":"Vips/Enums/OperationRelational.html","kind":"enum","full_name":"Vips::Enums::OperationRelational","name":"OperationRelational","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":347,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L347"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Equal","name":"Equal","value":"0"},{"id":"Noteq","name":"Noteq","value":"1"},{"id":"Less","name":"Less","value":"2"},{"id":"Lesseq","name":"Lesseq","value":"3"},{"id":"More","name":"More","value":"4"},{"id":"Moreeq","name":"Moreeq","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":348,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L348"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"less?-instance-method","name":"less?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":350,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L350"},"def":{"name":"less?","visibility":"Public","body":"self == Less"}},{"html_id":"lesseq?-instance-method","name":"lesseq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":351,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L351"},"def":{"name":"lesseq?","visibility":"Public","body":"self == Lesseq"}},{"html_id":"more?-instance-method","name":"more?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":352,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L352"},"def":{"name":"more?","visibility":"Public","body":"self == More"}},{"html_id":"moreeq?-instance-method","name":"moreeq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":353,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L353"},"def":{"name":"moreeq?","visibility":"Public","body":"self == Moreeq"}},{"html_id":"noteq?-instance-method","name":"noteq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":349,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L349"},"def":{"name":"noteq?","visibility":"Public","body":"self == Noteq"}}]},{"html_id":"vips/Vips/Enums/OperationRound","path":"Vips/Enums/OperationRound.html","kind":"enum","full_name":"Vips::Enums::OperationRound","name":"OperationRound","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":356,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L356"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Rint","name":"Rint","value":"0"},{"id":"Ceil","name":"Ceil","value":"1"},{"id":"Floor","name":"Floor","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"ceil?-instance-method","name":"ceil?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":358,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L358"},"def":{"name":"ceil?","visibility":"Public","body":"self == Ceil"}},{"html_id":"floor?-instance-method","name":"floor?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":359,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L359"},"def":{"name":"floor?","visibility":"Public","body":"self == Floor"}},{"html_id":"rint?-instance-method","name":"rint?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":357,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L357"},"def":{"name":"rint?","visibility":"Public","body":"self == Rint"}}]},{"html_id":"vips/Vips/Enums/PCS","path":"Vips/Enums/PCS.html","kind":"enum","full_name":"Vips::Enums::PCS","name":"PCS","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":362,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L362"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Lab","name":"Lab","value":"0"},{"id":"Xyz","name":"Xyz","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"lab?-instance-method","name":"lab?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":363,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L363"},"def":{"name":"lab?","visibility":"Public","body":"self == Lab"}},{"html_id":"xyz?-instance-method","name":"xyz?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":364,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L364"},"def":{"name":"xyz?","visibility":"Public","body":"self == Xyz"}}]},{"html_id":"vips/Vips/Enums/Precision","path":"Vips/Enums/Precision.html","kind":"enum","full_name":"Vips::Enums::Precision","name":"Precision","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":367,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L367"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Integer","name":"Integer","value":"0"},{"id":"Float","name":"Float","value":"1"},{"id":"Approximate","name":"Approximate","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"approximate?-instance-method","name":"approximate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":370,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L370"},"def":{"name":"approximate?","visibility":"Public","body":"self == Approximate"}},{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":369,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L369"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"integer?-instance-method","name":"integer?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":368,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L368"},"def":{"name":"integer?","visibility":"Public","body":"self == Integer"}}]},{"html_id":"vips/Vips/Enums/RegionShrink","path":"Vips/Enums/RegionShrink.html","kind":"enum","full_name":"Vips::Enums::RegionShrink","name":"RegionShrink","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":373,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L373"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Mean","name":"Mean","value":"0"},{"id":"Median","name":"Median","value":"1"},{"id":"Mode","name":"Mode","value":"2"},{"id":"Max","name":"Max","value":"3"},{"id":"Min","name":"Min","value":"4"},{"id":"Nearest","name":"Nearest","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"max?-instance-method","name":"max?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":377,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L377"},"def":{"name":"max?","visibility":"Public","body":"self == Max"}},{"html_id":"mean?-instance-method","name":"mean?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":374,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L374"},"def":{"name":"mean?","visibility":"Public","body":"self == Mean"}},{"html_id":"median?-instance-method","name":"median?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":375,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L375"},"def":{"name":"median?","visibility":"Public","body":"self == Median"}},{"html_id":"min?-instance-method","name":"min?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":378,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L378"},"def":{"name":"min?","visibility":"Public","body":"self == Min"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":376,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L376"},"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"nearest?-instance-method","name":"nearest?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":379,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L379"},"def":{"name":"nearest?","visibility":"Public","body":"self == Nearest"}}]},{"html_id":"vips/Vips/Enums/Saveable","path":"Vips/Enums/Saveable.html","kind":"enum","full_name":"Vips::Enums::Saveable","name":"Saveable","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":382,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L382"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Mono","name":"Mono","value":"0"},{"id":"Rgb","name":"Rgb","value":"1"},{"id":"Rgba","name":"Rgba","value":"2"},{"id":"RgbaOnly","name":"RgbaOnly","value":"3"},{"id":"RgbCmyk","name":"RgbCmyk","value":"4"},{"id":"Any","name":"Any","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"any?-instance-method","name":"any?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":388,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L388"},"def":{"name":"any?","visibility":"Public","body":"self == Any"}},{"html_id":"mono?-instance-method","name":"mono?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":383,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L383"},"def":{"name":"mono?","visibility":"Public","body":"self == Mono"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":384,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L384"},"def":{"name":"rgb?","visibility":"Public","body":"self == Rgb"}},{"html_id":"rgb_cmyk?-instance-method","name":"rgb_cmyk?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":387,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L387"},"def":{"name":"rgb_cmyk?","visibility":"Public","body":"self == RgbCmyk"}},{"html_id":"rgba?-instance-method","name":"rgba?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":385,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L385"},"def":{"name":"rgba?","visibility":"Public","body":"self == Rgba"}},{"html_id":"rgba_only?-instance-method","name":"rgba_only?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":386,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L386"},"def":{"name":"rgba_only?","visibility":"Public","body":"self == RgbaOnly"}}]},{"html_id":"vips/Vips/Enums/Signal","path":"Vips/Enums/Signal.html","kind":"enum","full_name":"Vips::Enums::Signal","name":"Signal","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":421,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L421"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PreEval","name":"PreEval","value":"0","doc":"Evaluation is starting\nThe preeval signal is emitted once before computation of `Image` starts.\nIt's a good place to set up evaluation feedback.","summary":"

    Evaluation is starting The preeval signal is emitted once before computation of Image starts.

    "},{"id":"Eval","name":"Eval","value":"1","doc":"The eval signal is emitted once per work unit (typically a 128 x 128 are of pixels)\nduring image computation\n\nYou can use this signal to update user-interfaces with progress feedback.\nBeware of updating too frequently: you will usually need some throttling mechanism","summary":"

    The eval signal is emitted once per work unit (typically a 128 x 128 are of pixels) during image computation

    "},{"id":"PostEval","name":"PostEval","value":"2","doc":"Ealuation is ending\nThe posteval signal is emitted once at the end of the computation of `Image`.\nIt's a good place to shut down evaluation feedback.","summary":"

    Ealuation is ending The posteval signal is emitted once at the end of the computation of Image.

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"doc":"Signals that can be used on an `Image`. See `GObject#signal_connect`","summary":"

    Signals that can be used on an Image.

    ","instance_methods":[{"html_id":"eval?-instance-method","name":"eval?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":432,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L432"},"def":{"name":"eval?","visibility":"Public","body":"self == Eval"}},{"html_id":"post_eval?-instance-method","name":"post_eval?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":437,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L437"},"def":{"name":"post_eval?","visibility":"Public","body":"self == PostEval"}},{"html_id":"pre_eval?-instance-method","name":"pre_eval?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":425,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L425"},"def":{"name":"pre_eval?","visibility":"Public","body":"self == PreEval"}}]},{"html_id":"vips/Vips/Enums/Size","path":"Vips/Enums/Size.html","kind":"enum","full_name":"Vips::Enums::Size","name":"Size","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":391,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L391"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Both","name":"Both","value":"0"},{"id":"Up","name":"Up","value":"1"},{"id":"Down","name":"Down","value":"2"},{"id":"Force","name":"Force","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"both?-instance-method","name":"both?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":392,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L392"},"def":{"name":"both?","visibility":"Public","body":"self == Both"}},{"html_id":"down?-instance-method","name":"down?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":394,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L394"},"def":{"name":"down?","visibility":"Public","body":"self == Down"}},{"html_id":"force?-instance-method","name":"force?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":395,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L395"},"def":{"name":"force?","visibility":"Public","body":"self == Force"}},{"html_id":"up?-instance-method","name":"up?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":393,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L393"},"def":{"name":"up?","visibility":"Public","body":"self == Up"}}]},{"html_id":"vips/Vips/Enums/Token","path":"Vips/Enums/Token.html","kind":"enum","full_name":"Vips::Enums::Token","name":"Token","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":398,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L398"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Left","name":"Left","value":"1"},{"id":"Right","name":"Right","value":"2"},{"id":"String","name":"String","value":"3"},{"id":"Equals","name":"Equals","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"equals?-instance-method","name":"equals?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":402,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L402"},"def":{"name":"equals?","visibility":"Public","body":"self == Equals"}},{"html_id":"left?-instance-method","name":"left?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":399,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L399"},"def":{"name":"left?","visibility":"Public","body":"self == Left"}},{"html_id":"right?-instance-method","name":"right?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":400,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L400"},"def":{"name":"right?","visibility":"Public","body":"self == Right"}},{"html_id":"string?-instance-method","name":"string?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":401,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L401"},"def":{"name":"string?","visibility":"Public","body":"self == String"}}]}]},{"html_id":"vips/Vips/GObject","path":"Vips/GObject.html","kind":"class","full_name":"Vips::GObject","name":"GObject","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/gobject.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"finalize-instance-method","name":"finalize","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L79"},"def":{"name":"finalize","visibility":"Public","body":"LibVips.g_object_unref(@handle)"}},{"html_id":"get(name:String,gval:GValue)-instance-method","name":"get","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"args_string":"(name : String, gval : GValue)","args_html":"(name : String, gval : GValue)","location":{"filename":"src/vips/gobject.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L65"},"def":{"name":"get","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"visibility":"Public","body":"LibVips.g_object_get_property(@handle, name, gval)\ngval.get\n"}},{"html_id":"object_ref-instance-method","name":"object_ref","doc":"Increases the reference count of object","summary":"

    Increases the reference count of object

    ","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":56,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L56"},"def":{"name":"object_ref","visibility":"Public","body":"LibVips.g_object_ref(@handle)"}},{"html_id":"ref_count-instance-method","name":"ref_count","doc":"Get the reference count of object.","summary":"

    Get the reference count of object.

    ","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":61,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L61"},"def":{"name":"ref_count","visibility":"Public","body":"@handle.value.ref_count"}},{"html_id":"release_handle-instance-method","name":"release_handle","doc":"Decreases the reference count of object.\nWhen its reference count drops to 0, its memory is freed.","summary":"

    Decreases the reference count of object.

    ","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":50,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L50"},"def":{"name":"release_handle","visibility":"Public","body":"if @handle.null?\nelse\n LibVips.g_object_unref(@handle)\nend\ntrue\n"}},{"html_id":"set(name:String,gval:GValue)-instance-method","name":"set","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"args_string":"(name : String, gval : GValue)","args_html":"(name : String, gval : GValue)","location":{"filename":"src/vips/gobject.cr","line_number":70,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L70"},"def":{"name":"set","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"visibility":"Public","body":"LibVips.g_object_set_property(@handle, name, gval)"}},{"html_id":"signal_connect(signal:String,callback:Proc,data:Pointer(Void)=Pointer(Void).null):LibVips::Gulong-instance-method","name":"signal_connect","doc":"Connects a `callback` to a signal on this object.\nThe callback will be triggered every time this signal is issued on this instance.","summary":"

    Connects a callback to a signal on this object.

    ","abstract":false,"args":[{"name":"signal","external_name":"signal","restriction":"String"},{"name":"callback","external_name":"callback","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"args_string":"(signal : String, callback : Proc, data : Pointer(Void) = Pointer(Void).null) : LibVips::Gulong","args_html":"(signal : String, callback : Proc, data : Pointer(Void) = Pointer(Void).null) : LibVips::Gulong","location":{"filename":"src/vips/gobject.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L8"},"def":{"name":"signal_connect","args":[{"name":"signal","external_name":"signal","restriction":"String"},{"name":"callback","external_name":"callback","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"return_type":"LibVips::Gulong","visibility":"Public","body":"if (cb = callback.as?(Image::EvalProc))\n em = LibVips::EvalSignal.new do |imgptr, progressptr, data|\n if imgptr.null? || progressptr.null?\n next\n end\n img = Image.new(imgptr)\n progress = progressptr.value\n cb.call(img, progress)\n end\n callback = em\nend\n(LibVips.g_signal_connect_data(@handle, signal, callback.pointer, data, nil, LibVips::GConnectFlags::GConnectAfter)).tap do |ret|\n if ret == 0\n raise(VipsException.new(\"Couldn't connect signal #{signal}\"))\n end\nend\n"}},{"html_id":"signal_disconnect(handler_id:LibVips::Gulong)-instance-method","name":"signal_disconnect","doc":"Disconnects a handler from this object","summary":"

    Disconnects a handler from this object

    ","abstract":false,"args":[{"name":"handler_id","external_name":"handler_id","restriction":"LibVips::Gulong"}],"args_string":"(handler_id : LibVips::Gulong)","args_html":"(handler_id : LibVips::Gulong)","location":{"filename":"src/vips/gobject.cr","line_number":29,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L29"},"def":{"name":"signal_disconnect","args":[{"name":"handler_id","external_name":"handler_id","restriction":"LibVips::Gulong"}],"visibility":"Public","body":"if handler_id == 0\nelse\n LibVips.g_signal_handler_disconnect(@handle, handler_id)\nend"}},{"html_id":"signal_disconnect(func:Proc,data:Pointer(Void)=Pointer(Void).null)-instance-method","name":"signal_disconnect","doc":"Disconnects all handlers from this object that match `func` and `data`","summary":"

    Disconnects all handlers from this object that match func and data

    ","abstract":false,"args":[{"name":"func","external_name":"func","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"::Pointer(Void)"}],"args_string":"(func : Proc, data : Pointer(Void) = Pointer(Void).null)","args_html":"(func : Proc, data : Pointer(Void) = Pointer(Void).null)","location":{"filename":"src/vips/gobject.cr","line_number":34,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L34"},"def":{"name":"signal_disconnect","args":[{"name":"func","external_name":"func","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"::Pointer(Void)"}],"visibility":"Public","body":"LibVips.g_signal_handlers_disconnect_matched(@handle, LibVips::GSignalMatchType::GSignalMatchFunc | LibVips::GSignalMatchType::GSignalMatchData, 0, 0, Pointer(LibVips::GClosure).null, nil, data)"}},{"html_id":"signal_disconnect(data:LibVips::Gpointer)-instance-method","name":"signal_disconnect","doc":"Disconnects all handlers from this object that match","summary":"

    Disconnects all handlers from this object that match

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"LibVips::Gpointer"}],"args_string":"(data : LibVips::Gpointer)","args_html":"(data : LibVips::Gpointer)","location":{"filename":"src/vips/gobject.cr","line_number":42,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L42"},"def":{"name":"signal_disconnect","args":[{"name":"data","external_name":"data","restriction":"LibVips::Gpointer"}],"visibility":"Public","body":"LibVips.g_signal_handlers_disconnect_matched(@handle, LibVips::GSignalMatchType::GSignalMatchData, 0, 0, Pointer(LibVips::GClosure).null, nil, data)"}}]},{"html_id":"vips/Vips/GValue","path":"Vips/GValue.html","kind":"class","full_name":"Vips::GValue","name":"GValue","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/gvalue.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L8"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"GBool","name":"GBool","value":"Vips.type_from_name(\"gboolean\")","doc":"The fundamental type corresponding to gboolean","summary":"

    The fundamental type corresponding to gboolean

    "},{"id":"GDouble","name":"GDouble","value":"Vips.type_from_name(\"gdouble\")","doc":"The fundamental type corresponding to gdouble","summary":"

    The fundamental type corresponding to gdouble

    "},{"id":"GEnum","name":"GEnum","value":"Vips.type_from_name(\"GEnum\")","doc":"The fundamental type from which all enumeration types are derived","summary":"

    The fundamental type from which all enumeration types are derived

    "},{"id":"GFlags","name":"GFlags","value":"Vips.type_from_name(\"GFlags\")","doc":"The fundamental type from which all flags types are derived","summary":"

    The fundamental type from which all flags types are derived

    "},{"id":"GInt","name":"GInt","value":"Vips.type_from_name(\"gint\")","doc":"The fundamental type corresponding to gint","summary":"

    The fundamental type corresponding to gint

    "},{"id":"GObject","name":"GObject","value":"Vips.type_from_name(\"GObject\")","doc":"The fundamental type for GObject","summary":"

    The fundamental type for GObject

    "},{"id":"GString","name":"GString","value":"Vips.type_from_name(\"gchararray\")","doc":"The fundamental type corresponding to null-terminated C strings.","summary":"

    The fundamental type corresponding to null-terminated C strings.

    "},{"id":"GUint64","name":"GUint64","value":"Vips.type_from_name(\"guint64\")","doc":"The fundamental type corresponding to guint64","summary":"

    The fundamental type corresponding to guint64

    "},{"id":"VArrayDouble","name":"VArrayDouble","value":"Vips.type_from_name(\"VipsArrayDouble\")","doc":"The fundamental type for VipsArrayDouble","summary":"

    The fundamental type for VipsArrayDouble

    "},{"id":"VArrayImage","name":"VArrayImage","value":"Vips.type_from_name(\"VipsArrayImage\")","doc":"The fundamental type for VipsArrayImage","summary":"

    The fundamental type for VipsArrayImage

    "},{"id":"VArrayInt","name":"VArrayInt","value":"Vips.type_from_name(\"VipsArrayInt\")","doc":"The fundamental type for VipsArrayInt","summary":"

    The fundamental type for VipsArrayInt

    "},{"id":"VBandFormat","name":"VBandFormat","value":"LibVips.vips_band_format_get_type","doc":"The fundamental type for VipsBandFormat","summary":"

    The fundamental type for VipsBandFormat

    "},{"id":"VBlendMode","name":"VBlendMode","value":"Vips.at_least_libvips?(8, 6) ? LibVips.vips_blend_mode_get_type : 0","doc":"The fundamental type for VipsBlendMode","summary":"

    The fundamental type for VipsBlendMode

    "},{"id":"VBlob","name":"VBlob","value":"Vips.type_from_name(\"VipsBlob\")","doc":"The fundamental type for VipsBlob","summary":"

    The fundamental type for VipsBlob

    "},{"id":"VImageType","name":"VImageType","value":"Vips.type_from_name(\"VipsImage\")","doc":"The fundamental type for VipsImage","summary":"

    The fundamental type for VipsImage

    "},{"id":"VRefStr","name":"VRefStr","value":"Vips.type_from_name(\"VipsRefString\")","doc":"The fundamental type for VipsRefString","summary":"

    The fundamental type for VipsRefString

    "},{"id":"VSource","name":"VSource","value":"Vips.at_least_libvips?(8, 9) ? Vips.type_from_name(\"VipsSource\") : 0","doc":"The fundamental type for VipsSource","summary":"

    The fundamental type for VipsSource

    "},{"id":"VTarget","name":"VTarget","value":"Vips.at_least_libvips?(8, 9) ? Vips.type_from_name(\"VipsTarget\") : 0","doc":"The fundamental type for VipsTarget","summary":"

    The fundamental type for VipsTarget

    "}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Class to wrap `LibVips::GValue` in a Crystal class.\nThis class wraps `LibVips::GValue` in a convenient interface. You can use\ninstances of this class to get and set `GObject` properties.\nOn construction, `LibVips::GValue` is all zero (empty). You can pass it to\na get function to have it filled by `GObject`, or use `initialize(gvalue)` to\nset a type, `set` to set a value, then use it to set an object property.","summary":"

    Class to wrap LibVips::GValue in a Crystal class.

    ","constructors":[{"html_id":"new(value:GValue)-class-method","name":"new","doc":"Initialize new instance with specified `GValue`","summary":"

    Initialize new instance with specified GValue

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"GValue"}],"args_string":"(value : GValue)","args_html":"(value : GValue)","location":{"filename":"src/vips/gvalue.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L18"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"GValue"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new-class-method","name":"new","doc":"Initialize new instance of `GValue`","summary":"

    Initialize new instance of GValue

    ","abstract":false,"location":{"filename":"src/vips/gvalue.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L12"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"get:Type-instance-method","name":"get","doc":"Get the contents of a GValue\nThe contents of the GValue are read out as a Crystal type","summary":"

    Get the contents of a GValue The contents of the GValue are read out as a Crystal type

    ","abstract":false,"location":{"filename":"src/vips/gvalue.cr","line_number":113,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L113"},"def":{"name":"get","return_type":"Type","visibility":"Public","body":"gtype = get_type\nfundamental = Vips.fundamental_type(gtype)\nresult = if gtype == GBool\n LibVips.g_value_get_boolean(self)\nelse\n if gtype == GInt\n LibVips.g_value_get_int(self)\n else\n if gtype == GUint64\n LibVips.g_value_get_uint64(self)\n else\n if gtype == GDouble\n LibVips.g_value_get_double(self)\n else\n if fundamental == GEnum\n LibVips.g_value_get_enum(self)\n else\n if fundamental == GFlags\n LibVips.g_value_get_flags(self)\n else\n if gtype == GString\n String.new((LibVips.g_value_get_string(self)) || Bytes.empty)\n else\n if gtype == VRefStr\n res = LibVips.vips_value_get_ref_string(self, out size)\n String.new(res, size)\n else\n if gtype == VImageType\n vi = LibVips.g_value_get_object(self)\n image = Image.new(vi.as(::Pointer(LibVips::VipsImage)))\n image.object_ref\n image\n else\n if gtype == VArrayInt\n ptr = LibVips.vips_value_get_array_int(self, out vsize)\n Array(Int32).new(vsize) do |i|\n ptr[i]\n end\n else\n if gtype == VArrayDouble\n ptr = LibVips.vips_value_get_array_double(self, out dsize)\n Array(Float64).new(dsize) do |i|\n ptr[i]\n end\n else\n if gtype == VArrayImage\n ptr = LibVips.vips_value_get_array_image(self, out isize)\n Array(Image).new(isize) do |i|\n image = Image.new(ptr[i])\n image.object_ref\n image\n end\n else\n if gtype == VBlob\n ptr = LibVips.vips_value_get_blob(self, out bsize)\n res = Bytes.new(bsize)\n res.to_unsafe.copy_from(ptr.as(::Pointer(UInt8)), bsize.to_i)\n res\n else\n raise(VipsException.new(\"unsupported gtype for get #{Vips.typename(gtype)}, fundamental #{Vips.typename(fundamental)}\"))\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\nend\nType.new(result)\n"}},{"html_id":"get_type-instance-method","name":"get_type","doc":"Get the GType of this GValue","summary":"

    Get the GType of this GValue

    ","abstract":false,"location":{"filename":"src/vips/gvalue.cr","line_number":170,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L170"},"def":{"name":"get_type","visibility":"Public","body":"@value.g_type"}},{"html_id":"set(value)-instance-method","name":"set","doc":"Set a GValue\nThe value is converted to the type of the GValue, if possible, and assigned","summary":"

    Set a GValue The value is converted to the type of the GValue, if possible, and assigned

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""}],"args_string":"(value)","args_html":"(value)","location":{"filename":"src/vips/gvalue.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L35"},"def":{"name":"set","args":[{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gtype = get_type\nfundamental = Vips.fundamental_type(gtype)\nif value.is_a?(Type)\n value = value.value\nend\nif gtype == GBool\n LibVips.g_value_set_boolean(self, ( value ? 1 : 0))\nelse\n if gtype == GInt\n LibVips.g_value_set_int(self, Converter.to_i32(value))\n else\n if gtype == GUint64\n LibVips.g_value_set_uint64(self, Converter.to_u64(value))\n else\n if gtype == GDouble\n LibVips.g_value_set_double(self, Converter.to_double(value))\n else\n if fundamental == GEnum\n LibVips.g_value_set_enum(self, Converter.to_i32(value))\n else\n if fundamental == GFlags\n LibVips.g_value_set_flags(self, Converter.to_u32(value))\n else\n if gtype == GString\n LibVips.g_value_set_string(self, Converter.to_string(value))\n else\n if gtype == VRefStr\n LibVips.vips_value_set_ref_string(self, Converter.to_string(value))\n else\n if (fundamental == GObject) && (obj = value.as?(Vips::GObject))\n LibVips.g_value_set_object(self, obj.handle)\n else\n if gtype == VArrayInt\n aval = value.is_a?(Array) ? value : [value]\n intarr = case aval\n when Array(Int32)\n aval\n when Array\n Array(Int32).new(aval.size) do |i|\n Converter.to_i32(aval[i])\n end\n else\n raise(VipsException.new(\"unsuported value type #{typeof(value)} for gtype #{Vips.typename(gtype)} \"))\n end\n LibVips.vips_value_set_array_int(self, intarr, intarr.size)\n else\n if gtype == VArrayDouble\n aval = value.is_a?(Array) ? value : [value]\n intarr = case aval\n when Array(Float64)\n aval\n when Array\n Array(Float64).new(aval.size) do |i|\n Converter.to_double(aval[i])\n end\n else\n raise(VipsException.new(\"unsuported value type #{typeof(value)} for gtype #{Vips.typename(gtype)} \"))\n end\n LibVips.vips_value_set_array_double(self, intarr, intarr.size)\n else\n if (gtype == VArrayImage) && (images = value.as?(Array(Image)))\n size = images.size\n LibVips.vips_value_set_array_image(self, size)\n ptr = LibVips.vips_value_get_array_image(self, out _)\n ptr.map_with_index!(size) do |_, i|\n images[i].object_ref.as(::Pointer(LibVips::VipsImage))\n end\n else\n if (gtype == VBlob) && (blob = value.as?(VipsBlob))\n LibVips.g_value_set_boxed(self, blob)\n else\n if gtype == VBlob\n mem = case value\n when String\n value.to_slice\n when Array(Char)\n (String.new(value)).to_slice\n when Bytes\n value\n else\n raise(VipsException.new(\"unsuported value type #{typeof(value)} for gtype #{Vips.typename(gtype)} \"))\n end\n ptr = LibVips.g_malloc(mem.size)\n ptr.copy_from(mem.to_unsafe.as(::Pointer(Void)), mem.size)\n if Vips.at_least_libvips?(8, 6)\n LibVips.vips_value_set_blob_free(self, ptr, mem.size)\n else\n free = LibVips::VipsCallbackFn.new do |a, b|\n LibVips.g_free(a)\n 0\n end\n LibVips.vips_value_set_blob(self, free, ptr, mem.size)\n end\n else\n raise(VipsException.new(\"unsupported gtype for set #{Vips.typename(gtype)}, fundamental #{Vips.typename(fundamental)}, value type #{typeof(value)}\"))\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\nend\n"}},{"html_id":"set_type(type):Nil-instance-method","name":"set_type","doc":"Set the type of a GValue\nGValues have a set type, fixed at creation time. Use this method to set\nthe type of GValue before assiging to it.\n\nGTypes are 32 or 64-bit integers (depending on platform).","summary":"

    Set the type of a GValue GValues have a set type, fixed at creation time.

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":""}],"args_string":"(type) : Nil","args_html":"(type) : Nil","location":{"filename":"src/vips/gvalue.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L28"},"def":{"name":"set_type","args":[{"name":"type","external_name":"type","restriction":""}],"return_type":"Nil","visibility":"Public","body":"LibVips.g_value_init(self, type)\n@initialized = true\n"}}]},{"html_id":"vips/Vips/Image","path":"Vips/Image.html","kind":"class","full_name":"Vips::Image","name":"Image","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/ext/image.cr","line_number":13,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L13"},{"filename":"src/vips/image.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/MutableImage","kind":"class","full_name":"Vips::MutableImage","name":"MutableImage"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"class_methods":[{"html_id":"analyzeload(filename:String,**kwargs)-class-method","name":"analyzeload","doc":"Load an analyze6 image\n\n```\n# out_, flags = Vips::Image.analyzeload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load an analyze6 image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":125,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L125"},"def":{"name":"analyzeload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"analyzeload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"arrayjoin(in_:Array(Image),**kwargs)-class-method","name":"arrayjoin","doc":"Join an array of images\n\n```\n# out_ = Vips::Image.arrayjoin(in_, {across: Int32, shim: Int32, background: Array(Float64), halign: Enums::Align, valign: Enums::Align, hspacing: Int32, vspacing: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*in* : Array(Image) - Array of input images\n\n_Optionals_\n\n*across* : Int32 - Number of images across grid\n\n*shim* : Int32 - Pixels between images\n\n*background* : Array(Float64) - Colour for new pixels\n\n*halign* : Enums::Align - Align on the left, centre or right\n\n*valign* : Enums::Align - Align on the top, centre or bottom\n\n*hspacing* : Int32 - Horizontal spacing between images\n\n*vspacing* : Int32 - Vertical spacing between images\n\n\n**Returns**\n\nOutput image\n","summary":"

    Join an array of images

    ","abstract":false,"args":[{"name":"in_","external_name":"in_","restriction":"Array(Image)"}],"args_string":"(in_ : Array(Image), **kwargs)","args_html":"(in_ : Array(Image), **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":172,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L172"},"def":{"name":"arrayjoin","args":[{"name":"in_","external_name":"in_","restriction":"Array(Image)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"arrayjoin\", options, in_)).as(Type)).as_image\n"}},{"html_id":"black(width:Int32,height:Int32,**kwargs)-class-method","name":"black","doc":"Make a black image\n\n```\n# out_ = Vips::Image.black(width, height, {bands: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*bands* : Int32 - Number of bands in image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a black image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":354,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L354"},"def":{"name":"black","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"black\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"csvload(filename:String,**kwargs)-class-method","name":"csvload","doc":"Load csv\n\n```\n# out_, flags = Vips::Image.csvload(filename, {skip: Int32, lines: Int32, whitespace: String, separator: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*skip* : Int32 - Skip this many lines at the start of the file\n\n*lines* : Int32 - Read this many lines from the file\n\n*whitespace* : String - Set of whitespace characters\n\n*separator* : String - Set of separator characters\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load csv

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1010,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1010"},"def":{"name":"csvload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"csvload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"csvload_source(source:Source,**kwargs)-class-method","name":"csvload_source","doc":"Load csv\n\n```\n# out_, flags = Vips::Image.csvload_source(source, {skip: Int32, lines: Int32, whitespace: String, separator: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*skip* : Int32 - Skip this many lines at the start of the file\n\n*lines* : Int32 - Read this many lines from the file\n\n*whitespace* : String - Set of whitespace characters\n\n*separator* : String - Set of separator characters\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load csv

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1061,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1061"},"def":{"name":"csvload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"csvload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"csvload_stream(stream:IO,**kwargs)-class-method","name":"csvload_stream","doc":"Load csv\n\n```\n# out_, flags = Vips::Image.csvload_stream(stream, {skip: Int32, lines: Int32, whitespace: String, separator: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*skip* : Int32 - Skip this many lines at the start of the file\n\n*lines* : Int32 - Read this many lines from the file\n\n*whitespace* : String - Set of whitespace characters\n\n*separator* : String - Set of separator characters\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load csv

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1107,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1107"},"def":{"name":"csvload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\ncsvload_source(source, **kwargs)\n"}},{"html_id":"eye(width:Int32,height:Int32,**kwargs)-class-method","name":"eye","doc":"Make an image showing the eye's spatial response\n\n```\n# out_ = Vips::Image.eye(width, height, {uchar: Bool, factor: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*factor* : Float64 - Maximum spatial frequency\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an image showing the eye's spatial response

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1635,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1635"},"def":{"name":"eye","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"eye\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"find_load(filename:String)-class-method","name":"find_load","doc":"Find the name of the load operation vips will use to load a file.\nFor example \"VipsForeignLoadJpegFile\". You can use this to work out what\noptions to pass to `new_from_file`","summary":"

    Find the name of the load operation vips will use to load a file.

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String)","args_html":"(filename : String)","location":{"filename":"src/vips/image.cr","line_number":58,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L58"},"def":{"name":"find_load","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"visibility":"Public","body":"ptr = LibVips.vips_foreign_find_load(filename)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"find_load_buffer(data:Bytes)-class-method","name":"find_load_buffer","doc":"Find the name of the load operation vips will use to load a buffer.\nFor example \"VipsForeignLoadJpegBuffer\". You can use this to work out what\noptions to pass to `new_from_buffer`","summary":"

    Find the name of the load operation vips will use to load a buffer.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/vips/image.cr","line_number":66,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L66"},"def":{"name":"find_load_buffer","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"ptr = LibVips.vips_foreign_find_load_buffer(Box.box(data), data.size)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"find_load_buffer(data:String)-class-method","name":"find_load_buffer","doc":"Find the name of the load operation vips will use to load a buffer.\nFor example \"VipsForeignLoadJpegBuffer\". You can use this to work out what\noptions to pass to `new_from_buffer`","summary":"

    Find the name of the load operation vips will use to load a buffer.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/vips/image.cr","line_number":74,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L74"},"def":{"name":"find_load_buffer","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"find_load_buffer(data.to_slice)"}},{"html_id":"find_load_source(source:Source)-class-method","name":"find_load_source","doc":" Find the name of the load operation vips will use to load a source.\nFor example \"VipsForeignLoadJpegSource\". You can use this to work out what\noptions to pass to `new_from_source`","summary":"

    Find the name of the load operation vips will use to load a source.

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source)","args_html":"(source : Source)","location":{"filename":"src/vips/image.cr","line_number":81,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L81"},"def":{"name":"find_load_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"visibility":"Public","body":"ptr = LibVips.vips_foreign_find_load_source(source)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"find_load_stream(stream:Stream)-class-method","name":"find_load_stream","doc":"Find the name of the load operation vips will use to load a stream.\nFor example \"VipsForeignLoadJpegSource\". You can use this to work out what\noptions to pass to `new_from_stream`","summary":"

    Find the name of the load operation vips will use to load a stream.

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"Stream"}],"args_string":"(stream : Stream)","args_html":"(stream : Stream)","location":{"filename":"src/vips/image.cr","line_number":89,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L89"},"def":{"name":"find_load_stream","args":[{"name":"stream","external_name":"stream","restriction":"Stream"}],"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nfind_load_source(source)\n"}},{"html_id":"fitsload(filename:String,**kwargs)-class-method","name":"fitsload","doc":"Load a fits image\n\n```\n# out_, flags = Vips::Image.fitsload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a fits image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1769,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1769"},"def":{"name":"fitsload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"fitsload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"fitsload_source(source:Source,**kwargs)-class-method","name":"fitsload_source","doc":"Load fits from a source\n\n```\n# out_, flags = Vips::Image.fitsload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load fits from a source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1812,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1812"},"def":{"name":"fitsload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"fitsload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"fitsload_stream(stream:IO,**kwargs)-class-method","name":"fitsload_stream","doc":"Load fits from a stream\n\n```\n# out_, flags = Vips::Image.fitsload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load fits from a stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1850,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1850"},"def":{"name":"fitsload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nfitsload_source(source, **kwargs)\n"}},{"html_id":"fractsurf(width:Int32,height:Int32,fractal_dimension:Float64)-class-method","name":"fractsurf","doc":"Make a fractal surface\n\n```\n# out_ = Vips::Image.fractsurf(width, height, fractal_dimension)\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*fractal_dimension* : Float64 - Fractal dimension\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a fractal surface

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, fractal_dimension : Float64)","args_html":"(width : Int32, height : Int32, fractal_dimension : Float64)","location":{"filename":"src/vips/ext/image.cr","line_number":1967,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1967"},"def":{"name":"fractsurf","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"visibility":"Public","body":"((Operation.call(\"fractsurf\", width, height, fractal_dimension)).as(Type)).as_image"}},{"html_id":"gaussmat(sigma:Float64,min_ampl:Float64,**kwargs)-class-method","name":"gaussmat","doc":"Make a gaussian image\n\n```\n# out_ = Vips::Image.gaussmat(sigma, min_ampl, {separable: Bool, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sigma* : Float64 - Sigma of Gaussian\n\n*min_ampl* : Float64 - Minimum amplitude of Gaussian\n\n_Optionals_\n\n*separable* : Bool - Generate separable Gaussian\n\n*precision* : Enums::Precision - Generate with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian image

    ","abstract":false,"args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"args_string":"(sigma : Float64, min_ampl : Float64, **kwargs)","args_html":"(sigma : Float64, min_ampl : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2088,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2088"},"def":{"name":"gaussmat","args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"gaussmat\", options, sigma, min_ampl)).as(Type)).as_image\n"}},{"html_id":"gaussnoise(width:Int32,height:Int32,**kwargs)-class-method","name":"gaussnoise","doc":"Make a gaussnoise image\n\n```\n# out_ = Vips::Image.gaussnoise(width, height, {sigma: Float64, mean: Float64, seed: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*sigma* : Float64 - Standard deviation of pixels in generated image\n\n*mean* : Float64 - Mean of pixels in generated image\n\n*seed* : Int32 - Random number seed\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussnoise image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2122,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2122"},"def":{"name":"gaussnoise","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"gaussnoise\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"gifload(filename:String,**kwargs)-class-method","name":"gifload","doc":"Load gif with libnsgif\n\n```\n# out_, flags = Vips::Image.gifload(filename, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load gif with libnsgif

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2186,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2186"},"def":{"name":"gifload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"gifload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"gifload_buffer(buffer:Bytes,**kwargs)-class-method","name":"gifload_buffer","doc":"Load gif with libnsgif\n\n```\n# out_, flags = Vips::Image.gifload_buffer(buffer, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load gif with libnsgif

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2233,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2233"},"def":{"name":"gifload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"gifload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"gifload_source(source:Source,**kwargs)-class-method","name":"gifload_source","doc":"Load gif from source\n\n```\n# out_, flags = Vips::Image.gifload_source(source, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load gif from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2280,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2280"},"def":{"name":"gifload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"gifload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"gifload_stream(stream:IO,**kwargs)-class-method","name":"gifload_stream","doc":"Load gif from stream\n\n```\n# out_, flags = Vips::Image.gifload_stream(stream, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load gif from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2322,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2322"},"def":{"name":"gifload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\ngifload_source(source, **kwargs)\n"}},{"html_id":"grey(width:Int32,height:Int32,**kwargs)-class-method","name":"grey","doc":"Make a grey ramp image\n\n```\n# out_ = Vips::Image.grey(width, height, {uchar: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a grey ramp image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2573,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2573"},"def":{"name":"grey","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"grey\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"heifload(filename:String,**kwargs)-class-method","name":"heifload","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload(filename, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2643,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2643"},"def":{"name":"heifload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"heifload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"heifload_buffer(buffer:Bytes,**kwargs)-class-method","name":"heifload_buffer","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload_buffer(buffer, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2694,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2694"},"def":{"name":"heifload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"heifload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"heifload_source(source:Source,**kwargs)-class-method","name":"heifload_source","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload_source(source, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2745,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2745"},"def":{"name":"heifload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"heifload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"heifload_stream(stream:IO,**kwargs)-class-method","name":"heifload_stream","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload_stream(stream, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2791,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2791"},"def":{"name":"heifload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nheifload_source(source, **kwargs)\n"}},{"html_id":"identity(**kwargs)-class-method","name":"identity","doc":"Make a 1d image where pixel values are indexes\n\n```\n# out_ = Vips::Image.identity({bands: Int32, ushort: Bool, size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*bands* : Int32 - Number of bands in LUT\n\n*ushort* : Bool - Create a 16-bit LUT\n\n*size* : Int32 - Size of 16-bit LUT\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a 1d image where pixel values are indexes

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3216,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3216"},"def":{"name":"identity","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"identity\", options)).as(Type)).as_image\n"}},{"html_id":"jp2kload(filename:String,**kwargs)-class-method","name":"jp2kload","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload(filename, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3387,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3387"},"def":{"name":"jp2kload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jp2kload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jp2kload_buffer(buffer:Bytes,**kwargs)-class-method","name":"jp2kload_buffer","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload_buffer(buffer, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3432,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3432"},"def":{"name":"jp2kload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jp2kload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jp2kload_source(source:Source,**kwargs)-class-method","name":"jp2kload_source","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload_source(source, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3477,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3477"},"def":{"name":"jp2kload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jp2kload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jp2kload_stream(stream:IO,**kwargs)-class-method","name":"jp2kload_stream","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload_stream(stream, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3517,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3517"},"def":{"name":"jp2kload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\njp2kload_source(source, **kwargs)\n"}},{"html_id":"jpegload(filename:String,**kwargs)-class-method","name":"jpegload","doc":"Load jpeg from file\n\n```\n# out_, flags = Vips::Image.jpegload(filename, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3704,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3704"},"def":{"name":"jpegload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jpegload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jpegload_buffer(buffer:Bytes,**kwargs)-class-method","name":"jpegload_buffer","doc":"Load jpeg from buffer\n\n```\n# out_, flags = Vips::Image.jpegload_buffer(buffer, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3753,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3753"},"def":{"name":"jpegload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jpegload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jpegload_source(source:Source,**kwargs)-class-method","name":"jpegload_source","doc":"Load image from jpeg source\n\n```\n# out_, flags = Vips::Image.jpegload_source(source, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load image from jpeg source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3802,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3802"},"def":{"name":"jpegload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jpegload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jpegload_stream(stream:IO,**kwargs)-class-method","name":"jpegload_stream","doc":"Load image from jpeg stream\n\n```\n# out_, flags = Vips::Image.jpegload_stream(stream, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load image from jpeg stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3846,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3846"},"def":{"name":"jpegload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\njpegload_source(source, **kwargs)\n"}},{"html_id":"jxlload(filename:String,**kwargs)-class-method","name":"jxlload","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4110,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4110"},"def":{"name":"jxlload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jxlload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jxlload_buffer(buffer:Bytes,**kwargs)-class-method","name":"jxlload_buffer","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload_buffer(buffer, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4153,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4153"},"def":{"name":"jxlload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jxlload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jxlload_source(source:Source,**kwargs)-class-method","name":"jxlload_source","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4196,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4196"},"def":{"name":"jxlload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jxlload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jxlload_stream(stream:IO,**kwargs)-class-method","name":"jxlload_stream","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4234,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4234"},"def":{"name":"jxlload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\njxlload_source(source, **kwargs)\n"}},{"html_id":"logmat(sigma:Float64,min_ampl:Float64,**kwargs)-class-method","name":"logmat","doc":"Make a laplacian of gaussian image\n\n```\n# out_ = Vips::Image.logmat(sigma, min_ampl, {separable: Bool, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sigma* : Float64 - Radius of Gaussian\n\n*min_ampl* : Float64 - Minimum amplitude of Gaussian\n\n_Optionals_\n\n*separable* : Bool - Generate separable Gaussian\n\n*precision* : Enums::Precision - Generate with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a laplacian of gaussian image

    ","abstract":false,"args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"args_string":"(sigma : Float64, min_ampl : Float64, **kwargs)","args_html":"(sigma : Float64, min_ampl : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4672,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4672"},"def":{"name":"logmat","args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"logmat\", options, sigma, min_ampl)).as(Type)).as_image\n"}},{"html_id":"magickload(filename:String,**kwargs)-class-method","name":"magickload","doc":"Load file with imagemagick7\n\n```\n# out_, flags = Vips::Image.magickload(filename, {density: String, page: Int32, n: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*density* : String - Canvas resolution for rendering vector formats like SVG\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load file with imagemagick7

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4714,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4714"},"def":{"name":"magickload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"magickload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"magickload_buffer(buffer:Bytes,**kwargs)-class-method","name":"magickload_buffer","doc":"Load buffer with imagemagick7\n\n```\n# out_, flags = Vips::Image.magickload_buffer(buffer, {density: String, page: Int32, n: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*density* : String - Canvas resolution for rendering vector formats like SVG\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load buffer with imagemagick7

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4763,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4763"},"def":{"name":"magickload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"magickload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"mask_butterworth(width:Int32,height:Int32,order:Float64,frequency_cutoff:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_butterworth","doc":"Make a butterworth filter\n\n```\n# out_ = Vips::Image.mask_butterworth(width, height, order, frequency_cutoff, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*order* : Float64 - Filter order\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a butterworth filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5024,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5024"},"def":{"name":"mask_butterworth","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_butterworth\", options, width, height, order, frequency_cutoff, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_butterworth_band(width:Int32,height:Int32,order:Float64,frequency_cutoff_x:Float64,frequency_cutoff_y:Float64,radius:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_butterworth_band","doc":"Make a butterworth_band filter\n\n```\n# out_ = Vips::Image.mask_butterworth_band(width, height, order, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*order* : Float64 - Filter order\n\n*frequency_cutoff_x* : Float64 - Frequency cutoff x\n\n*frequency_cutoff_y* : Float64 - Frequency cutoff y\n\n*radius* : Float64 - Radius of circle\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a butterworth_band filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, order : Float64, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, order : Float64, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5070,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5070"},"def":{"name":"mask_butterworth_band","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_butterworth_band\", options, width, height, order, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_butterworth_ring(width:Int32,height:Int32,order:Float64,frequency_cutoff:Float64,amplitude_cutoff:Float64,ringwidth:Float64,**kwargs)-class-method","name":"mask_butterworth_ring","doc":"Make a butterworth ring filter\n\n```\n# out_ = Vips::Image.mask_butterworth_ring(width, height, order, frequency_cutoff, amplitude_cutoff, ringwidth, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*order* : Float64 - Filter order\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n*ringwidth* : Float64 - Ringwidth\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a butterworth ring filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5114,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5114"},"def":{"name":"mask_butterworth_ring","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_butterworth_ring\", options, width, height, order, frequency_cutoff, amplitude_cutoff, ringwidth)).as(Type)).as_image\n"}},{"html_id":"mask_fractal(width:Int32,height:Int32,fractal_dimension:Float64,**kwargs)-class-method","name":"mask_fractal","doc":"Make fractal filter\n\n```\n# out_ = Vips::Image.mask_fractal(width, height, fractal_dimension, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*fractal_dimension* : Float64 - Fractal dimension\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make fractal filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, fractal_dimension : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, fractal_dimension : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5152,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5152"},"def":{"name":"mask_fractal","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_fractal\", options, width, height, fractal_dimension)).as(Type)).as_image\n"}},{"html_id":"mask_gaussian(width:Int32,height:Int32,frequency_cutoff:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_gaussian","doc":"Make a gaussian filter\n\n```\n# out_ = Vips::Image.mask_gaussian(width, height, frequency_cutoff, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5192,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5192"},"def":{"name":"mask_gaussian","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_gaussian\", options, width, height, frequency_cutoff, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_gaussian_band(width:Int32,height:Int32,frequency_cutoff_x:Float64,frequency_cutoff_y:Float64,radius:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_gaussian_band","doc":"Make a gaussian filter\n\n```\n# out_ = Vips::Image.mask_gaussian_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff_x* : Float64 - Frequency cutoff x\n\n*frequency_cutoff_y* : Float64 - Frequency cutoff y\n\n*radius* : Float64 - Radius of circle\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5236,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5236"},"def":{"name":"mask_gaussian_band","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_gaussian_band\", options, width, height, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_gaussian_ring(width:Int32,height:Int32,frequency_cutoff:Float64,amplitude_cutoff:Float64,ringwidth:Float64,**kwargs)-class-method","name":"mask_gaussian_ring","doc":"Make a gaussian ring filter\n\n```\n# out_ = Vips::Image.mask_gaussian_ring(width, height, frequency_cutoff, amplitude_cutoff, ringwidth, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n*ringwidth* : Float64 - Ringwidth\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian ring filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5278,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5278"},"def":{"name":"mask_gaussian_ring","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_gaussian_ring\", options, width, height, frequency_cutoff, amplitude_cutoff, ringwidth)).as(Type)).as_image\n"}},{"html_id":"mask_ideal(width:Int32,height:Int32,frequency_cutoff:Float64,**kwargs)-class-method","name":"mask_ideal","doc":"Make an ideal filter\n\n```\n# out_ = Vips::Image.mask_ideal(width, height, frequency_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an ideal filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5316,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5316"},"def":{"name":"mask_ideal","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_ideal\", options, width, height, frequency_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_ideal_band(width:Int32,height:Int32,frequency_cutoff_x:Float64,frequency_cutoff_y:Float64,radius:Float64,**kwargs)-class-method","name":"mask_ideal_band","doc":"Make an ideal band filter\n\n```\n# out_ = Vips::Image.mask_ideal_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff_x* : Float64 - Frequency cutoff x\n\n*frequency_cutoff_y* : Float64 - Frequency cutoff y\n\n*radius* : Float64 - Radius of circle\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an ideal band filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5358,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5358"},"def":{"name":"mask_ideal_band","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_ideal_band\", options, width, height, frequency_cutoff_x, frequency_cutoff_y, radius)).as(Type)).as_image\n"}},{"html_id":"mask_ideal_ring(width:Int32,height:Int32,frequency_cutoff:Float64,ringwidth:Float64,**kwargs)-class-method","name":"mask_ideal_ring","doc":"Make an ideal ring filter\n\n```\n# out_ = Vips::Image.mask_ideal_ring(width, height, frequency_cutoff, ringwidth, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*ringwidth* : Float64 - Ringwidth\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an ideal ring filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, ringwidth : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, ringwidth : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5398,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5398"},"def":{"name":"mask_ideal_ring","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_ideal_ring\", options, width, height, frequency_cutoff, ringwidth)).as(Type)).as_image\n"}},{"html_id":"matload(filename:String,**kwargs)-class-method","name":"matload","doc":"Load mat from file\n\n```\n# out_, flags = Vips::Image.matload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load mat from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5554,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5554"},"def":{"name":"matload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"matload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"matrixload(filename:String,**kwargs)-class-method","name":"matrixload","doc":"Load matrix\n\n```\n# out_, flags = Vips::Image.matrixload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load matrix

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5612,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5612"},"def":{"name":"matrixload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"matrixload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"matrixload_source(source:Source,**kwargs)-class-method","name":"matrixload_source","doc":"Load matrix\n\n```\n# out_, flags = Vips::Image.matrixload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load matrix

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5655,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5655"},"def":{"name":"matrixload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"matrixload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"matrixload_stream(stream:IO,**kwargs)-class-method","name":"matrixload_stream","doc":"Load matrix\n\n```\n# out_, flags = Vips::Image.matrixload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load matrix

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5693,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5693"},"def":{"name":"matrixload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nmatrixload_source(source, **kwargs)\n"}},{"html_id":"openexrload(filename:String,**kwargs)-class-method","name":"openexrload","doc":"Load an openexr image\n\n```\n# out_, flags = Vips::Image.openexrload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load an openexr image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6200,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6200"},"def":{"name":"openexrload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"openexrload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"openslideload(filename:String,**kwargs)-class-method","name":"openslideload","doc":"Load file with openslide\n\n```\n# out_, flags = Vips::Image.openslideload(filename, {level: Int32, autocrop: Bool, associated: String, attach_associated: Bool, rgb: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*level* : Int32 - Load this level from the file\n\n*autocrop* : Bool - Crop to image bounds\n\n*associated* : String - Load this associated image\n\n*attach_associated* : Bool - Attach all associated images\n\n*rgb* : Bool - Output RGB (not RGBA)\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load file with openslide

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6253,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6253"},"def":{"name":"openslideload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"openslideload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"openslideload_source(source:Source,**kwargs)-class-method","name":"openslideload_source","doc":"Load source with openslide\n\n```\n# out_, flags = Vips::Image.openslideload_source(source, {level: Int32, autocrop: Bool, associated: String, attach_associated: Bool, rgb: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*level* : Int32 - Load this level from the file\n\n*autocrop* : Bool - Crop to image bounds\n\n*associated* : String - Load this associated image\n\n*attach_associated* : Bool - Attach all associated images\n\n*rgb* : Bool - Output RGB (not RGBA)\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load source with openslide

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6306,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6306"},"def":{"name":"openslideload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"openslideload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"openslideload_stream(stream:IO,**kwargs)-class-method","name":"openslideload_stream","doc":"Load stream with openslide\n\n```\n# out_, flags = Vips::Image.openslideload_stream(stream, {level: Int32, autocrop: Bool, associated: String, attach_associated: Bool, rgb: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*level* : Int32 - Load this level from the file\n\n*autocrop* : Bool - Crop to image bounds\n\n*associated* : String - Load this associated image\n\n*attach_associated* : Bool - Attach all associated images\n\n*rgb* : Bool - Output RGB (not RGBA)\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load stream with openslide

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6354,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6354"},"def":{"name":"openslideload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nopenslideload_source(source, **kwargs)\n"}},{"html_id":"pdfload(filename:String,**kwargs)-class-method","name":"pdfload","doc":"Load pdf from file\n\n```\n# out_, flags = Vips::Image.pdfload(filename, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load pdf from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6464,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6464"},"def":{"name":"pdfload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pdfload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pdfload_buffer(buffer:Bytes,**kwargs)-class-method","name":"pdfload_buffer","doc":"Load pdf from buffer\n\n```\n# out_, flags = Vips::Image.pdfload_buffer(buffer, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load pdf from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6519,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6519"},"def":{"name":"pdfload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pdfload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pdfload_source(source:Source,**kwargs)-class-method","name":"pdfload_source","doc":"Load pdf from source\n\n```\n# out_, flags = Vips::Image.pdfload_source(source, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load pdf from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6574,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6574"},"def":{"name":"pdfload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pdfload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pdfload_stream(stream:IO,**kwargs)-class-method","name":"pdfload_stream","doc":"Load pdf from stream\n\n```\n# out_, flags = Vips::Image.pdfload_stream(stream, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load pdf from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6624,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6624"},"def":{"name":"pdfload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\npdfload_source(source, **kwargs)\n"}},{"html_id":"perlin(width:Int32,height:Int32,**kwargs)-class-method","name":"perlin","doc":"Make a perlin noise image\n\n```\n# out_ = Vips::Image.perlin(width, height, {cell_size: Int32, uchar: Bool, seed: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*cell_size* : Int32 - Size of Perlin cells\n\n*uchar* : Bool - Output an unsigned char image\n\n*seed* : Int32 - Random number seed\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a perlin noise image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6679,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6679"},"def":{"name":"perlin","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"perlin\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"pngload(filename:String,**kwargs)-class-method","name":"pngload","doc":"Load png from file\n\n```\n# out_, flags = Vips::Image.pngload(filename, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load png from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6865,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6865"},"def":{"name":"pngload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pngload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pngload_buffer(buffer:Bytes,**kwargs)-class-method","name":"pngload_buffer","doc":"Load png from buffer\n\n```\n# out_, flags = Vips::Image.pngload_buffer(buffer, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load png from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6910,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6910"},"def":{"name":"pngload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pngload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pngload_source(source:Source,**kwargs)-class-method","name":"pngload_source","doc":"Load png from source\n\n```\n# out_, flags = Vips::Image.pngload_source(source, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load png from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6955,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6955"},"def":{"name":"pngload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pngload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pngload_stream(stream:IO,**kwargs)-class-method","name":"pngload_stream","doc":"Load png from stream\n\n```\n# out_, flags = Vips::Image.pngload_stream(stream, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load png from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6995,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6995"},"def":{"name":"pngload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\npngload_source(source, **kwargs)\n"}},{"html_id":"ppmload(filename:String,**kwargs)-class-method","name":"ppmload","doc":"Load ppm from file\n\n```\n# out_, flags = Vips::Image.ppmload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load ppm from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7271,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7271"},"def":{"name":"ppmload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"ppmload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"ppmload_source(source:Source,**kwargs)-class-method","name":"ppmload_source","doc":"Load ppm base class\n\n```\n# out_, flags = Vips::Image.ppmload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load ppm base class

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7314,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7314"},"def":{"name":"ppmload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"ppmload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"ppmload_stream(stream:IO,**kwargs)-class-method","name":"ppmload_stream","doc":"Load ppm base class\n\n```\n# out_, flags = Vips::Image.ppmload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load ppm base class

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7352,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7352"},"def":{"name":"ppmload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nppmload_source(source, **kwargs)\n"}},{"html_id":"profile_load(name:String)-class-method","name":"profile_load","doc":"Load named icc profile\n\n```\n# profile = Vips::Image.profile_load(name)\n```\n\n\nInput Parameters\n\n**Required**\n\n*name* : String - Profile name\n\n\n**Returns**\n\nLoaded profile\n","summary":"

    Load named icc profile

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/ext/image.cr","line_number":7514,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7514"},"def":{"name":"profile_load","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"((Operation.call(\"profile_load\", name)).as(Type)).as_bytes"}},{"html_id":"radload(filename:String,**kwargs)-class-method","name":"radload","doc":"Load a radiance image from a file\n\n```\n# out_, flags = Vips::Image.radload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a radiance image from a file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7610,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7610"},"def":{"name":"radload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"radload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"radload_buffer(buffer:Bytes,**kwargs)-class-method","name":"radload_buffer","doc":"Load rad from buffer\n\n```\n# out_, flags = Vips::Image.radload_buffer(buffer, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load rad from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7653,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7653"},"def":{"name":"radload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"radload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"radload_source(source:Source,**kwargs)-class-method","name":"radload_source","doc":"Load rad from source\n\n```\n# out_, flags = Vips::Image.radload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load rad from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7696,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7696"},"def":{"name":"radload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"radload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"radload_stream(stream:IO,**kwargs)-class-method","name":"radload_stream","doc":"Load rad from stream\n\n```\n# out_, flags = Vips::Image.radload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load rad from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7734,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7734"},"def":{"name":"radload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nradload_source(source, **kwargs)\n"}},{"html_id":"rawload(filename:String,width:Int32,height:Int32,bands:Int32,**kwargs)-class-method","name":"rawload","doc":"Load raw data from a file\n\n```\n# out_, flags = Vips::Image.rawload(filename, width, height, bands, {offset: UInt32, format: Enums::BandFormat, interpretation: Enums::Interpretation, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*bands* : Int32 - Number of bands in image\n\n_Optionals_\n\n*offset* : UInt32 - Offset in bytes from start of file\n\n*format* : Enums::BandFormat - Pixel format in image\n\n*interpretation* : Enums::Interpretation - Pixel interpretation\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load raw data from a file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"}],"args_string":"(filename : String, width : Int32, height : Int32, bands : Int32, **kwargs)","args_html":"(filename : String, width : Int32, height : Int32, bands : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7913,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7913"},"def":{"name":"rawload","args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"rawload\", options, filename, width, height, bands)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"run_cmplx(image:Image,&block:Image->Image)-class-method","name":"run_cmplx","doc":"run a complex operation on a complex image, or an image with an even\nnumber of bands ... handy for things like running .polar on .index\nimages","summary":"

    run a complex operation on a complex image, or an image with an even number of bands ...

    ","abstract":false,"args":[{"name":"image","external_name":"image","restriction":"Image"}],"args_string":"(image : Image, &block : Image -> Image)","args_html":"(image : Image, &block : Image -> Image)","location":{"filename":"src/vips/image.cr","line_number":15,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L15"},"def":{"name":"run_cmplx","args":[{"name":"image","external_name":"image","restriction":"Image"}],"yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Image -> Image)"},"visibility":"Public","body":"original_format = image.format\nif ((image.format != Enums::BandFormat::Complex) && (image.format != Enums::BandFormat::Dpcomplex))\n if (image.bands % 2) != 0\n raise(VipsException.new(\"not an even number of bands\"))\n end\n if ( (image.format != Enums::BandFormat::Float) && (image.format != Enums::BandFormat::Double))\n image = image.cast(Enums::BandFormat::Float)\n end\n new_format = image.format == Enums::BandFormat::Double ? Enums::BandFormat::Dpcomplex : Enums::BandFormat::Complex\n image = image.copy(format: new_format, bands: image.bands / 2)\nend\nimage = block.call(image)\nif ((original_format != Enums::BandFormat::Complex) && (original_format != Enums::BandFormat::Dpcomplex))\n new_format = image.format == Enums::BandFormat::Dpcomplex ? Enums::BandFormat::Double : Enums::BandFormat::Float\n image = image.copy(format: new_format, bands: image.bands * 2)\nend\nimage\n"}},{"html_id":"sines(width:Int32,height:Int32,**kwargs)-class-method","name":"sines","doc":"Make a 2d sine wave\n\n```\n# out_ = Vips::Image.sines(width, height, {uchar: Bool, hfreq: Float64, vfreq: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*hfreq* : Float64 - Horizontal spatial frequency\n\n*vfreq* : Float64 - Vertical spatial frequency\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a 2d sine wave

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8636,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8636"},"def":{"name":"sines","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"sines\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"sum(*in_:Image)-class-method","name":"sum","doc":"Sum an array of images\n\n```\n# out_ = Vips::Image.sum(in_)\n```\n\n\nInput Parameters\n\n**Required**\n\n*in* : Array(Image) - Array of input images\n\n\n**Returns**\n\nOutput image\n","summary":"

    Sum an array of images

    ","abstract":false,"args":[{"name":"in_","external_name":"in_","restriction":"Image"}],"args_string":"(*in_ : Image)","args_html":"(*in_ : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8890,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8890"},"def":{"name":"sum","args":[{"name":"in_","external_name":"in_","restriction":"Image"}],"splat_index":0,"visibility":"Public","body":"((Operation.call(\"sum\", in_)).as(Type)).as_image"}},{"html_id":"svgload(filename:String,**kwargs)-class-method","name":"svgload","doc":"Load svg with rsvg\n\n```\n# out_, flags = Vips::Image.svgload(filename, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load svg with rsvg

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8930,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8930"},"def":{"name":"svgload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"svgload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"svgload_buffer(buffer:Bytes,**kwargs)-class-method","name":"svgload_buffer","doc":"Load svg with rsvg\n\n```\n# out_, flags = Vips::Image.svgload_buffer(buffer, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load svg with rsvg

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8979,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8979"},"def":{"name":"svgload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"svgload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"svgload_source(source:Source,**kwargs)-class-method","name":"svgload_source","doc":"Load svg from source\n\n```\n# out_, flags = Vips::Image.svgload_source(source, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load svg from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9028,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9028"},"def":{"name":"svgload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"svgload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"svgload_stream(stream:IO,**kwargs)-class-method","name":"svgload_stream","doc":"Load svg from stream\n\n```\n# out_, flags = Vips::Image.svgload_stream(stream, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load svg from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9072,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9072"},"def":{"name":"svgload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nsvgload_source(source, **kwargs)\n"}},{"html_id":"switch(*tests:Image)-class-method","name":"switch","doc":"Find the index of the first non-zero pixel in tests\n\n```\n# out_ = Vips::Image.switch(tests)\n```\n\n\nInput Parameters\n\n**Required**\n\n*tests* : Array(Image) - Table of images to test\n\n\n**Returns**\n\nOutput image\n","summary":"

    Find the index of the first non-zero pixel in tests

    ","abstract":false,"args":[{"name":"tests","external_name":"tests","restriction":"Image"}],"args_string":"(*tests : Image)","args_html":"(*tests : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":9095,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9095"},"def":{"name":"switch","args":[{"name":"tests","external_name":"tests","restriction":"Image"}],"splat_index":0,"visibility":"Public","body":"((Operation.call(\"switch\", tests)).as(Type)).as_image"}},{"html_id":"system(cmd_format:String,**kwargs)-class-method","name":"system","doc":"Run an external command\n\n```\n, out_, log = Vips::Image.system(cmd_format, {in_: Array(Image), out_format: String, in_format: String})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*cmd_format* : String - Command to run\n\n_Optionals_\n\n*in* : Array(Image) - Array of input images\n\n*out_format* : String - Format for output filename\n\n*in_format* : String - Format for input filename\n\n\n**Returns**\n\n_Optionals_\n\n*out* : Image? - Output image\n\n*log* : String? - Command log\n","summary":"

    Run an external command

    ","abstract":false,"args":[{"name":"cmd_format","external_name":"cmd_format","restriction":"String"}],"args_string":"(cmd_format : String, **kwargs)","args_html":"(cmd_format : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9130,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9130"},"def":{"name":"system","args":[{"name":"cmd_format","external_name":"cmd_format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"out\"] = true\noptions[\"log\"] = true\n((optsOperation.call(\"system\", options, cmd_format)).as(Type)).as_h\n"}},{"html_id":"thumbnail(filename:String,width:Int32,**kwargs)-class-method","name":"thumbnail","doc":"Generate thumbnail from file\n\n```\n# out_ = Vips::Image.thumbnail(filename, width, {height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to read from\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(filename : String, width : Int32, **kwargs)","args_html":"(filename : String, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9178,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9178"},"def":{"name":"thumbnail","args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"thumbnail\", options, filename, width)).as(Type)).as_image\n"}},{"html_id":"thumbnail_buffer(buffer:Bytes,width:Int32,**kwargs)-class-method","name":"thumbnail_buffer","doc":"Generate thumbnail from buffer\n\n```\n# out_ = Vips::Image.thumbnail_buffer(buffer, width, {option_string: String, height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*option_string* : String - Options that are passed on to the underlying loader\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(buffer : Bytes, width : Int32, **kwargs)","args_html":"(buffer : Bytes, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9226,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9226"},"def":{"name":"thumbnail_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"thumbnail_buffer\", options, buffer, width)).as(Type)).as_image\n"}},{"html_id":"thumbnail_source(source:Source,width:Int32,**kwargs)-class-method","name":"thumbnail_source","doc":"Generate thumbnail from source\n\n```\n# out_ = Vips::Image.thumbnail_source(source, width, {option_string: String, height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*option_string* : String - Options that are passed on to the underlying loader\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(source : Source, width : Int32, **kwargs)","args_html":"(source : Source, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9318,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9318"},"def":{"name":"thumbnail_source","args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"thumbnail_source\", options, source, width)).as(Type)).as_image\n"}},{"html_id":"thumbnail_stream(stream:IO,width:Int32,**kwargs)-class-method","name":"thumbnail_stream","doc":"Generate thumbnail from stream\n\n```\n# out_ = Vips::Image.thumbnail_stream(stream, width, {option_string: String, height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n\n*width : Int32* - Size to this width\n_Optionals_\n\n*option_string* : String - Options that are passed on to the underlying loader\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_","summary":"

    Generate thumbnail from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(stream : IO, width : Int32, **kwargs)","args_html":"(stream : IO, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9363,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9363"},"def":{"name":"thumbnail_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nthumbnail_source(source, width, **kwargs)\n"}},{"html_id":"tiffload(filename:String,**kwargs)-class-method","name":"tiffload","doc":"Load tiff from file\n\n```\n# out_, flags = Vips::Image.tiffload(filename, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load tiff from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9406,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9406"},"def":{"name":"tiffload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"tiffload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"tiffload_buffer(buffer:Bytes,**kwargs)-class-method","name":"tiffload_buffer","doc":"Load tiff from buffer\n\n```\n# out_, flags = Vips::Image.tiffload_buffer(buffer, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load tiff from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9457,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9457"},"def":{"name":"tiffload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"tiffload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"tiffload_source(source:Source,**kwargs)-class-method","name":"tiffload_source","doc":"Load tiff from source\n\n```\n# out_, flags = Vips::Image.tiffload_source(source, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load tiff from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9508,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9508"},"def":{"name":"tiffload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"tiffload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"tiffload_stream(stream:IO,**kwargs)-class-method","name":"tiffload_stream","doc":"Load tiff from stream\n\n```\n# out_, flags = Vips::Image.tiffload_stream(stream, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load tiff from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9554,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9554"},"def":{"name":"tiffload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\ntiffload_source(source, **kwargs)\n"}},{"html_id":"tonelut(**kwargs)-class-method","name":"tonelut","doc":"Build a look-up table\n\n```\n# out_ = Vips::Image.tonelut({in_max: Int32, out_max: Int32, lb: Float64, lw: Float64, ps: Float64, pm: Float64, ph: Float64, s: Float64, m: Float64, h: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*in_max* : Int32 - Size of LUT to build\n\n*out_max* : Int32 - Maximum value in output LUT\n\n*lb* : Float64 - Lowest value in output\n\n*lw* : Float64 - Highest value in output\n\n*ps* : Float64 - Position of shadow\n\n*pm* : Float64 - Position of mid-tones\n\n*ph* : Float64 - Position of highlights\n\n*s* : Float64 - Adjust shadows by this much\n\n*m* : Float64 - Adjust mid-tones by this much\n\n*h* : Float64 - Adjust highlights by this much\n\n\n**Returns**\n\nOutput image\n","summary":"

    Build a look-up table

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9903,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9903"},"def":{"name":"tonelut","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"tonelut\", options)).as(Type)).as_image\n"}},{"html_id":"vipsload(filename:String,**kwargs)-class-method","name":"vipsload","doc":"Load vips from file\n\n```\n# out_, flags = Vips::Image.vipsload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load vips from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9989,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9989"},"def":{"name":"vipsload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"vipsload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"vipsload_source(source:Source,**kwargs)-class-method","name":"vipsload_source","doc":"Load vips from source\n\n```\n# out_, flags = Vips::Image.vipsload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load vips from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10032,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10032"},"def":{"name":"vipsload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"vipsload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"vipsload_stream(stream:IO,**kwargs)-class-method","name":"vipsload_stream","doc":"Load vips from stream\n\n```\n# out_, flags = Vips::Image.vipsload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load vips from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10070,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10070"},"def":{"name":"vipsload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nvipsload_source(source, **kwargs)\n"}},{"html_id":"webpload(filename:String,**kwargs)-class-method","name":"webpload","doc":"Load webp from file\n\n```\n# out_, flags = Vips::Image.webpload(filename, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load webp from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10189,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10189"},"def":{"name":"webpload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"webpload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"webpload_buffer(buffer:Bytes,**kwargs)-class-method","name":"webpload_buffer","doc":"Load webp from buffer\n\n```\n# out_, flags = Vips::Image.webpload_buffer(buffer, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load webp from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10238,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10238"},"def":{"name":"webpload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"webpload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"webpload_source(source:Source,**kwargs)-class-method","name":"webpload_source","doc":"Load webp from source\n\n```\n# out_, flags = Vips::Image.webpload_source(source, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load webp from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10287,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10287"},"def":{"name":"webpload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"webpload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"webpload_stream(stream:IO,**kwargs)-class-method","name":"webpload_stream","doc":"Load webp from stream\n\n```\n# out_, flags = Vips::Image.webpload_stream(stream, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load webp from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10331,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10331"},"def":{"name":"webpload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nwebpload_source(source, **kwargs)\n"}},{"html_id":"worley(width:Int32,height:Int32,**kwargs)-class-method","name":"worley","doc":"Make a worley noise image\n\n```\n# out_ = Vips::Image.worley(width, height, {cell_size: Int32, seed: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*cell_size* : Int32 - Size of Worley cells\n\n*seed* : Int32 - Random number seed\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a worley noise image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10611,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10611"},"def":{"name":"worley","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"worley\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"xyz(width:Int32,height:Int32,**kwargs)-class-method","name":"xyz","doc":"Make an image where pixel values are coordinates\n\n```\n# out_ = Vips::Image.xyz(width, height, {csize: Int32, dsize: Int32, esize: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*csize* : Int32 - Size of third dimension\n\n*dsize* : Int32 - Size of fourth dimension\n\n*esize* : Int32 - Size of fifth dimension\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an image where pixel values are coordinates

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10671,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10671"},"def":{"name":"xyz","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"xyz\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"zone(width:Int32,height:Int32,**kwargs)-class-method","name":"zone","doc":"Make a zone plate\n\n```\n# out_ = Vips::Image.zone(width, height, {uchar: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a zone plate

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10785,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10785"},"def":{"name":"zone","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"zone\", options, width, height)).as(Type)).as_image\n"}}],"constructors":[{"html_id":"imageize(match_image:Image,value):Image-class-method","name":"imageize","doc":"expand a constant into an image","summary":"

    expand a constant into an image

    ","abstract":false,"args":[{"name":"match_image","external_name":"match_image","restriction":"Image"},{"name":"value","external_name":"value","restriction":""}],"args_string":"(match_image : Image, value) : Image","args_html":"(match_image : Image, value) : Image","location":{"filename":"src/vips/image.cr","line_number":41,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L41"},"def":{"name":"imageize","args":[{"name":"match_image","external_name":"match_image","restriction":"Image"},{"name":"value","external_name":"value","restriction":""}],"return_type":"Image","visibility":"Public","body":"case value\nwhen Image\n value\nwhen Array(Array(Float64))\n new_from_array(value)\nwhen Array(Array(Int32))\n new_from_array(value)\nwhen Array(Float64)\n match_image.new_from_image(value)\nwhen Array(Int32)\n match_image.new_from_image(value)\nwhen Float64\n match_image.new_from_image(value)\nwhen Int32\n match_image.new_from_image(value)\nelse\n raise(VipsException.new(\"unsupported value type #{typeof(value)} for imageize\"))\nend"}},{"html_id":"new_from_array(array:Array,scale=1.0,offset=0.0):Image-class-method","name":"new_from_array","doc":"Create a new Image from a 1D or 2D array. A 1D array becomes an\nimage with height 1. Use `scale` and `offset` to set the scale and\noffset fields in the header. These are useful for integer\nconvolutions.\n\nFor example:\n\n```\nimage = Vips::Image.new_from_array [1, 2, 3]\n```\n\nor\n\n```\nimage = Vips::Image.new_from_array [\n [-1, -1, -1],\n [-1, 16, -1],\n [-1, -1, -1],\n], 8\n```\n\nfor a simple sharpening mask.","summary":"

    Create a new Image from a 1D or 2D array.

    ","abstract":false,"args":[{"name":"array","external_name":"array","restriction":"Array"},{"name":"scale","default_value":"1.0","external_name":"scale","restriction":""},{"name":"offset","default_value":"0.0","external_name":"offset","restriction":""}],"args_string":"(array : Array, scale = 1.0, offset = 0.0) : Image","args_html":"(array : Array, scale = 1.0, offset = 0.0) : Image","location":{"filename":"src/vips/image.cr","line_number":279,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L279"},"def":{"name":"new_from_array","args":[{"name":"array","external_name":"array","restriction":"Array"},{"name":"scale","default_value":"1.0","external_name":"scale","restriction":""},{"name":"offset","default_value":"0.0","external_name":"offset","restriction":""}],"return_type":"Image","visibility":"Public","body":"if (darr = array[0].as?(Array))\n height = array.size\n width = darr.size\n if array.all? do |x|\n x.is_a?(Array)\n end\n else\n raise(VipsException.new(\"Not a 2D array.\"))\n end\n if array.all? do |x|\n (x.as?(Array)).try(&.size) == width\n end\n else\n raise(VipsException.new(\"Array not rectangular.\"))\n end\n array = array.flatten\nelse\n height = 1\n width = array.size\nend\nif array.size == (width * height)\nelse\n raise(VipsException.new(\"Bad array dimensions.\"))\nend\nif array.all? do |x|\n x.is_a?(Number)\nend\nelse\n raise(VipsException.new(\"Not all array elements are Numeric.\"))\nend\ndblarr = Array(Float64).new(array.size) do |i|\n (array[i].as(Number)).to_f\nend\nvi = LibVips.vips_image_new_matrix_from_array(width, height, dblarr, dblarr.size)\nif vi.null?\n raise(VipsException.new(\"unable to make image from matrix\"))\nend\nimage = new(vi)\nimage.mutate do |mutable|\n mutable.set(GValue::GDouble, \"scale\", scale)\n mutable.set(GValue::GDouble, \"offset\", offset)\nend\n"}},{"html_id":"new_from_buffer(data:String|Bytes|IO,option_string:String=\"\",access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_buffer","doc":"Create a new `Image` for an image encoded in a format such as\nJPEG in a binary `String`, `Bytes` or `IO`. Load options may be passed as\nstrings or appended as a keyword arguments. For example:\n\n```\nimage = Vips::Image.new_from_buffer memory_buffer, \"shrink=2\"\n```\n\nor alternatively:\n\n```\nimage = Vips::Image.new_from_buffer memory_buffer, \"\", shrink: 2\n```\n\nThe options available depend on the file format. Try something like:\n\n```\n$ vips jpegload_buffer\n```\n\nat the command-line to see the available options. Not all loaders\nsupport load from buffer, but at least JPEG, PNG and\nTIFF images will work.\n\n**Loading is fast**: only enough of the image is loaded to be able to fill\nout the header. Pixels will only be decompressed when they are needed.","summary":"

    Create a new Image for an image encoded in a format such as JPEG in a binary String, Bytes or IO.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(data : String | Bytes | IO, option_string : String = \"\", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(data : String | Bytes | IO, option_string : String = "", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":165,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L165"},"def":{"name":"new_from_buffer","args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"buffer = case data\nwhen String\n data.to_slice\nwhen IO\n data.gets_to_end.to_slice\nelse\n data\nend\nloader = String.new((LibVips.vips_foreign_find_load_buffer(buffer, buffer.bytesize)) || Bytes.empty)\nif loader.blank?\n raise(VipsException.new(\"Unable to load from buffer\"))\nend\noptions = Optional.new(**opts)\nif access.nil?\nelse\n options[\"access\"] = access.value\nend\nEnums.add_failon(options, failon)\noptions[\"string_options\"] = option_string\n((Operation.call(loader, options, buffer)).as(Type)).as_image\n"}},{"html_id":"new_from_file(name:String,memory:Bool|Nil=nil,access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_file","doc":"Return a new `Image` for a file on disc. This method can load\nimages in any format supported by vips. The filename can include\nload options, for example:\n\n```\nimage = Vips::Image.new_from_file \"fred.jpg[shrink=2]\"\n```\n\nYou can also supply options as keyword arguments (NamedTuple), for example:\n\n```\nimage = Vips::Image.new_from_file \"fred.jpg\", shrink: 2\n```\n\nThe full set of options available depend upon the load operation that\nwill be executed. Try something like:\n\n```\n$ vips jpegload\n```\n\nat the command-line to see a summary of the available options for the\nJPEG loader.\n\n**Loading is fast**: only enough of the image is loaded to be able to fill\nout the header. Pixels will only be decompressed when they are needed.","summary":"

    Return a new Image for a file on disc.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"memory","default_value":"nil","external_name":"memory","restriction":"Bool | ::Nil"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(name : String, memory : Bool | Nil = nil, access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(name : String, memory : Bool | Nil = nil, access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":120,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L120"},"def":{"name":"new_from_file","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"memory","default_value":"nil","external_name":"memory","restriction":"Bool | ::Nil"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"filename = String.new(LibVips.vips_filename_get_filename(name))\nfile_options = String.new(LibVips.vips_filename_get_options(name))\nloader = String.new((LibVips.vips_foreign_find_load(filename)) || Bytes.empty)\nif loader.blank?\n raise(VipsException.new(\"Unable to load from #{filename}\"))\nend\noptions = Optional.new(**opts)\nif memory.nil?\nelse\n options[\"memory\"] = memory\nend\nif access.nil?\nelse\n options[\"access\"] = access.value\nend\nEnums.add_failon(options, failon)\noptions[\"string_options\"] = file_options\n((Operation.call(loader, options, filename)).as(Type)).as_image\n"}},{"html_id":"new_from_memory(data:Bytes,width:Int32,height:Int32,bands:Int32,format:Enums::BandFormat):Image-class-method","name":"new_from_memory","doc":"Wraps an Image around an area of memory containing a C-style array. For\nexample, if the `data` memory array contains four bytes with the\nvalues 1, 2, 3, 4, you can make a one-band, 2x2 uchar image from\nit like this:\n```\nimage = Image.new_from_memory(data, 2, 2, 1, Enums::BandFormat::Uchar)\n```\n\nA reference is kept to the data object, so it will not be\ngarbage-collected until the returned image is garbage-collected.\n\nThis method is useful for efficiently transferring images from GDI+\ninto libvips.","summary":"

    Wraps an Image around an area of memory containing a C-style array.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"args_string":"(data : Bytes, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","args_html":"(data : Bytes, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","location":{"filename":"src/vips/image.cr","line_number":330,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L330"},"def":{"name":"new_from_memory","args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"return_type":"Image","visibility":"Public","body":"vi = LibVips.vips_image_new_from_memory(Box.box(data), data.size, width, height, bands, LibVips::VipsBandFormat.from_value(format.value))\nif vi.null?\n raise(VipsException.new(\"unable to make image from memory\"))\nend\nimage = new(vi)\n(image.@references) << data\nimage\n"}},{"html_id":"new_from_memory_copy(data:Pointer(Void),size:UInt64,width:Int32,height:Int32,bands:Int32,format:Enums::BandFormat):Image-class-method","name":"new_from_memory_copy","doc":"Create a new `Image` from memory and copies the memory area. See\n`new_from_memory` for a version of this method which does not copy the\nmemory area.","summary":"

    Create a new Image from memory and copies the memory area.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"::Pointer(Void)"},{"name":"size","external_name":"size","restriction":"UInt64"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"args_string":"(data : Pointer(Void), size : UInt64, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","args_html":"(data : Pointer(Void), size : UInt64, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","location":{"filename":"src/vips/image.cr","line_number":345,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L345"},"def":{"name":"new_from_memory_copy","args":[{"name":"data","external_name":"data","restriction":"::Pointer(Void)"},{"name":"size","external_name":"size","restriction":"UInt64"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"return_type":"Image","visibility":"Public","body":"vi = LibVips.vips_image_new_from_memory_copy(data, size, width, height, bands, LibVips::VipsBandFormat.from_value(format.value))\nif vi.null?\n raise(VipsException.new(\"unable to make image from memory\"))\nend\nnew(vi)\n"}},{"html_id":"new_from_source(source:Source,option_string:String=\"\",access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_source","doc":"Create a new `Image` from a source. Load options may be passed as\nstrings or appended as a hash. For example:\n\n```\nsource = Vips::Source.new_from_file(\"k2.jpg\")\nimage = Vips::Image.new_from_source source, \"shrink=2\"\n```\n\nor alternatively:\n\n```\nimage = Vips::Image.new_from_source source, shrink: 2\n```\n\nThe options available depend on the file format. Try something like:\n\n```\n$ vips jpegload_source\n```\n\nat the command-line to see the available options. Not all loaders\nsupport load from source, but at least JPEG, PNG and\nTIFF images will work.\n\n**Loading is fast**: only enough data is read to be able to fill\nout the header. Pixels will only be read and decompressed when they are\nneeded.","summary":"

    Create a new Image from a source.

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(source : Source, option_string : String = \"\", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(source : Source, option_string : String = "", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":212,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L212"},"def":{"name":"new_from_source","args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"LibVips.vips_error_freeze\nopname = find_load_source(source)\nLibVips.vips_error_thaw\noptions = Optional.new(**opts)\nif access.nil?\nelse\n options[\"access\"] = access.value\nend\nEnums.add_failon(options, failon)\noptions[\"string_options\"] = option_string\nif opname.nil?\nelse\n return ((Operation.call(opname, options, source)).as(Type)).as_image\nend\nif (filename = source.filename)\n opname = find_load(filename)\n if opname.nil?\n raise(VipsException.new(\"unable to load from source\"))\n end\n return ((Operation.call(opname, options, filename)).as(Type)).as_image\nend\nptr = LibVips.vips_source_map_blob(source)\nif ptr.null?\n raise(VipsException.new(\"unable to load from source\"))\nend\nblob = VipsBlob.new(ptr)\nbuff, size = blob.get_data\nopname = LibVips.vips_foreign_find_load_buffer(buff, size)\nif opname.null?\n raise(VipsException.new(\"unable to load from source\"))\nend\nreturn ((Operation.call(String.new(opname), options, blob)).as(Type)).as_image\n"}},{"html_id":"new_from_stream(stream:IO,option_string:String=\"\",access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_stream","doc":"Load a formatted image from a stream\nThis behaves exactly as `new_from_source`, but the image is loaded from a stream rathar than from a source.\nNote: AT least libvips 8.9 is needed","summary":"

    Load a formatted image from a stream This behaves exactly as .new_from_source, but the image is loaded from a stream rathar than from a source.

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(stream : IO, option_string : String = \"\", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(stream : IO, option_string : String = "", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":251,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L251"},"def":{"name":"new_from_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nnew_from_source(source, option_string, access, failon, **opts)\n"}},{"html_id":"new_temp_file(format:String):Image-class-method","name":"new_temp_file","doc":"Make a new temporary image.\nReturns an image backed by a temporary file. When written to with `write`, a temporary\nfile will be created on disc in the specified format. When the image is closed, the file will be deleted\nautomatically.\n\nThe file is created in the temporary directory. This is set with the environment variable `TMPDIR`.\nIf this is not set, then on Unix systems, vips will default to `/tmp`. On Windows, vips uses\n`GetTempPath()` to find the temporary director.\n\nvips uses `g_mkstemp()` to make the temporary filename. They generally look something like `vips-12-EJKFGH.v`\n*format* is the format for the temp file, for example `%s.v` for a vips format file. The `%s` is\nsubsituted by the file path.\n\nNote: `VipsException` is raised, if unable to make temp file from *format*","summary":"

    Make a new temporary image.

    ","abstract":false,"args":[{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(format : String) : Image","args_html":"(format : String) : Image","location":{"filename":"src/vips/image.cr","line_number":365,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L365"},"def":{"name":"new_temp_file","args":[{"name":"format","external_name":"format","restriction":"String"}],"return_type":"Image","visibility":"Public","body":"vi = LibVips.vips_image_new_temp_file(format)\nif vi.null?\n raise(VipsException.new(\"unable to make temp file\"))\nend\nnew(vi)\n"}}],"instance_methods":[{"html_id":"!=(other)-instance-method","name":"!=","doc":"Returns `true` if this object is not equal to *other*.\n\nBy default this method is implemented as `!(self == other)`\nso there's no need to override this unless there's a more efficient\nway to do it.","summary":"

    Returns true if this object is not equal to other.

    ","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1148,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1148"},"def":{"name":"!=","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Noteq)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Noteq, other)).as(Type)).as_image\nend"}},{"html_id":"%(other)-instance-method","name":"%","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1092,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1092"},"def":{"name":"%","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n remainder(other)\nelse\n ((call(\"remainder_const\", other)).as(Type)).as_image\nend"}},{"html_id":"&(other)-instance-method","name":"&","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1100,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1100"},"def":{"name":"&","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::And)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::And, other)).as(Type)).as_image\nend"}},{"html_id":"*(other)-instance-method","name":"*","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1076,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1076"},"def":{"name":"*","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n subtract(other)\nelse\n ((call(\"linear\", convert(other, \"multiplication\") do |x|\n x.to_f\n end, 0.0)).as(Type)).as_image\nend"}},{"html_id":"**(exp:Image)-instance-method","name":"**","doc":"Raise to the power of an image","summary":"

    Raise to the power of an image

    ","abstract":false,"args":[{"name":"exp","external_name":"exp","restriction":"Image"}],"args_string":"(exp : Image)","args_html":"(exp : Image)","location":{"filename":"src/vips/image.cr","line_number":953,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L953"},"def":{"name":"**","args":[{"name":"exp","external_name":"exp","restriction":"Image"}],"visibility":"Public","body":"self.math2(exp, Enums::OperationMath2::Pow)"}},{"html_id":"**(exp:Array(Number))-instance-method","name":"**","doc":"Raise to the power of a constant or an array of constants","summary":"

    Raise to the power of a constant or an array of constants

    ","abstract":false,"args":[{"name":"exp","external_name":"exp","restriction":"Array(Number)"}],"args_string":"(exp : Array(Number))","args_html":"(exp : Array(Number))","location":{"filename":"src/vips/image.cr","line_number":963,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L963"},"def":{"name":"**","args":[{"name":"exp","external_name":"exp","restriction":"Array(Number)"}],"visibility":"Public","body":"self.math2_const(Enums::OperationMath2::Pow, exp.map(&.to_f))"}},{"html_id":"**(*exp:Number)-instance-method","name":"**","doc":"Arc tangent of a constant or an array of constants in degrees","summary":"

    Arc tangent of a constant or an array of constants in degrees

    ","abstract":false,"args":[{"name":"exp","external_name":"exp","restriction":"Number"}],"args_string":"(*exp : Number)","args_html":"(*exp : Number)","location":{"filename":"src/vips/image.cr","line_number":973,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L973"},"def":{"name":"**","args":[{"name":"exp","external_name":"exp","restriction":"Number"}],"splat_index":0,"visibility":"Public","body":"self.math2_const(Enums::OperationMath2::Atan2, exp.map(&.to_f).to_a)"}},{"html_id":"+(other)-instance-method","name":"+","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1060,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1060"},"def":{"name":"+","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n add(other)\nelse\n ((call(\"linear\", 1.0, convert(other, \"addition\") do |x|\n x.to_f\n end)).as(Type)).as_image\nend"}},{"html_id":"-(other)-instance-method","name":"-","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1068,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1068"},"def":{"name":"-","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n subtract(other)\nelse\n ((call(\"linear\", 1.0, convert(other, \"subtraction\") do |x|\n x.to_f * -1\n end)).as(Type)).as_image\nend"}},{"html_id":"/(other)-instance-method","name":"/","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1084,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1084"},"def":{"name":"/","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n subtract(other)\nelse\n ((call(\"linear\", convert(other, \"division\") do |x|\n 1.0 / x\n end, 0.0)).as(Type)).as_image\nend"}},{"html_id":"<(other)-instance-method","name":"<","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1156,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1156"},"def":{"name":"<","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Less)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Less, other)).as(Type)).as_image\nend"}},{"html_id":"<<(other)-instance-method","name":"<<","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1124,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1124"},"def":{"name":"<<","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Lshift)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Lshift, other)).as(Type)).as_image\nend"}},{"html_id":"<=(other)-instance-method","name":"<=","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1172,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1172"},"def":{"name":"<=","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Lesseq)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Lesseq, other)).as(Type)).as_image\nend"}},{"html_id":"==(other)-instance-method","name":"==","doc":"Returns `false` (other can only be a `Value` here).","summary":"

    Returns false (other can only be a Value here).

    ","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1140,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1140"},"def":{"name":"==","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Equal)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Equal, other)).as(Type)).as_image\nend"}},{"html_id":">(other)-instance-method","name":">","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1164,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1164"},"def":{"name":">","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::More)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::More, other)).as(Type)).as_image\nend"}},{"html_id":">=(other)-instance-method","name":">=","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1180,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1180"},"def":{"name":">=","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Moreeq)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Moreeq, other)).as(Type)).as_image\nend"}},{"html_id":">>(other)-instance-method","name":">>","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1132,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1132"},"def":{"name":">>","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Rshift)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Rshift, other)).as(Type)).as_image\nend"}},{"html_id":"[](x:Int32,y:Int32)-instance-method","name":"[]","doc":"A synonym for `getpoint`","summary":"

    A synonym for #getpoint

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32)","args_html":"(x : Int32, y : Int32)","location":{"filename":"src/vips/image.cr","line_number":1284,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1284"},"def":{"name":"[]","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"getpoint(x, y)"}},{"html_id":"[](i:Int32)-instance-method","name":"[]","doc":"pull out band elements from an image","summary":"

    pull out band elements from an image

    ","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"Int32"}],"args_string":"(i : Int32)","args_html":"(i : Int32)","location":{"filename":"src/vips/image.cr","line_number":1271,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1271"},"def":{"name":"[]","args":[{"name":"i","external_name":"i","restriction":"Int32"}],"visibility":"Public","body":"if band_exists?(i)\nelse\n raise(ArgumentError.new(\"Band index out of bounds\"))\nend\nextract_band(i)\n"}},{"html_id":"[](index:Range)-instance-method","name":"[]","doc":"Fetch bands using a range","summary":"

    Fetch bands using a range

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Range"}],"args_string":"(index : Range)","args_html":"(index : Range)","location":{"filename":"src/vips/image.cr","line_number":1277,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1277"},"def":{"name":"[]","args":[{"name":"index","external_name":"index","restriction":"Range"}],"visibility":"Public","body":"if band_exists?(index.begin)\nelse\n raise(ArgumentError.new(\"Band index out of bounds for range start\"))\nend\nif band_exists?(index.end)\nelse\n raise(ArgumentError.new(\"Band index out of bounds for range start\"))\nend\nextract_band(index.begin, n: index.end)\n"}},{"html_id":"^(other)-instance-method","name":"^","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1116,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1116"},"def":{"name":"^","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Eor)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Eor, other)).as(Type)).as_image\nend"}},{"html_id":"|(other)-instance-method","name":"|","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1108,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1108"},"def":{"name":"|","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Or)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Or, other)).as(Type)).as_image\nend"}},{"html_id":"a_cosh:Image-instance-method","name":"a_cosh","doc":"Return the inverse hyperbolic cosine of an image in degrees.","summary":"

    Return the inverse hyperbolic cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":923,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L923"},"def":{"name":"a_cosh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Acosh)"}},{"html_id":"a_sinh:Image-instance-method","name":"a_sinh","doc":"Return the inverse hyperbolic sine of an image in degrees.","summary":"

    Return the inverse hyperbolic sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":918,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L918"},"def":{"name":"a_sinh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Asinh)"}},{"html_id":"a_tan2(x:Image)-instance-method","name":"a_tan2","doc":"Arc tangent of an image in degrees.","summary":"

    Arc tangent of an image in degrees.

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Image"}],"args_string":"(x : Image)","args_html":"(x : Image)","location":{"filename":"src/vips/image.cr","line_number":968,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L968"},"def":{"name":"a_tan2","args":[{"name":"x","external_name":"x","restriction":"Image"}],"visibility":"Public","body":"self.math2(x, Enums::OperationMath2::Atan2)"}},{"html_id":"a_tanh:Image-instance-method","name":"a_tanh","doc":"Return the inverse hyperbolic tangent of an image in degrees.","summary":"

    Return the inverse hyperbolic tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":928,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L928"},"def":{"name":"a_tanh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Atanh)"}},{"html_id":"abs-instance-method","name":"abs","doc":"Absolute value of an image\n\n```\n# out_ = in.abs()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Absolute value of an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":25,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L25"},"def":{"name":"abs","visibility":"Public","body":"((self.call(\"abs\")).as(Type)).as_image"}},{"html_id":"acos:Image-instance-method","name":"acos","doc":"Return the inverse cosine of an image in degrees.","summary":"

    Return the inverse cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":893,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L893"},"def":{"name":"acos","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Acos)"}},{"html_id":"add(right:Image)-instance-method","name":"add","doc":"Add two images\n\n```\n# out_ = left.add(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Add two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L47"},"def":{"name":"add","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"add\", right)).as(Type)).as_image"}},{"html_id":"add_alpha:Image-instance-method","name":"add_alpha","doc":"Append an alpha channel to an image.","summary":"

    Append an alpha channel to an image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1197,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1197"},"def":{"name":"add_alpha","return_type":"Image","visibility":"Public","body":"if Vips.at_least_libvips?(8, 6)\n (LibVips.vips_addalpha(self, out vi)).tap do |ret|\n if ret == 0\n else\n raise(VipsException.new(\"unable to append alpha channel to image\"))\n end\n end\n return Image.new(vi)\nend\nmax_alpha = [Enums::Interpretation::Grey16, Enums::Interpretation::Rgb16].includes?(interpretation) ? 65535 : 255\nbandjoin(max_alpha)\n"}},{"html_id":"affine(matrix:Array(Float64),**kwargs)-instance-method","name":"affine","doc":"Affine transform of an image\n\n```\n# out_ = in.affine(matrix, {interpolate: Interpolate, oarea: Array(Int32), odx: Float64, ody: Float64, idx: Float64, idy: Float64, background: Array(Float64), premultiplied: Bool, extend: Enums::Extend})\n```\n\n\nInput Parameters\n\n**Required**\n\n*matrix* : Array(Float64) - Transformation matrix\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*oarea* : Array(Int32) - Area of output to generate\n\n*odx* : Float64 - Horizontal output displacement\n\n*ody* : Float64 - Vertical output displacement\n\n*idx* : Float64 - Horizontal input displacement\n\n*idy* : Float64 - Vertical input displacement\n\n*background* : Array(Float64) - Background value\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Affine transform of an image

    ","abstract":false,"args":[{"name":"matrix","external_name":"matrix","restriction":"Array(Float64)"}],"args_string":"(matrix : Array(Float64), **kwargs)","args_html":"(matrix : Array(Float64), **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":89,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L89"},"def":{"name":"affine","args":[{"name":"matrix","external_name":"matrix","restriction":"Array(Float64)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"affine\", options, matrix)).as(Type)).as_image\n"}},{"html_id":"asin:Image-instance-method","name":"asin","doc":"Return the inverse sine of an image in degrees.","summary":"

    Return the inverse sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":888,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L888"},"def":{"name":"asin","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Asin)"}},{"html_id":"atan:Image-instance-method","name":"atan","doc":"Return the inverse tangent of an image in degrees.","summary":"

    Return the inverse tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":898,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L898"},"def":{"name":"atan","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Atan)"}},{"html_id":"autorot-instance-method","name":"autorot","doc":"Autorotate image by exif tag\n\n```\n# out_, angle, flip = in.autorot()\n```\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*angle* : Enums::Angle? - Angle image was rotated by\n\n*flip* : Bool? - Whether the image was flipped or not\n","summary":"

    Autorotate image by exif tag

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":195,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L195"},"def":{"name":"autorot","visibility":"Public","body":"optional_output = Optional.new(**{angle: true, flip: true})\nresults = (self.call(\"autorot\", optional_output)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nangle = ((o = opts) && (val = o[\"angle\"]?)) ? val.as_enum(Enums::Angle) : nil\nflip = ((o = opts) && (val = o[\"flip\"]?)) ? val.as_b : nil\n{final_result, angle, flip}\n"}},{"html_id":"avg-instance-method","name":"avg","doc":"Find image average\n\n```\n# out_ = in.avg()\n```\n\n\n**Returns**\n\nOutput value\n","summary":"

    Find image average

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":219,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L219"},"def":{"name":"avg","visibility":"Public","body":"((self.call(\"avg\")).as(Type)).as_f64"}},{"html_id":"band_exists?(i:Int32)-instance-method","name":"band_exists?","doc":"Does band exist in image.","summary":"

    Does band exist in image.

    ","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"Int32"}],"args_string":"(i : Int32)","args_html":"(i : Int32)","location":{"filename":"src/vips/image.cr","line_number":1266,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1266"},"def":{"name":"band_exists?","args":[{"name":"i","external_name":"i","restriction":"Int32"}],"visibility":"Public","body":"i >= 0 && i <= (bands - 1)"}},{"html_id":"bandand-instance-method","name":"bandand","doc":"AND the bands of an image together","summary":"

    AND the bands of an image together

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1033,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1033"},"def":{"name":"bandand","visibility":"Public","body":"((self.call(\"bandbool\", Enums::OperationBoolean::And)).as(Type)).as_image"}},{"html_id":"bandbool(boolean:Enums::OperationBoolean)-instance-method","name":"bandbool","doc":"Boolean operation across image bands\n\n```\n# out_ = in.bandbool(boolean)\n```\n\n\nInput Parameters\n\n**Required**\n\n*boolean* : Enums::OperationBoolean - Boolean to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Boolean operation across image bands

    ","abstract":false,"args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"args_string":"(boolean : Enums::OperationBoolean)","args_html":"(boolean : Enums::OperationBoolean)","location":{"filename":"src/vips/ext/image.cr","line_number":241,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L241"},"def":{"name":"bandbool","args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"visibility":"Public","body":"((self.call(\"bandbool\", boolean)).as(Type)).as_image"}},{"html_id":"bandeor-instance-method","name":"bandeor","doc":"EOR the bands of an image together","summary":"

    EOR the bands of an image together

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1043,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1043"},"def":{"name":"bandeor","visibility":"Public","body":"((self.call(\"bandbool\", Enums::OperationBoolean::Eor)).as(Type)).as_image"}},{"html_id":"bandfold(**kwargs)-instance-method","name":"bandfold","doc":"Fold up x axis into bands\n\n```\n# out_ = in.bandfold({factor: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*factor* : Int32 - Fold by this factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Fold up x axis into bands

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":263,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L263"},"def":{"name":"bandfold","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"bandfold\", options)).as(Type)).as_image\n"}},{"html_id":"bandjoin(arr:Array(Int32)):Image-instance-method","name":"bandjoin","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(Int32)"}],"args_string":"(arr : Array(Int32)) : Image","args_html":"(arr : Array(Int32)) : Image","location":{"filename":"src/vips/image.cr","line_number":705,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L705"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Array(Int32)"}],"return_type":"Image","visibility":"Public","body":"bandjoin(arr.map(&.to_f))"}},{"html_id":"bandjoin(arr:Array(Float64)):Image-instance-method","name":"bandjoin","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(Float64)"}],"args_string":"(arr : Array(Float64)) : Image","args_html":"(arr : Array(Float64)) : Image","location":{"filename":"src/vips/image.cr","line_number":709,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L709"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Array(Float64)"}],"return_type":"Image","visibility":"Public","body":"bandjoin_const(arr)"}},{"html_id":"bandjoin(arr:Array(Image)):Image-instance-method","name":"bandjoin","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(Image)"}],"args_string":"(arr : Array(Image)) : Image","args_html":"(arr : Array(Image)) : Image","location":{"filename":"src/vips/image.cr","line_number":718,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L718"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Array(Image)"}],"return_type":"Image","visibility":"Public","body":"((call(\"bandjoin\", arr.unshift(self))).as(Type)).as_image"}},{"html_id":"bandjoin(*arr:Float64):Image-instance-method","name":"bandjoin","doc":"Append a set of constants bandwise","summary":"

    Append a set of constants bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Float64"}],"args_string":"(*arr : Float64) : Image","args_html":"(*arr : Float64) : Image","location":{"filename":"src/vips/image.cr","line_number":696,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L696"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Float64"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"bandjoin(arr.to_a)"}},{"html_id":"bandjoin(*arr:Int32):Image-instance-method","name":"bandjoin","doc":"Append a set of constants bandwise","summary":"

    Append a set of constants bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Int32"}],"args_string":"(*arr : Int32) : Image","args_html":"(*arr : Int32) : Image","location":{"filename":"src/vips/image.cr","line_number":701,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L701"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Int32"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"bandjoin(arr.to_a)"}},{"html_id":"bandjoin(*arr:Image):Image-instance-method","name":"bandjoin","doc":"Append a set of images bandwise","summary":"

    Append a set of images bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Image"}],"args_string":"(*arr : Image) : Image","args_html":"(*arr : Image) : Image","location":{"filename":"src/vips/image.cr","line_number":714,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L714"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Image"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"bandjoin(arr.to_a)"}},{"html_id":"bandjoin(*arr:Image|Number):Image-instance-method","name":"bandjoin","doc":"Append a set of mixed images and constants bandwise","summary":"

    Append a set of mixed images and constants bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Image | Number"}],"args_string":"(*arr : Image | Number) : Image","args_html":"(*arr : Image | Number) : Image","location":{"filename":"src/vips/image.cr","line_number":723,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L723"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Image | Number"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"bandjoin\", arr.to_a.unshift(self))).as(Type)).as_image"}},{"html_id":"bandjoin_const(c:Array(Float64))-instance-method","name":"bandjoin_const","doc":"Append a constant band to an image\n\n```\n# out_ = in.bandjoin_const(c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*c* : Array(Float64) - Array of constants to add\n\n\n**Returns**\n\nOutput image\n","summary":"

    Append a constant band to an image

    ","abstract":false,"args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(c : Array(Float64))","args_html":"(c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":287,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L287"},"def":{"name":"bandjoin_const","args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"bandjoin_const\", c)).as(Type)).as_image"}},{"html_id":"bandmean-instance-method","name":"bandmean","doc":"Band-wise average\n\n```\n# out_ = in.bandmean()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Band-wise average

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":302,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L302"},"def":{"name":"bandmean","visibility":"Public","body":"((self.call(\"bandmean\")).as(Type)).as_image"}},{"html_id":"bandor-instance-method","name":"bandor","doc":"OR the bands of an image together","summary":"

    OR the bands of an image together

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1038,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1038"},"def":{"name":"bandor","visibility":"Public","body":"((self.call(\"bandbool\", Enums::OperationBoolean::Or)).as(Type)).as_image"}},{"html_id":"bandrank(*vals:Float64,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of constants.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of constants.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":"Float64"}],"args_string":"(*vals : Float64, **kwargs)","args_html":"(*vals : Float64, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":732,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L732"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"options = Optional.new(**kwargs)\n((call(\"bandrank\", options, vals.to_a)).as(Type)).as_image\n"}},{"html_id":"bandrank(*vals:Int32,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of constants.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of constants.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":"Int32"}],"args_string":"(*vals : Int32, **kwargs)","args_html":"(*vals : Int32, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":742,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L742"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"bandrank(*vals.map(&.to_f), **kwargs)"}},{"html_id":"bandrank(*vals:Image,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of images.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of images.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":"Image"}],"args_string":"(*vals : Image, **kwargs)","args_html":"(*vals : Image, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":751,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L751"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"options = Optional.new(**kwargs)\n((call(\"bandrank\", options, vals.to_a.unshift(self))).as(Type)).as_image\n"}},{"html_id":"bandrank(*vals,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of mixed images and constants.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of mixed images and constants.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":""}],"args_string":"(*vals, **kwargs)","args_html":"(*vals, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":761,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L761"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":""}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"options = Optional.new(**kwargs)\n((call(\"bandrank\", options, vals.to_a.unshift(self))).as(Type)).as_image\n"}},{"html_id":"bands:Int32-instance-method","name":"bands","doc":"Number of bands in image","summary":"

    Number of bands in image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10826,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10826"},"def":{"name":"bands","return_type":"Int32","visibility":"Public","body":"(get(\"bands\")).as_i32"}},{"html_id":"bandsplit:Array(Image)-instance-method","name":"bandsplit","doc":"Split an n-band image into n separate images.","summary":"

    Split an n-band image into n separate images.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1289,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1289"},"def":{"name":"bandsplit","return_type":"Array(Image)","visibility":"Public","body":"(0...bands).map do |i|\n extract_band(i)\nend"}},{"html_id":"bandunfold(**kwargs)-instance-method","name":"bandunfold","doc":"Unfold image bands into x axis\n\n```\n# out_ = in.bandunfold({factor: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*factor* : Int32 - Unfold by this factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unfold image bands into x axis

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":324,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L324"},"def":{"name":"bandunfold","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"bandunfold\", options)).as(Type)).as_image\n"}},{"html_id":"boolean(right:Image,boolean:Enums::OperationBoolean)-instance-method","name":"boolean","doc":"Boolean operation on two images\n\n```\n# out_ = left.boolean(right, boolean)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*boolean* : Enums::OperationBoolean - Boolean to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Boolean operation on two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"args_string":"(right : Image, boolean : Enums::OperationBoolean)","args_html":"(right : Image, boolean : Enums::OperationBoolean)","location":{"filename":"src/vips/ext/image.cr","line_number":380,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L380"},"def":{"name":"boolean","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"visibility":"Public","body":"((self.call(\"boolean\", right, boolean)).as(Type)).as_image"}},{"html_id":"boolean_const(boolean:Enums::OperationBoolean,c:Array(Float64))-instance-method","name":"boolean_const","doc":"Boolean operations against a constant\n\n```\n# out_ = in.boolean_const(boolean, c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*boolean* : Enums::OperationBoolean - Boolean to perform\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Boolean operations against a constant

    ","abstract":false,"args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(boolean : Enums::OperationBoolean, c : Array(Float64))","args_html":"(boolean : Enums::OperationBoolean, c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":404,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L404"},"def":{"name":"boolean_const","args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"boolean_const\", boolean, c)).as(Type)).as_image"}},{"html_id":"buildlut-instance-method","name":"buildlut","doc":"Build a look-up table\n\n```\n# out_ = in.buildlut()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Build a look-up table

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":419,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L419"},"def":{"name":"buildlut","visibility":"Public","body":"((self.call(\"buildlut\")).as(Type)).as_image"}},{"html_id":"byteswap-instance-method","name":"byteswap","doc":"Byteswap an image\n\n```\n# out_ = in.byteswap()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Byteswap an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":434,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L434"},"def":{"name":"byteswap","visibility":"Public","body":"((self.call(\"byteswap\")).as(Type)).as_image"}},{"html_id":"cache(**kwargs)-instance-method","name":"cache","doc":"Cache an image\n\n```\n# out_ = in.cache({max_tiles: Int32, tile_height: Int32, tile_width: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*max_tiles* : Int32 - Maximum number of tiles to cache\n\n*tile_height* : Int32 - Tile height in pixels\n\n*tile_width* : Int32 - Tile width in pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cache an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":460,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L460"},"def":{"name":"cache","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"cache\", options)).as(Type)).as_image\n"}},{"html_id":"canny(**kwargs)-instance-method","name":"canny","doc":"Canny edge detector\n\n```\n# out_ = in.canny({sigma: Float64, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*sigma* : Float64 - Sigma of Gaussian\n\n*precision* : Enums::Precision - Convolve with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Canny edge detector

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":486,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L486"},"def":{"name":"canny","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"canny\", options)).as(Type)).as_image\n"}},{"html_id":"case(*args:Float64):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an array of constants","summary":"

    Use pixel values to pick cases from an array of constants

    ","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Float64"}],"args_string":"(*args : Float64) : Image","args_html":"(*args : Float64) : Image","location":{"filename":"src/vips/image.cr","line_number":676,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L676"},"def":{"name":"case","args":[{"name":"args","external_name":"args","restriction":"Float64"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"case\", args.to_a)).as(Type)).as_image"}},{"html_id":"case(*args:Int32):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an array of constants","summary":"

    Use pixel values to pick cases from an array of constants

    ","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Int32"}],"args_string":"(*args : Int32) : Image","args_html":"(*args : Int32) : Image","location":{"filename":"src/vips/image.cr","line_number":681,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L681"},"def":{"name":"case","args":[{"name":"args","external_name":"args","restriction":"Int32"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"self.case(*args.map(&.to_f))"}},{"html_id":"case(*images:Image):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an array of images.","summary":"

    Use pixel values to pick cases from an array of images.

    ","abstract":false,"args":[{"name":"images","external_name":"images","restriction":"Image"}],"args_string":"(*images : Image) : Image","args_html":"(*images : Image) : Image","location":{"filename":"src/vips/image.cr","line_number":686,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L686"},"def":{"name":"case","args":[{"name":"images","external_name":"images","restriction":"Image"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"case\", images.to_a)).as(Type)).as_image"}},{"html_id":"case(*args):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an a set of mixed images and constants.","summary":"

    Use pixel values to pick cases from an a set of mixed images and constants.

    ","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args) : Image","args_html":"(*args) : Image","location":{"filename":"src/vips/image.cr","line_number":691,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L691"},"def":{"name":"case","args":[{"name":"args","external_name":"args","restriction":""}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"case\", args.to_a)).as(Type)).as_image"}},{"html_id":"cast(format:Enums::BandFormat,**kwargs)-instance-method","name":"cast","doc":"Cast an image\n\n```\n# out_ = in.cast(format, {shift: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*format* : Enums::BandFormat - Format to cast to\n\n_Optionals_\n\n*shift* : Bool - Shift integer values up and down\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cast an image

    ","abstract":false,"args":[{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"args_string":"(format : Enums::BandFormat, **kwargs)","args_html":"(format : Enums::BandFormat, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":514,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L514"},"def":{"name":"cast","args":[{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"cast\", options, format)).as(Type)).as_image\n"}},{"html_id":"ceil:Image-instance-method","name":"ceil","doc":"Return the smallest integral value not less than the argument.","summary":"

    Return the smallest integral value not less than the argument.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1023,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1023"},"def":{"name":"ceil","return_type":"Image","visibility":"Public","body":"((self.call(\"round\", Enums::OperationRound::Ceil)).as(Type)).as_image"}},{"html_id":"cmc2lch-instance-method","name":"cmc2lch","doc":"Transform lch to cmc\n\n```\n# out_ = in.cmc2lch()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lch to cmc

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":531,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L531"},"def":{"name":"cmc2lch","visibility":"Public","body":"((self.call(\"cmc2lch\")).as(Type)).as_image"}},{"html_id":"cmyk2xyz-instance-method","name":"cmyk2xyz","doc":"Transform cmyk to xyz\n\n```\n# out_ = in.cmyk2xyz()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform cmyk to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":546,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L546"},"def":{"name":"cmyk2xyz","visibility":"Public","body":"((self.call(\"cmyk2xyz\")).as(Type)).as_image"}},{"html_id":"coding:Enums::Coding-instance-method","name":"coding","doc":"Pixel coding","summary":"

    Pixel coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10836,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10836"},"def":{"name":"coding","return_type":"Enums::Coding","visibility":"Public","body":"(get(\"coding\")).as_enum(Enums::Coding)"}},{"html_id":"colourspace(space:Enums::Interpretation,**kwargs)-instance-method","name":"colourspace","doc":"Convert to a new colorspace\n\n```\n# out_ = in.colourspace(space, {source_space: Enums::Interpretation})\n```\n\n\nInput Parameters\n\n**Required**\n\n*space* : Enums::Interpretation - Destination color space\n\n_Optionals_\n\n*source_space* : Enums::Interpretation - Source color space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert to a new colorspace

    ","abstract":false,"args":[{"name":"space","external_name":"space","restriction":"Enums::Interpretation"}],"args_string":"(space : Enums::Interpretation, **kwargs)","args_html":"(space : Enums::Interpretation, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":572,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L572"},"def":{"name":"colourspace","args":[{"name":"space","external_name":"space","restriction":"Enums::Interpretation"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"colourspace\", options, space)).as(Type)).as_image\n"}},{"html_id":"compass(mask:Image,**kwargs)-instance-method","name":"compass","doc":"Convolve with rotating mask\n\n```\n# out_ = in.compass(mask, {times: Int32, angle: Enums::Angle45, combine: Enums::Combine, precision: Enums::Precision, layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*times* : Int32 - Rotate and convolve this many times\n\n*angle* : Enums::Angle45 - Rotate mask by this much between convolutions\n\n*combine* : Enums::Combine - Combine convolution results like this\n\n*precision* : Enums::Precision - Convolve with this precision\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convolve with rotating mask

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":610,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L610"},"def":{"name":"compass","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"compass\", options, mask)).as(Type)).as_image\n"}},{"html_id":"complex(cmplx:Enums::OperationComplex)-instance-method","name":"complex","doc":"Perform a complex operation on an image\n\n```\n# out_ = in.complex(cmplx)\n```\n\n\nInput Parameters\n\n**Required**\n\n*cmplx* : Enums::OperationComplex - Complex to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Perform a complex operation on an image

    ","abstract":false,"args":[{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex"}],"args_string":"(cmplx : Enums::OperationComplex)","args_html":"(cmplx : Enums::OperationComplex)","location":{"filename":"src/vips/ext/image.cr","line_number":634,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L634"},"def":{"name":"complex","args":[{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex"}],"visibility":"Public","body":"((self.call(\"complex\", cmplx)).as(Type)).as_image"}},{"html_id":"complex2(right:Image,cmplx:Enums::OperationComplex2)-instance-method","name":"complex2","doc":"Complex binary operations on two images\n\n```\n# out_ = left.complex2(right, cmplx)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*cmplx* : Enums::OperationComplex2 - Binary complex operation to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Complex binary operations on two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex2"}],"args_string":"(right : Image, cmplx : Enums::OperationComplex2)","args_html":"(right : Image, cmplx : Enums::OperationComplex2)","location":{"filename":"src/vips/ext/image.cr","line_number":658,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L658"},"def":{"name":"complex2","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex2"}],"visibility":"Public","body":"((self.call(\"complex2\", right, cmplx)).as(Type)).as_image"}},{"html_id":"complexform(right:Image)-instance-method","name":"complexform","doc":"Form a complex image from two real images\n\n```\n# out_ = left.complexform(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Form a complex image from two real images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":680,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L680"},"def":{"name":"complexform","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"complexform\", right)).as(Type)).as_image"}},{"html_id":"complexget(get:Enums::OperationComplexget)-instance-method","name":"complexget","doc":"Get a component from a complex image\n\n```\n# out_ = in.complexget(get)\n```\n\n\nInput Parameters\n\n**Required**\n\n*get* : Enums::OperationComplexget - Complex to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Get a component from a complex image

    ","abstract":false,"args":[{"name":"get","external_name":"get","restriction":"Enums::OperationComplexget"}],"args_string":"(get : Enums::OperationComplexget)","args_html":"(get : Enums::OperationComplexget)","location":{"filename":"src/vips/ext/image.cr","line_number":702,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L702"},"def":{"name":"complexget","args":[{"name":"get","external_name":"get","restriction":"Enums::OperationComplexget"}],"visibility":"Public","body":"((self.call(\"complexget\", get)).as(Type)).as_image"}},{"html_id":"composite(images:Array(Image),modes:Array(Enums::BlendMode),**kwargs)-instance-method","name":"composite","doc":"Blend an array of images with an array of blend modes\n\n```\n# out_ = Vips::Image.composite(images, modes, {x: Array(Int32), y: Array(Int32), compositing_space: Enums::Interpretation, premultiplied: Bool})\n```\n\nInput Parameters\n\n**Required**\n\n*images* : Array(Image) - Array of input images\n\n*modes* : Array(Enums::BlendMode) - Array of `Enums::BlendMode` to join with\n\n_Optionals_\n\n*x* : Array(Int32) - Array of x coordinates to join at\n\n*y* : Array(Int32) - Array of y coordinates to join at\n\n*compositing_space* : `Enums::Interpretation` - Composite images in this colour space\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n**Returns**\n\nOutput `Image`","summary":"

    Blend an array of images with an array of blend modes

    ","abstract":false,"args":[{"name":"images","external_name":"images","restriction":"Array(Image)"},{"name":"modes","external_name":"modes","restriction":"Array(Enums::BlendMode)"}],"args_string":"(images : Array(Image), modes : Array(Enums::BlendMode), **kwargs)","args_html":"(images : Array(Image), modes : Array(Enums::BlendMode), **kwargs)","location":{"filename":"src/vips/image.cr","line_number":793,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L793"},"def":{"name":"composite","args":[{"name":"images","external_name":"images","restriction":"Array(Image)"},{"name":"modes","external_name":"modes","restriction":"Array(Enums::BlendMode)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"composite\", options, images.unshift(self), modes)).as(Type)).as_image\n"}},{"html_id":"composite(image:Image,mode:Enums::BlendMode,**kwargs)-instance-method","name":"composite","doc":"A synonym for `composite2`\n\n```\n# out_ = Vips::Image.composite(overlay, mode, {x: Array(Int32), y: Array(Int32), compositing_space: Enums::Interpretation, premultiplied: Bool})\n```\n\nInput Parameters\n\n**Required**\n\n*overlay* : Image - Overlay image\n\n*modes : Enums::BlendMode - VipsBlendMode to join with\n\n_Optionals_\n\n*x* : Int32 - x position of overlay\n\n*y* : Int32 - y position of overlay\n\n*compositing_space* : `Enums::Interpretation` - Composite images in this colour space\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n**Returns**\n\nOutput image","summary":"

    A synonym for #composite2

    ","abstract":false,"args":[{"name":"image","external_name":"image","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"args_string":"(image : Image, mode : Enums::BlendMode, **kwargs)","args_html":"(image : Image, mode : Enums::BlendMode, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":826,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L826"},"def":{"name":"composite","args":[{"name":"image","external_name":"image","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"composite2(image, mode, **kwargs)"}},{"html_id":"composite2(overlay:Image,mode:Enums::BlendMode,**kwargs)-instance-method","name":"composite2","doc":"Blend a pair of images with a blend mode\n\n```\n# out_ = base.composite2(overlay, mode, {x: Int32, y: Int32, compositing_space: Enums::Interpretation, premultiplied: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*overlay* : Image - Overlay image\n\n*mode* : Enums::BlendMode - VipsBlendMode to join with\n\n_Optionals_\n\n*x* : Int32 - x position of overlay\n\n*y* : Int32 - y position of overlay\n\n*compositing_space* : Enums::Interpretation - Composite images in this colour space\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n\n**Returns**\n\nOutput image\n","summary":"

    Blend a pair of images with a blend mode

    ","abstract":false,"args":[{"name":"overlay","external_name":"overlay","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"args_string":"(overlay : Image, mode : Enums::BlendMode, **kwargs)","args_html":"(overlay : Image, mode : Enums::BlendMode, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":736,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L736"},"def":{"name":"composite2","args":[{"name":"overlay","external_name":"overlay","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"composite2\", options, overlay, mode)).as(Type)).as_image\n"}},{"html_id":"conj:Image-instance-method","name":"conj","doc":"Return the complex conjugate of an image.","summary":"

    Return the complex conjugate of an image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":868,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L868"},"def":{"name":"conj","return_type":"Image","visibility":"Public","body":"complex(Enums::OperationComplex::Conj)"}},{"html_id":"contains(name:String)-instance-method","name":"contains","doc":"Check if the underlying image contains an property of metadata.","summary":"

    Check if the underlying image contains an property of metadata.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/image.cr","line_number":574,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L574"},"def":{"name":"contains","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"(get_typeof(name)) != 0"}},{"html_id":"conv(mask:Image,**kwargs)-instance-method","name":"conv","doc":"Convolution operation\n\n```\n# out_ = in.conv(mask, {precision: Enums::Precision, layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*precision* : Enums::Precision - Convolve with this precision\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":768,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L768"},"def":{"name":"conv","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"conv\", options, mask)).as(Type)).as_image\n"}},{"html_id":"conva(mask:Image,**kwargs)-instance-method","name":"conva","doc":"Approximate integer convolution\n\n```\n# out_ = in.conva(mask, {layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Approximate integer convolution

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":798,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L798"},"def":{"name":"conva","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"conva\", options, mask)).as(Type)).as_image\n"}},{"html_id":"convasep(mask:Image,**kwargs)-instance-method","name":"convasep","doc":"Approximate separable integer convolution\n\n```\n# out_ = in.convasep(mask, {layers: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*layers* : Int32 - Use this many layers in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Approximate separable integer convolution

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":826,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L826"},"def":{"name":"convasep","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"convasep\", options, mask)).as(Type)).as_image\n"}},{"html_id":"convf(mask:Image)-instance-method","name":"convf","doc":"Float convolution operation\n\n```\n# out_ = in.convf(mask)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Float convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":850,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L850"},"def":{"name":"convf","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"convf\", mask)).as(Type)).as_image"}},{"html_id":"convi(mask:Image)-instance-method","name":"convi","doc":"Int convolution operation\n\n```\n# out_ = in.convi(mask)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Int convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":872,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L872"},"def":{"name":"convi","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"convi\", mask)).as(Type)).as_image"}},{"html_id":"convsep(mask:Image,**kwargs)-instance-method","name":"convsep","doc":"Seperable convolution operation\n\n```\n# out_ = in.convsep(mask, {precision: Enums::Precision, layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*precision* : Enums::Precision - Convolve with this precision\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Seperable convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":902,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L902"},"def":{"name":"convsep","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"convsep\", options, mask)).as(Type)).as_image\n"}},{"html_id":"copy(**kwargs)-instance-method","name":"copy","doc":"Copy an image\n\n```\n# out_ = in.copy({width: Int32, height: Int32, bands: Int32, format: Enums::BandFormat, coding: Enums::Coding, interpretation: Enums::Interpretation, xres: Float64, yres: Float64, xoffset: Int32, yoffset: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*bands* : Int32 - Number of bands in image\n\n*format* : Enums::BandFormat - Pixel format in image\n\n*coding* : Enums::Coding - Pixel coding\n\n*interpretation* : Enums::Interpretation - Pixel interpretation\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*xoffset* : Int32 - Horizontal offset of origin\n\n*yoffset* : Int32 - Vertical offset of origin\n\n\n**Returns**\n\nOutput image\n","summary":"

    Copy an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":944,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L944"},"def":{"name":"copy","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"copy\", options)).as(Type)).as_image\n"}},{"html_id":"copy_memory-instance-method","name":"copy_memory","doc":"Copy an image to a memory area.\n\nThis can be useful for reusing results, but can obviously use a lot of\nmemory for large images. See {Image#tilecache} for a way of caching\nparts of an image.\n\nReturns new memory `Image`","summary":"

    Copy an image to a memory area.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":405,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L405"},"def":{"name":"copy_memory","visibility":"Public","body":"vi = LibVips.vips_image_copy_memory(self)\nif vi.null?\n raise(VipsException.new(\"unable to copy to memory\"))\nend\nnew(vi)\n"}},{"html_id":"cos:Image-instance-method","name":"cos","doc":"Return the cosine of an image in degrees.","summary":"

    Return the cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":878,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L878"},"def":{"name":"cos","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Cos)"}},{"html_id":"cosh:Image-instance-method","name":"cosh","doc":"Return the hyperbolic cosine of an image in degrees.","summary":"

    Return the hyperbolic cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":908,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L908"},"def":{"name":"cosh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Cosh)"}},{"html_id":"countlines(direction:Enums::Direction)-instance-method","name":"countlines","doc":"Count lines in an image\n\n```\n# nolines = in.countlines(direction)\n```\n\n\nInput Parameters\n\n**Required**\n\n*direction* : Enums::Direction - Countlines left-right or up-down\n\n\n**Returns**\n\nNumber of lines\n","summary":"

    Count lines in an image

    ","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"args_string":"(direction : Enums::Direction)","args_html":"(direction : Enums::Direction)","location":{"filename":"src/vips/ext/image.cr","line_number":968,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L968"},"def":{"name":"countlines","args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"visibility":"Public","body":"((self.call(\"countlines\", direction)).as(Type)).as_f64"}},{"html_id":"crop(left:Int32,top:Int32,width:Int32,height:Int32)-instance-method","name":"crop","doc":"A synonym for `extract_area`","summary":"

    A synonym for #extract_area

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32)","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32)","location":{"filename":"src/vips/image.cr","line_number":831,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L831"},"def":{"name":"crop","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"extract_area(left, top, width, height)"}},{"html_id":"csvsave(filename:String,**kwargs)-instance-method","name":"csvsave","doc":"Save image to csv\n\n```\nin.csvsave(filename, {separator: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*separator* : String - Separator characters\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to csv

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1136,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1136"},"def":{"name":"csvsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"csvsave\", options, filename)\n"}},{"html_id":"csvsave_stream(stream:IO,**kwargs)-instance-method","name":"csvsave_stream","doc":"Save image to csv\n\n```\nin.csvsave_stream(stream, {separator: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*separator* : String - Separator characters\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to csv

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1191,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1191"},"def":{"name":"csvsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ncsvsave_target(target, **kwargs)\n"}},{"html_id":"csvsave_target(target:Target,**kwargs)-instance-method","name":"csvsave_target","doc":"Save image to csv\n\n```\nin.csvsave_target(target, {separator: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*separator* : String - Separator characters\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to csv

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1165,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1165"},"def":{"name":"csvsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"csvsave_target\", options, target)\n"}},{"html_id":"de00(right:Image)-instance-method","name":"de00","doc":"Calculate de00\n\n```\n# out_ = left.de00(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate de00

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1214,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1214"},"def":{"name":"de00","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"de00\", right)).as(Type)).as_image"}},{"html_id":"de76(right:Image)-instance-method","name":"de76","doc":"Calculate de76\n\n```\n# out_ = left.de76(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate de76

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1236,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1236"},"def":{"name":"de76","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"de76\", right)).as(Type)).as_image"}},{"html_id":"decmc(right:Image)-instance-method","name":"decmc","doc":"Calculate decmc\n\n```\n# out_ = left.decmc(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate decmc

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1258,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1258"},"def":{"name":"decmc","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"decmc\", right)).as(Type)).as_image"}},{"html_id":"deviate-instance-method","name":"deviate","doc":"Find image standard deviation\n\n```\n# out_ = in.deviate()\n```\n\n\n**Returns**\n\nOutput value\n","summary":"

    Find image standard deviation

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1273,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1273"},"def":{"name":"deviate","visibility":"Public","body":"((self.call(\"deviate\")).as(Type)).as_f64"}},{"html_id":"dilate(mask:Image)-instance-method","name":"dilate","doc":"Dilate with a structuring element.","summary":"

    Dilate with a structuring element.

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/image.cr","line_number":983,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L983"},"def":{"name":"dilate","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"morph(mask, Enums::OperationMorphology::Dilate)"}},{"html_id":"divide(right:Image)-instance-method","name":"divide","doc":"Divide two images\n\n```\n# out_ = left.divide(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Divide two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1295,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1295"},"def":{"name":"divide","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"divide\", right)).as(Type)).as_image"}},{"html_id":"dzsave(filename:String,**kwargs)-instance-method","name":"dzsave","doc":"Save image to deepzoom file\n\n```\nin.dzsave(filename, {basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to deepzoom file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1349,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1349"},"def":{"name":"dzsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"dzsave\", options, filename)\n"}},{"html_id":"dzsave_buffer(**kwargs)-instance-method","name":"dzsave_buffer","doc":"Save image to dz buffer\n\n```\n# buffer = in.dzsave_buffer({basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to dz buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1404,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1404"},"def":{"name":"dzsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"dzsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"dzsave_stream(stream:IO,**kwargs)-instance-method","name":"dzsave_stream","doc":"Save image to deepzoom stream\n\n```\nin.dzsave_stream(stream, {basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to deepzoom stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1512,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1512"},"def":{"name":"dzsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ndzsave_target(target, **kwargs)\n"}},{"html_id":"dzsave_target(target:Target,**kwargs)-instance-method","name":"dzsave_target","doc":"Save image to deepzoom target\n\n```\nin.dzsave_target(target, {basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to deepzoom target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1460,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1460"},"def":{"name":"dzsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"dzsave_target\", options, target)\n"}},{"html_id":"embed(x:Int32,y:Int32,width:Int32,height:Int32,**kwargs)-instance-method","name":"embed","doc":"Embed an image in a larger image\n\n```\n# out_ = in.embed(x, y, width, height, {extend: Enums::Extend, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n**Required**\n\n*x* : Int32 - Left edge of input in output\n\n*y* : Int32 - Top edge of input in output\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n*background* : Array(Float64) - Color for background pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Embed an image in a larger image

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32, width : Int32, height : Int32, **kwargs)","args_html":"(x : Int32, y : Int32, width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1547,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1547"},"def":{"name":"embed","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"embed\", options, x, y, width, height)).as(Type)).as_image\n"}},{"html_id":"erode(mask:Image)-instance-method","name":"erode","doc":"Erode with a structuring element.","summary":"

    Erode with a structuring element.

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/image.cr","line_number":978,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L978"},"def":{"name":"erode","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"morph(mask, Enums::OperationMorphology::Erode)"}},{"html_id":"exp:Image-instance-method","name":"exp","doc":"Returns e ** pixel","summary":"

    Returns e ** pixel

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":943,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L943"},"def":{"name":"exp","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Exp)"}},{"html_id":"exp10:Image-instance-method","name":"exp10","doc":"Returns 10 ** pixel","summary":"

    Returns 10 ** pixel

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":948,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L948"},"def":{"name":"exp10","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Exp10)"}},{"html_id":"extract_area(left:Int32,top:Int32,width:Int32,height:Int32)-instance-method","name":"extract_area","doc":"Extract an area from an image\n\n```\n# out_ = input.extract_area(left, top, width, height)\n```\n\n\nInput Parameters\n\n**Required**\n\n*left* : Int32 - Left edge of extract area\n\n*top* : Int32 - Top edge of extract area\n\n*width* : Int32 - Width of extract area\n\n*height* : Int32 - Height of extract area\n\n\n**Returns**\n\nOutput image\n","summary":"

    Extract an area from an image

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32)","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":1577,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1577"},"def":{"name":"extract_area","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"extract_area\", left, top, width, height)).as(Type)).as_image"}},{"html_id":"extract_band(band:Int32,**kwargs)-instance-method","name":"extract_band","doc":"Extract band from an image\n\n```\n# out_ = in.extract_band(band, {n: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*band* : Int32 - Band to extract\n\n_Optionals_\n\n*n* : Int32 - Number of bands to extract\n\n\n**Returns**\n\nOutput image\n","summary":"

    Extract band from an image

    ","abstract":false,"args":[{"name":"band","external_name":"band","restriction":"Int32"}],"args_string":"(band : Int32, **kwargs)","args_html":"(band : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1603,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1603"},"def":{"name":"extract_band","args":[{"name":"band","external_name":"band","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"extract_band\", options, band)).as(Type)).as_image\n"}},{"html_id":"falsecolour-instance-method","name":"falsecolour","doc":"False-color an image\n\n```\n# out_ = in.falsecolour()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    False-color an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1652,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1652"},"def":{"name":"falsecolour","visibility":"Public","body":"((self.call(\"falsecolour\")).as(Type)).as_image"}},{"html_id":"fastcor(ref:Image)-instance-method","name":"fastcor","doc":"Fast correlation\n\n```\n# out_ = in.fastcor(ref)\n```\n\n\nInput Parameters\n\n**Required**\n\n*ref* : Image - Input reference image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Fast correlation

    ","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"args_string":"(ref : Image)","args_html":"(ref : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1674,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1674"},"def":{"name":"fastcor","args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"fastcor\", ref)).as(Type)).as_image"}},{"html_id":"filename:String-instance-method","name":"filename","doc":"Image filename","summary":"

    Image filename

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10866,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10866"},"def":{"name":"filename","return_type":"String","visibility":"Public","body":"(get(\"filename\")).as_s"}},{"html_id":"fill_nearest-instance-method","name":"fill_nearest","doc":"Fill image zeros with nearest non-zero pixel\n\n```\n# out_, distance = in.fill_nearest()\n```\n\n\n**Returns**\n\nValue of nearest non-zero pixel\n\n_Optionals_\n\n*distance* : Image? - Distance to nearest non-zero pixel\n","summary":"

    Fill image zeros with nearest non-zero pixel

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1693,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1693"},"def":{"name":"fill_nearest","visibility":"Public","body":"optional_output = Optional.new(**{distance: true})\nresults = (self.call(\"fill_nearest\", optional_output)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\ndistance = ((o = opts) && (val = o[\"distance\"]?)) ? val.as_image : nil\n{final_result, distance}\n"}},{"html_id":"find_trim(**kwargs)-instance-method","name":"find_trim","doc":"Search an image for non-edge areas\n\n```\n# output = in.find_trim({threshold: Float64, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*threshold* : Float64 - Object threshold\n\n*background* : Array(Float64) - Color for background pixels\n\n\n**Returns**\n\nLeft edge of image\n\nTop edge of extract area\n\nWidth of extract area\n\nHeight of extract area\n","summary":"

    Search an image for non-edge areas

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1731,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1731"},"def":{"name":"find_trim","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nresults = (self.call(\"find_trim\", options)).as(Array(Type))\n{results[0].as_i32, results[1].as_i32, results[2].as_i32, results[3].as_i32}\n"}},{"html_id":"fitssave(filename:String,**kwargs)-instance-method","name":"fitssave","doc":"Save image to fits file\n\n```\nin.fitssave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to fits file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1877,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1877"},"def":{"name":"fitssave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"fitssave\", options, filename)\n"}},{"html_id":"flatten(**kwargs)-instance-method","name":"flatten","doc":"Flatten alpha out of an image\n\n```\n# out_ = in.flatten({background: Array(Float64), max_alpha: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*background* : Array(Float64) - Background value\n\n*max_alpha* : Float64 - Maximum value of alpha channel\n\n\n**Returns**\n\nOutput image\n","summary":"

    Flatten alpha out of an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1902,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1902"},"def":{"name":"flatten","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"flatten\", options)).as(Type)).as_image\n"}},{"html_id":"flip(direction:Enums::Direction)-instance-method","name":"flip","doc":"Flip an image\n\n```\n# out_ = in.flip(direction)\n```\n\n\nInput Parameters\n\n**Required**\n\n*direction* : Enums::Direction - Direction to flip image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Flip an image

    ","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"args_string":"(direction : Enums::Direction)","args_html":"(direction : Enums::Direction)","location":{"filename":"src/vips/ext/image.cr","line_number":1926,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1926"},"def":{"name":"flip","args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"visibility":"Public","body":"((self.call(\"flip\", direction)).as(Type)).as_image"}},{"html_id":"fliphor-instance-method","name":"fliphor","doc":"Flip horizontally","summary":"

    Flip horizontally

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":993,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L993"},"def":{"name":"fliphor","visibility":"Public","body":"flip(Enums::Direction::Horizontal)"}},{"html_id":"flipver-instance-method","name":"flipver","doc":"Flip vertically","summary":"

    Flip vertically

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":998,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L998"},"def":{"name":"flipver","visibility":"Public","body":"flip(Enums::Direction::Vertical)"}},{"html_id":"float2rad-instance-method","name":"float2rad","doc":"Transform float rgb to radiance coding\n\n```\n# out_ = in.float2rad()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform float rgb to radiance coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1941,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1941"},"def":{"name":"float2rad","visibility":"Public","body":"((self.call(\"float2rad\")).as(Type)).as_image"}},{"html_id":"floor:Image-instance-method","name":"floor","doc":"Return the largest integral value not greater than the argument.","summary":"

    Return the largest integral value not greater than the argument.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1018,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1018"},"def":{"name":"floor","return_type":"Image","visibility":"Public","body":"((self.call(\"round\", Enums::OperationRound::Floor)).as(Type)).as_image"}},{"html_id":"format:Enums::BandFormat-instance-method","name":"format","doc":"Pixel format in image","summary":"

    Pixel format in image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10831,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10831"},"def":{"name":"format","return_type":"Enums::BandFormat","visibility":"Public","body":"(get(\"format\")).as_enum(Enums::BandFormat)"}},{"html_id":"freqmult(mask:Image)-instance-method","name":"freqmult","doc":"Frequency-domain filtering\n\n```\n# out_ = in.freqmult(mask)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input mask image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Frequency-domain filtering

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1989,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1989"},"def":{"name":"freqmult","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"freqmult\", mask)).as(Type)).as_image"}},{"html_id":"fwfft-instance-method","name":"fwfft","doc":"Forward fft\n\n```\n# out_ = in.fwfft()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Forward fft

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2004,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2004"},"def":{"name":"fwfft","visibility":"Public","body":"((self.call(\"fwfft\")).as(Type)).as_image"}},{"html_id":"gamma(**kwargs)-instance-method","name":"gamma","doc":"Gamma an image\n\n```\n# out_ = in.gamma({exponent: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*exponent* : Float64 - Gamma factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Gamma an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2026,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2026"},"def":{"name":"gamma","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gamma\", options)).as(Type)).as_image\n"}},{"html_id":"gaussblur(sigma:Float64,**kwargs)-instance-method","name":"gaussblur","doc":"Gaussian blur\n\n```\n# out_ = in.gaussblur(sigma, {min_ampl: Float64, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sigma* : Float64 - Sigma of Gaussian\n\n_Optionals_\n\n*min_ampl* : Float64 - Minimum amplitude of Gaussian\n\n*precision* : Enums::Precision - Convolve with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Gaussian blur

    ","abstract":false,"args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"}],"args_string":"(sigma : Float64, **kwargs)","args_html":"(sigma : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2056,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2056"},"def":{"name":"gaussblur","args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gaussblur\", options, sigma)).as(Type)).as_image\n"}},{"html_id":"get(name:String)-instance-method","name":"get","doc":"Get a metadata item from an image. Crystal types are constructed\nautomatically from the `GValue`, if possible.\n\nFor example, you can read the ICC profile from an image like this:\n\n```\nprofile = image.get \"icc-profile-data\"\n```\n\nand profile will be an array containing the profile.","summary":"

    Get a metadata item from an image.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/image.cr","line_number":588,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L588"},"def":{"name":"get","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"if (name == \"scale \") && (!(contains(\"scale\")))\n return Type.new(1.0)\nend\nif (name == \"offset\") && (!(contains(\"offset\")))\n return Type.new(0.0)\nend\nif Vips.at_least_libvips?(8, 5)\nelse\n if get_typeof(name: name) != 0\n return super(name)\n end\nend\ngv_copy = GValue.new\nif (LibVips.vips_image_get(self, name, gv_copy)) != 0\n raise(VipsException.new(\"unable to get #{name}\"))\nend\ngv = GValue.new(gv_copy)\ngv.get\n"}},{"html_id":"get_fields-instance-method","name":"get_fields","doc":"Get the names of all fields on an image. Use this to loop over all\nimage metadata.","summary":"

    Get the names of all fields on an image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":605,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L605"},"def":{"name":"get_fields","visibility":"Public","body":"names = Array(String).new\nif Vips.at_least_libvips?(8, 5)\nelse\n return names\nend\nptr = LibVips.vips_image_get_fields(self)\naptr = ptr\nwhile (p = ptr.value)\n names << (String.new(p))\n LibVips.g_free(p)\n ptr = ptr + 1\nend\nLibVips.g_free(aptr)\nnames\n"}},{"html_id":"get_typeof(nam:String)-instance-method","name":"get_typeof","doc":"Get the GType of a GObject property","summary":"

    Get the GType of a GObject property

    ","abstract":false,"args":[{"name":"nam","external_name":"nam","restriction":"String"}],"args_string":"(nam : String)","args_html":"(nam : String)","location":{"filename":"src/vips/image.cr","line_number":562,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L562"},"def":{"name":"get_typeof","args":[{"name":"nam","external_name":"nam","restriction":"String"}],"visibility":"Public","body":"if Vips.at_least_libvips?(8, 5)\nelse\n gtype = super(nam)\n if gtype.nil?\n else\n return gtype\n end\nend\nLibVips.vips_image_get_typeof(self, nam)\n"}},{"html_id":"getpoint(x:Int32,y:Int32)-instance-method","name":"getpoint","doc":"Read a point from an image\n\n```\n# out_array = in.getpoint(x, y)\n```\n\n\nInput Parameters\n\n**Required**\n\n*x* : Int32 - Point to read\n\n*y* : Int32 - Point to read\n\n\n**Returns**\n\nArray of output values\n","summary":"

    Read a point from an image

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32)","args_html":"(x : Int32, y : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":2148,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2148"},"def":{"name":"getpoint","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"getpoint\", x, y)).as(Type)).as_a64"}},{"html_id":"gifsave(filename:String,**kwargs)-instance-method","name":"gifsave","doc":"Save as gif\n\n```\nin.gifsave(filename, {dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as gif

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2363,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2363"},"def":{"name":"gifsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"gifsave\", options, filename)\n"}},{"html_id":"gifsave_buffer(**kwargs)-instance-method","name":"gifsave_buffer","doc":"Save as gif\n\n```\n# buffer = in.gifsave_buffer({dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save as gif

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2404,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2404"},"def":{"name":"gifsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gifsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"gifsave_stream(stream:IO,**kwargs)-instance-method","name":"gifsave_stream","doc":"Save as gif\n\n```\nin.gifsave_stream(stream, {dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save as gif

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2484,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2484"},"def":{"name":"gifsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ngifsave_target(target, **kwargs)\n"}},{"html_id":"gifsave_target(target:Target,**kwargs)-instance-method","name":"gifsave_target","doc":"Save as gif\n\n```\nin.gifsave_target(target, {dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as gif

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2446,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2446"},"def":{"name":"gifsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"gifsave_target\", options, target)\n"}},{"html_id":"globalbalance(**kwargs)-instance-method","name":"globalbalance","doc":"Global balance an image mosaic\n\n```\n# out_ = in.globalbalance({gamma: Float64, int_output: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*gamma* : Float64 - Image gamma\n\n*int_output* : Bool - Integer output\n\n\n**Returns**\n\nOutput image\n","summary":"

    Global balance an image mosaic

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2509,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2509"},"def":{"name":"globalbalance","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"globalbalance\", options)).as(Type)).as_image\n"}},{"html_id":"gravity(direction:Enums::CompassDirection,width:Int32,height:Int32,**kwargs)-instance-method","name":"gravity","doc":"Place an image within a larger image with a certain gravity\n\n```\n# out_ = in.gravity(direction, width, height, {extend: Enums::Extend, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n**Required**\n\n*direction* : Enums::CompassDirection - Direction to place image within width/height\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n*background* : Array(Float64) - Color for background pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Place an image within a larger image with a certain gravity

    ","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"Enums::CompassDirection"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(direction : Enums::CompassDirection, width : Int32, height : Int32, **kwargs)","args_html":"(direction : Enums::CompassDirection, width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2543,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2543"},"def":{"name":"gravity","args":[{"name":"direction","external_name":"direction","restriction":"Enums::CompassDirection"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gravity\", options, direction, width, height)).as(Type)).as_image\n"}},{"html_id":"grid(tile_height:Int32,across:Int32,down:Int32)-instance-method","name":"grid","doc":"Grid an image\n\n```\n# out_ = in.grid(tile_height, across, down)\n```\n\n\nInput Parameters\n\n**Required**\n\n*tile_height* : Int32 - Chop into tiles this high\n\n*across* : Int32 - Number of tiles across\n\n*down* : Int32 - Number of tiles down\n\n\n**Returns**\n\nOutput image\n","summary":"

    Grid an image

    ","abstract":false,"args":[{"name":"tile_height","external_name":"tile_height","restriction":"Int32"},{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"args_string":"(tile_height : Int32, across : Int32, down : Int32)","args_html":"(tile_height : Int32, across : Int32, down : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":2601,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2601"},"def":{"name":"grid","args":[{"name":"tile_height","external_name":"tile_height","restriction":"Int32"},{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"grid\", tile_height, across, down)).as(Type)).as_image"}},{"html_id":"has_alpha?:Bool-instance-method","name":"has_alpha?","doc":"Does this image have an alpha channel?","summary":"

    Does this image have an alpha channel?

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1189,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1189"},"def":{"name":"has_alpha?","return_type":"Bool","visibility":"Public","body":"if Vips.at_least_libvips?(8, 5)\n return (LibVips.vips_image_hasalpha(self)) != 0\nend\n((bands == 2) || ((bands == 4) && (interpretation != Enums::Interpretation::Cmyk))) || bands > 4\n"}},{"html_id":"height:Int32-instance-method","name":"height","doc":"Image height in pixels","summary":"

    Image height in pixels

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10821,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10821"},"def":{"name":"height","return_type":"Int32","visibility":"Public","body":"(get(\"height\")).as_i32"}},{"html_id":"hist_cum-instance-method","name":"hist_cum","doc":"Form cumulative histogram\n\n```\n# out_ = in.hist_cum()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Form cumulative histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2807,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2807"},"def":{"name":"hist_cum","visibility":"Public","body":"((self.call(\"hist_cum\")).as(Type)).as_image"}},{"html_id":"hist_entropy-instance-method","name":"hist_entropy","doc":"Estimate image entropy\n\n```\n# out_ = in.hist_entropy()\n```\n\n\n**Returns**\n\nOutput value\n","summary":"

    Estimate image entropy

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2822,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2822"},"def":{"name":"hist_entropy","visibility":"Public","body":"((self.call(\"hist_entropy\")).as(Type)).as_f64"}},{"html_id":"hist_equal(**kwargs)-instance-method","name":"hist_equal","doc":"Histogram equalisation\n\n```\n# out_ = in.hist_equal({band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*band* : Int32 - Equalise with this band\n\n\n**Returns**\n\nOutput image\n","summary":"

    Histogram equalisation

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2844,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2844"},"def":{"name":"hist_equal","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_equal\", options)).as(Type)).as_image\n"}},{"html_id":"hist_find(**kwargs)-instance-method","name":"hist_find","doc":"Find image histogram\n\n```\n# out_ = in.hist_find({band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*band* : Int32 - Find histogram of band\n\n\n**Returns**\n\nOutput histogram\n","summary":"

    Find image histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2868,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2868"},"def":{"name":"hist_find","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_find\", options)).as(Type)).as_image\n"}},{"html_id":"hist_find_indexed(index:Image,**kwargs)-instance-method","name":"hist_find_indexed","doc":"Find indexed image histogram\n\n```\n# out_ = in.hist_find_indexed(index, {combine: Enums::Combine})\n```\n\n\nInput Parameters\n\n**Required**\n\n*index* : Image - Index image\n\n_Optionals_\n\n*combine* : Enums::Combine - Combine bins like this\n\n\n**Returns**\n\nOutput histogram\n","summary":"

    Find indexed image histogram

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Image"}],"args_string":"(index : Image, **kwargs)","args_html":"(index : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2896,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2896"},"def":{"name":"hist_find_indexed","args":[{"name":"index","external_name":"index","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_find_indexed\", options, index)).as(Type)).as_image\n"}},{"html_id":"hist_find_ndim(**kwargs)-instance-method","name":"hist_find_ndim","doc":"Find n-dimensional image histogram\n\n```\n# out_ = in.hist_find_ndim({bins: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*bins* : Int32 - Number of bins in each dimension\n\n\n**Returns**\n\nOutput histogram\n","summary":"

    Find n-dimensional image histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2920,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2920"},"def":{"name":"hist_find_ndim","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_find_ndim\", options)).as(Type)).as_image\n"}},{"html_id":"hist_ismonotonic-instance-method","name":"hist_ismonotonic","doc":"Test for monotonicity\n\n```\n# monotonic = in.hist_ismonotonic()\n```\n\n\n**Returns**\n\ntrue if in is monotonic\n","summary":"

    Test for monotonicity

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2937,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2937"},"def":{"name":"hist_ismonotonic","visibility":"Public","body":"((self.call(\"hist_ismonotonic\")).as(Type)).as_b"}},{"html_id":"hist_local(width:Int32,height:Int32,**kwargs)-instance-method","name":"hist_local","doc":"Local histogram equalisation\n\n```\n# out_ = in.hist_local(width, height, {max_slope: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Window width in pixels\n\n*height* : Int32 - Window height in pixels\n\n_Optionals_\n\n*max_slope* : Int32 - Maximum slope (CLAHE)\n\n\n**Returns**\n\nOutput image\n","summary":"

    Local histogram equalisation

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2965,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2965"},"def":{"name":"hist_local","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_local\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"hist_match(ref:Image)-instance-method","name":"hist_match","doc":"Match two histograms\n\n```\n# out_ = in.hist_match(ref)\n```\n\n\nInput Parameters\n\n**Required**\n\n*ref* : Image - Reference histogram\n\n\n**Returns**\n\nOutput image\n","summary":"

    Match two histograms

    ","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"args_string":"(ref : Image)","args_html":"(ref : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":2989,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2989"},"def":{"name":"hist_match","args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"hist_match\", ref)).as(Type)).as_image"}},{"html_id":"hist_norm-instance-method","name":"hist_norm","doc":"Normalise histogram\n\n```\n# out_ = in.hist_norm()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Normalise histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3004,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3004"},"def":{"name":"hist_norm","visibility":"Public","body":"((self.call(\"hist_norm\")).as(Type)).as_image"}},{"html_id":"hist_plot-instance-method","name":"hist_plot","doc":"Plot histogram\n\n```\n# out_ = in.hist_plot()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Plot histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3019,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3019"},"def":{"name":"hist_plot","visibility":"Public","body":"((self.call(\"hist_plot\")).as(Type)).as_image"}},{"html_id":"hough_circle(**kwargs)-instance-method","name":"hough_circle","doc":"Find hough circle transform\n\n```\n# out_ = in.hough_circle({scale: Int32, min_radius: Int32, max_radius: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*scale* : Int32 - Scale down dimensions by this factor\n\n*min_radius* : Int32 - Smallest radius to search for\n\n*max_radius* : Int32 - Largest radius to search for\n\n\n**Returns**\n\nOutput image\n","summary":"

    Find hough circle transform

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3045,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3045"},"def":{"name":"hough_circle","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hough_circle\", options)).as(Type)).as_image\n"}},{"html_id":"hough_line(**kwargs)-instance-method","name":"hough_line","doc":"Find hough line transform\n\n```\n# out_ = in.hough_line({width: Int32, height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*width* : Int32 - Horizontal size of parameter space\n\n*height* : Int32 - Vertical size of parameter space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Find hough line transform

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3071,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3071"},"def":{"name":"hough_line","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hough_line\", options)).as(Type)).as_image\n"}},{"html_id":"hsv2srgb-instance-method","name":"hsv2srgb","doc":"Transform hsv to srgb\n\n```\n# out_ = in.hsv2srgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform hsv to srgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3088,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3088"},"def":{"name":"hsv2srgb","visibility":"Public","body":"((self.call(\"hsv2srgb\")).as(Type)).as_image"}},{"html_id":"icc_export(**kwargs)-instance-method","name":"icc_export","doc":"Output to device with icc profile\n\n```\n# out_ = in.icc_export({pcs: Enums::PCS, intent: Enums::Intent, black_point_compensation: Bool, output_profile: String, depth: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*pcs* : Enums::PCS - Set Profile Connection Space\n\n*intent* : Enums::Intent - Rendering intent\n\n*black_point_compensation* : Bool - Enable black point compensation\n\n*output_profile* : String - Filename to load output profile from\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Output to device with icc profile

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3118,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3118"},"def":{"name":"icc_export","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"icc_export\", options)).as(Type)).as_image\n"}},{"html_id":"icc_import(**kwargs)-instance-method","name":"icc_import","doc":"Import from device with icc profile\n\n```\n# out_ = in.icc_import({pcs: Enums::PCS, intent: Enums::Intent, black_point_compensation: Bool, embedded: Bool, input_profile: String})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*pcs* : Enums::PCS - Set Profile Connection Space\n\n*intent* : Enums::Intent - Rendering intent\n\n*black_point_compensation* : Bool - Enable black point compensation\n\n*embedded* : Bool - Use embedded input profile, if available\n\n*input_profile* : String - Filename to load input profile from\n\n\n**Returns**\n\nOutput image\n","summary":"

    Import from device with icc profile

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3150,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3150"},"def":{"name":"icc_import","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"icc_import\", options)).as(Type)).as_image\n"}},{"html_id":"icc_transform(output_profile:String,**kwargs)-instance-method","name":"icc_transform","doc":"Transform between devices with icc profiles\n\n```\n# out_ = in.icc_transform(output_profile, {pcs: Enums::PCS, intent: Enums::Intent, black_point_compensation: Bool, embedded: Bool, input_profile: String, depth: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*output_profile* : String - Filename to load output profile from\n\n_Optionals_\n\n*pcs* : Enums::PCS - Set Profile Connection Space\n\n*intent* : Enums::Intent - Rendering intent\n\n*black_point_compensation* : Bool - Enable black point compensation\n\n*embedded* : Bool - Use embedded input profile, if available\n\n*input_profile* : String - Filename to load input profile from\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform between devices with icc profiles

    ","abstract":false,"args":[{"name":"output_profile","external_name":"output_profile","restriction":"String"}],"args_string":"(output_profile : String, **kwargs)","args_html":"(output_profile : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3188,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3188"},"def":{"name":"icc_transform","args":[{"name":"output_profile","external_name":"output_profile","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"icc_transform\", options, output_profile)).as(Type)).as_image\n"}},{"html_id":"ifthenelse(in1,in2,blend=false)-instance-method","name":"ifthenelse","doc":"ifthenelse an image\nSelect pixels from `th` if `self` is non-zero and from `el` if\n`self` is zero. Use the `:blend` option to fade smoothly\nbetween `th` and `el`.\n\n*in1 : Image | Float64 | Array(Float64)* true values\n\n*in2 : Image | Float64 | Array(Float64)* false values\n\n*blend : Bool* (false) Blend smoothly between *in1* and *in2*\n\nReturns merged `Image`","summary":"

    ifthenelse an image Select pixels from th if self is non-zero and from el if self is zero.

    ","abstract":false,"args":[{"name":"in1","external_name":"in1","restriction":""},{"name":"in2","external_name":"in2","restriction":""},{"name":"blend","default_value":"false","external_name":"blend","restriction":""}],"args_string":"(in1, in2, blend = false)","args_html":"(in1, in2, blend = false)","location":{"filename":"src/vips/image.cr","line_number":662,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L662"},"def":{"name":"ifthenelse","args":[{"name":"in1","external_name":"in1","restriction":""},{"name":"in2","external_name":"in2","restriction":""},{"name":"blend","default_value":"false","external_name":"blend","restriction":""}],"visibility":"Public","body":"match_image = in1.is_a?(Image) ? in1.as(Image) : (in2.is_a?(Image) ? in2.as(Image) : self)\nif in1.is_a?(Image)\nelse\n in1 = Image.imageize(match_image, in1.not_nil!)\nend\nif in2.is_a?(Image)\nelse\n in2 = Image.imageize(match_image, in2.not_nil!)\nend\noptions = Optional.new(**{blend: blend})\n((call(\"ifthenelse\", options, in1, in2)).as(Type)).as_image\n"}},{"html_id":"imag:Image-instance-method","name":"imag","doc":"Return the imaginary part of a complex image.","summary":"

    Return the imaginary part of a complex image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":853,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L853"},"def":{"name":"imag","return_type":"Image","visibility":"Public","body":"complexget(Enums::OperationComplexget::Imag)"}},{"html_id":"insert(sub:Image,x:Int32,y:Int32,**kwargs)-instance-method","name":"insert","doc":"Insert image @sub into @main at @x, @y\n\n```\n# out_ = main.insert(sub, x, y, {expand: Bool, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sub* : Image - Sub-image to insert into main image\n\n*x* : Int32 - Left edge of sub in main\n\n*y* : Int32 - Top edge of sub in main\n\n_Optionals_\n\n*expand* : Bool - Expand output to hold all of both inputs\n\n*background* : Array(Float64) - Color for new pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Insert image @sub into @main at @x, @y

    ","abstract":false,"args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(sub : Image, x : Int32, y : Int32, **kwargs)","args_html":"(sub : Image, x : Int32, y : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3250,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3250"},"def":{"name":"insert","args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"insert\", options, sub, x, y)).as(Type)).as_image\n"}},{"html_id":"interpretation:Enums::Interpretation-instance-method","name":"interpretation","doc":"Pixel interpretation","summary":"

    Pixel interpretation

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10841,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10841"},"def":{"name":"interpretation","return_type":"Enums::Interpretation","visibility":"Public","body":"(get(\"interpretation\")).as_enum(Enums::Interpretation)"}},{"html_id":"invert-instance-method","name":"invert","doc":"Invert an image\n\n```\n# out_ = in.invert()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Invert an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3267,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3267"},"def":{"name":"invert","visibility":"Public","body":"((self.call(\"invert\")).as(Type)).as_image"}},{"html_id":"invertlut(**kwargs)-instance-method","name":"invertlut","doc":"Build an inverted look-up table\n\n```\n# out_ = in.invertlut({size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*size* : Int32 - LUT size to generate\n\n\n**Returns**\n\nOutput image\n","summary":"

    Build an inverted look-up table

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3289,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3289"},"def":{"name":"invertlut","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"invertlut\", options)).as(Type)).as_image\n"}},{"html_id":"invfft(**kwargs)-instance-method","name":"invfft","doc":"Inverse fft\n\n```\n# out_ = in.invfft({real: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*real* : Bool - Output only the real part of the transform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Inverse fft

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3313,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3313"},"def":{"name":"invfft","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"invfft\", options)).as(Type)).as_image\n"}},{"html_id":"join(in2:Image,direction:Enums::Direction,**kwargs)-instance-method","name":"join","doc":"Join a pair of images\n\n```\n# out_ = in1.join(in2, direction, {expand: Bool, shim: Int32, background: Array(Float64), align: Enums::Align})\n```\n\n\nInput Parameters\n\n**Required**\n\n*in2* : Image - Second input image\n\n*direction* : Enums::Direction - Join left-right or up-down\n\n_Optionals_\n\n*expand* : Bool - Expand output to hold all of both inputs\n\n*shim* : Int32 - Pixels between images\n\n*background* : Array(Float64) - Colour for new pixels\n\n*align* : Enums::Align - Align on the low, centre or high coordinate edge\n\n\n**Returns**\n\nOutput image\n","summary":"

    Join a pair of images

    ","abstract":false,"args":[{"name":"in2","external_name":"in2","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"args_string":"(in2 : Image, direction : Enums::Direction, **kwargs)","args_html":"(in2 : Image, direction : Enums::Direction, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3349,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3349"},"def":{"name":"join","args":[{"name":"in2","external_name":"in2","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"join\", options, in2, direction)).as(Type)).as_image\n"}},{"html_id":"jp2ksave(filename:String,**kwargs)-instance-method","name":"jp2ksave","doc":"Save image in jpeg2000 format\n\n```\nin.jp2ksave(filename, {tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3554,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3554"},"def":{"name":"jp2ksave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jp2ksave\", options, filename)\n"}},{"html_id":"jp2ksave_buffer(**kwargs)-instance-method","name":"jp2ksave_buffer","doc":"Save image in jpeg2000 format\n\n```\n# buffer = in.jp2ksave_buffer({tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3591,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3591"},"def":{"name":"jp2ksave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"jp2ksave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"jp2ksave_stream(stream:IO,**kwargs)-instance-method","name":"jp2ksave_stream","doc":"Save image in jpeg2000 format\n\n```\nin.jp2ksave_stream(stream, {tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3663,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3663"},"def":{"name":"jp2ksave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\njp2ksave_target(target, **kwargs)\n"}},{"html_id":"jp2ksave_target(target:Target,**kwargs)-instance-method","name":"jp2ksave_target","doc":"Save image in jpeg2000 format\n\n```\nin.jp2ksave_target(target, {tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3629,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3629"},"def":{"name":"jp2ksave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jp2ksave_target\", options, target)\n"}},{"html_id":"jpegsave(filename:String,**kwargs)-instance-method","name":"jpegsave","doc":"Save image to jpeg file\n\n```\nin.jpegsave(filename, {q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to jpeg file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3893,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3893"},"def":{"name":"jpegsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jpegsave\", options, filename)\n"}},{"html_id":"jpegsave_buffer(**kwargs)-instance-method","name":"jpegsave_buffer","doc":"Save image to jpeg buffer\n\n```\n# buffer = in.jpegsave_buffer({q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to jpeg buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3940,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3940"},"def":{"name":"jpegsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"jpegsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"jpegsave_mime(**kwargs)-instance-method","name":"jpegsave_mime","doc":"Save image to jpeg mime\n\n```\nin.jpegsave_mime({q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to jpeg mime

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3984,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3984"},"def":{"name":"jpegsave_mime","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jpegsave_mime\", options)\n"}},{"html_id":"jpegsave_stream(stream:IO,**kwargs)-instance-method","name":"jpegsave_stream","doc":"Save image to jpeg stream\n\n```\nin.jpegsave_stream(stream, {q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to jpeg stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4075,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4075"},"def":{"name":"jpegsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\njpegsave_target(target, **kwargs)\n"}},{"html_id":"jpegsave_target(target:Target,**kwargs)-instance-method","name":"jpegsave_target","doc":"Save image to jpeg target\n\n```\nin.jpegsave_target(target, {q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to jpeg target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4031,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4031"},"def":{"name":"jpegsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jpegsave_target\", options, target)\n"}},{"html_id":"jxlsave(filename:String,**kwargs)-instance-method","name":"jxlsave","doc":"Save image in jpeg-xl format\n\n```\nin.jxlsave(filename, {tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4271,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4271"},"def":{"name":"jxlsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jxlsave\", options, filename)\n"}},{"html_id":"jxlsave_buffer(**kwargs)-instance-method","name":"jxlsave_buffer","doc":"Save image in jpeg-xl format\n\n```\n# buffer = in.jxlsave_buffer({tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4308,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4308"},"def":{"name":"jxlsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"jxlsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"jxlsave_stream(stream:IO,**kwargs)-instance-method","name":"jxlsave_stream","doc":"Save image in jpeg-xl format\n\n```\nin.jxlsave_stream(stream, {tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4380,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4380"},"def":{"name":"jxlsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\njxlsave_target(target, **kwargs)\n"}},{"html_id":"jxlsave_target(target:Target,**kwargs)-instance-method","name":"jxlsave_target","doc":"Save image in jpeg-xl format\n\n```\nin.jxlsave_target(target, {tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4346,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4346"},"def":{"name":"jxlsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jxlsave_target\", options, target)\n"}},{"html_id":"killed?-instance-method","name":"killed?","doc":"If image has been killed see `set_kill`, set an error message,\nclear the `kill` flag and return true. Otherwise return false\n\nHandy for loops which need to run sets of threads which can fail.\nAt least libvips 8.8 is needed. If this version requirement is not met,\nit will always return false.","summary":"

    If image has been killed see #set_kill, set an error message, clear the kill flag and return true.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1216,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1216"},"def":{"name":"killed?","visibility":"Public","body":"if Vips.at_least_libvips?(8, 8)\nelse\n return false\nend\nLibVips.vips_image_iskilled(self)\n"}},{"html_id":"lab2labq-instance-method","name":"lab2labq","doc":"Transform float lab to labq coding\n\n```\n# out_ = in.lab2labq()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform float lab to labq coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4396,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4396"},"def":{"name":"lab2labq","visibility":"Public","body":"((self.call(\"lab2labq\")).as(Type)).as_image"}},{"html_id":"lab2labs-instance-method","name":"lab2labs","doc":"Transform float lab to signed short\n\n```\n# out_ = in.lab2labs()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform float lab to signed short

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4411,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4411"},"def":{"name":"lab2labs","visibility":"Public","body":"((self.call(\"lab2labs\")).as(Type)).as_image"}},{"html_id":"lab2lch-instance-method","name":"lab2lch","doc":"Transform lab to lch\n\n```\n# out_ = in.lab2lch()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lab to lch

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4426,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4426"},"def":{"name":"lab2lch","visibility":"Public","body":"((self.call(\"lab2lch\")).as(Type)).as_image"}},{"html_id":"lab2xyz(**kwargs)-instance-method","name":"lab2xyz","doc":"Transform cielab to xyz\n\n```\n# out_ = in.lab2xyz({temp: Array(Float64)})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*temp* : Array(Float64) - Color temperature\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform cielab to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4448,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4448"},"def":{"name":"lab2xyz","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"lab2xyz\", options)).as(Type)).as_image\n"}},{"html_id":"labelregions-instance-method","name":"labelregions","doc":"Label regions in an image\n\n```\n# mask, segments = in.labelregions()\n```\n\n\n**Returns**\n\nMask of region labels\n\n_Optionals_\n\n*segments* : Int32? - Number of discrete contiguous regions\n","summary":"

    Label regions in an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4469,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4469"},"def":{"name":"labelregions","visibility":"Public","body":"optional_output = Optional.new(**{segments: true})\nresults = (self.call(\"labelregions\", optional_output)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nsegments = ((o = opts) && (val = o[\"segments\"]?)) ? val.as_i32 : nil\n{final_result, segments}\n"}},{"html_id":"labq2lab-instance-method","name":"labq2lab","doc":"Unpack a labq image to float lab\n\n```\n# out_ = in.labq2lab()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpack a labq image to float lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4492,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4492"},"def":{"name":"labq2lab","visibility":"Public","body":"((self.call(\"labq2lab\")).as(Type)).as_image"}},{"html_id":"labq2labs-instance-method","name":"labq2labs","doc":"Unpack a labq image to short lab\n\n```\n# out_ = in.labq2labs()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpack a labq image to short lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4507,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4507"},"def":{"name":"labq2labs","visibility":"Public","body":"((self.call(\"labq2labs\")).as(Type)).as_image"}},{"html_id":"labq2srgb-instance-method","name":"labq2srgb","doc":"Convert a labq image to srgb\n\n```\n# out_ = in.labq2srgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert a labq image to srgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4522,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4522"},"def":{"name":"labq2srgb","visibility":"Public","body":"((self.call(\"labq2srgb\")).as(Type)).as_image"}},{"html_id":"labs2lab-instance-method","name":"labs2lab","doc":"Transform signed short lab to float\n\n```\n# out_ = in.labs2lab()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform signed short lab to float

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4537,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4537"},"def":{"name":"labs2lab","visibility":"Public","body":"((self.call(\"labs2lab\")).as(Type)).as_image"}},{"html_id":"labs2labq-instance-method","name":"labs2labq","doc":"Transform short lab to labq coding\n\n```\n# out_ = in.labs2labq()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform short lab to labq coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4552,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4552"},"def":{"name":"labs2labq","visibility":"Public","body":"((self.call(\"labs2labq\")).as(Type)).as_image"}},{"html_id":"lch2cmc-instance-method","name":"lch2cmc","doc":"Transform lch to cmc\n\n```\n# out_ = in.lch2cmc()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lch to cmc

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4567,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4567"},"def":{"name":"lch2cmc","visibility":"Public","body":"((self.call(\"lch2cmc\")).as(Type)).as_image"}},{"html_id":"lch2lab-instance-method","name":"lch2lab","doc":"Transform lch to lab\n\n```\n# out_ = in.lch2lab()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lch to lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4582,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4582"},"def":{"name":"lch2lab","visibility":"Public","body":"((self.call(\"lch2lab\")).as(Type)).as_image"}},{"html_id":"linear(a:Array(Float64),b:Array(Float64),**kwargs)-instance-method","name":"linear","doc":"Calculate (a * in + b)\n\n```\n# out_ = in.linear(a, b, {uchar: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*a* : Array(Float64) - Multiply by this\n\n*b* : Array(Float64) - Add this\n\n_Optionals_\n\n*uchar* : Bool - Output should be uchar\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate (a * in + b)

    ","abstract":false,"args":[{"name":"a","external_name":"a","restriction":"Array(Float64)"},{"name":"b","external_name":"b","restriction":"Array(Float64)"}],"args_string":"(a : Array(Float64), b : Array(Float64), **kwargs)","args_html":"(a : Array(Float64), b : Array(Float64), **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4610,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4610"},"def":{"name":"linear","args":[{"name":"a","external_name":"a","restriction":"Array(Float64)"},{"name":"b","external_name":"b","restriction":"Array(Float64)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"linear\", options, a, b)).as(Type)).as_image\n"}},{"html_id":"linecache(**kwargs)-instance-method","name":"linecache","doc":"Cache an image as a set of lines\n\n```\n# out_ = in.linecache({tile_height: Int32, access: Enums::Access, threaded: Bool, persistent: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_height* : Int32 - Tile height in pixels\n\n*access* : Enums::Access - Expected access pattern\n\n*threaded* : Bool - Allow threaded access\n\n*persistent* : Bool - Keep cache between evaluations\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cache an image as a set of lines

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4640,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4640"},"def":{"name":"linecache","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"linecache\", options)).as(Type)).as_image\n"}},{"html_id":"log:Image-instance-method","name":"log","doc":"Return the natural log of an image","summary":"

    Return the natural log of an image

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":933,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L933"},"def":{"name":"log","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Log)"}},{"html_id":"log10:Image-instance-method","name":"log10","doc":"Return the log base 10 of an image","summary":"

    Return the log base 10 of an image

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":938,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L938"},"def":{"name":"log10","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Log10)"}},{"html_id":"magicksave(filename:String,**kwargs)-instance-method","name":"magicksave","doc":"Save file with imagemagick\n\n```\nin.magicksave(filename, {format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save file with imagemagick

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4808,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4808"},"def":{"name":"magicksave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"magicksave\", options, filename)\n"}},{"html_id":"magicksave_bmp(filename:String,**kwargs)-instance-method","name":"magicksave_bmp","doc":"Save bmp image with imagemagick\n\n```\nin.magicksave_bmp(filename, {format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save bmp image with imagemagick

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4845,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4845"},"def":{"name":"magicksave_bmp","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"magicksave_bmp\", options, filename)\n"}},{"html_id":"magicksave_bmp_buffer(**kwargs)-instance-method","name":"magicksave_bmp_buffer","doc":"Save bmp image to magick buffer\n\n```\n# buffer = in.magicksave_bmp_buffer({format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save bmp image to magick buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4882,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4882"},"def":{"name":"magicksave_bmp_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"magicksave_bmp_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"magicksave_buffer(**kwargs)-instance-method","name":"magicksave_buffer","doc":"Save image to magick buffer\n\n```\n# buffer = in.magicksave_buffer({format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to magick buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4920,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4920"},"def":{"name":"magicksave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"magicksave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"mapim(index:Image,**kwargs)-instance-method","name":"mapim","doc":"Resample with a map image\n\n```\n# out_ = in.mapim(index, {interpolate: Interpolate, background: Array(Float64), premultiplied: Bool, extend: Enums::Extend})\n```\n\n\nInput Parameters\n\n**Required**\n\n*index* : Image - Index pixels with this\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*background* : Array(Float64) - Background value\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Resample with a map image

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Image"}],"args_string":"(index : Image, **kwargs)","args_html":"(index : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4954,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4954"},"def":{"name":"mapim","args":[{"name":"index","external_name":"index","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"mapim\", options, index)).as(Type)).as_image\n"}},{"html_id":"maplut(lut:Image,**kwargs)-instance-method","name":"maplut","doc":"Map an image though a lut\n\n```\n# out_ = in.maplut(lut, {band: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*lut* : Image - Look-up table image\n\n_Optionals_\n\n*band* : Int32 - Apply one-band lut to this band of in\n\n\n**Returns**\n\nOutput image\n","summary":"

    Map an image though a lut

    ","abstract":false,"args":[{"name":"lut","external_name":"lut","restriction":"Image"}],"args_string":"(lut : Image, **kwargs)","args_html":"(lut : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4982,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4982"},"def":{"name":"maplut","args":[{"name":"lut","external_name":"lut","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"maplut\", options, lut)).as(Type)).as_image\n"}},{"html_id":"match(sec:Image,xr1:Int32,yr1:Int32,xs1:Int32,ys1:Int32,xr2:Int32,yr2:Int32,xs2:Int32,ys2:Int32,**kwargs)-instance-method","name":"match","doc":"First-order match of two images\n\n```\n# out_ = ref.match(sec, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, {hwindow: Int32, harea: Int32, search: Bool, interpolate: Interpolate})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*xr1* : Int32 - Position of first reference tie-point\n\n*yr1* : Int32 - Position of first reference tie-point\n\n*xs1* : Int32 - Position of first secondary tie-point\n\n*ys1* : Int32 - Position of first secondary tie-point\n\n*xr2* : Int32 - Position of second reference tie-point\n\n*yr2* : Int32 - Position of second reference tie-point\n\n*xs2* : Int32 - Position of second secondary tie-point\n\n*ys2* : Int32 - Position of second secondary tie-point\n\n_Optionals_\n\n*hwindow* : Int32 - Half window size\n\n*harea* : Int32 - Half area size\n\n*search* : Bool - Search to improve tie-points\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n\n**Returns**\n\nOutput image\n","summary":"

    First-order match of two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"args_string":"(sec : Image, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","args_html":"(sec : Image, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5448,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5448"},"def":{"name":"match","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"match\", options, sec, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2)).as(Type)).as_image\n"}},{"html_id":"math(math:Enums::OperationMath)-instance-method","name":"math","doc":"Apply a math operation to an image\n\n```\n# out_ = in.math(math)\n```\n\n\nInput Parameters\n\n**Required**\n\n*math* : Enums::OperationMath - Math to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Apply a math operation to an image

    ","abstract":false,"args":[{"name":"math","external_name":"math","restriction":"Enums::OperationMath"}],"args_string":"(math : Enums::OperationMath)","args_html":"(math : Enums::OperationMath)","location":{"filename":"src/vips/ext/image.cr","line_number":5472,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5472"},"def":{"name":"math","args":[{"name":"math","external_name":"math","restriction":"Enums::OperationMath"}],"visibility":"Public","body":"((self.call(\"math\", math)).as(Type)).as_image"}},{"html_id":"math2(right:Image,math2:Enums::OperationMath2)-instance-method","name":"math2","doc":"Binary math operations\n\n```\n# out_ = left.math2(right, math2)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*math2* : Enums::OperationMath2 - Math to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Binary math operations

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"}],"args_string":"(right : Image, math2 : Enums::OperationMath2)","args_html":"(right : Image, math2 : Enums::OperationMath2)","location":{"filename":"src/vips/ext/image.cr","line_number":5496,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5496"},"def":{"name":"math2","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"}],"visibility":"Public","body":"((self.call(\"math2\", right, math2)).as(Type)).as_image"}},{"html_id":"math2_const(math2:Enums::OperationMath2,c:Array(Float64))-instance-method","name":"math2_const","doc":"Binary math operations with a constant\n\n```\n# out_ = in.math2_const(math2, c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*math2* : Enums::OperationMath2 - Math to perform\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Binary math operations with a constant

    ","abstract":false,"args":[{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(math2 : Enums::OperationMath2, c : Array(Float64))","args_html":"(math2 : Enums::OperationMath2, c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":5520,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5520"},"def":{"name":"math2_const","args":[{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"math2_const\", math2, c)).as(Type)).as_image"}},{"html_id":"matrixinvert-instance-method","name":"matrixinvert","doc":"Invert an matrix\n\n```\n# out_ = in.matrixinvert()\n```\n\n\n**Returns**\n\nOutput matrix\n","summary":"

    Invert an matrix

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5578,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5578"},"def":{"name":"matrixinvert","visibility":"Public","body":"((self.call(\"matrixinvert\")).as(Type)).as_image"}},{"html_id":"matrixprint(**kwargs)-instance-method","name":"matrixprint","doc":"Print matrix\n\n```\nin.matrixprint({strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Print matrix

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5716,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5716"},"def":{"name":"matrixprint","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"matrixprint\", options)\n"}},{"html_id":"matrixsave(filename:String,**kwargs)-instance-method","name":"matrixsave","doc":"Save image to matrix\n\n```\nin.matrixsave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to matrix

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5743,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5743"},"def":{"name":"matrixsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"matrixsave\", options, filename)\n"}},{"html_id":"matrixsave_stream(stream:IO,**kwargs)-instance-method","name":"matrixsave_stream","doc":"Save image to matrix\n\n```\nin.matrixsave_stream(stream, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to matrix

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5794,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5794"},"def":{"name":"matrixsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nmatrixsave_target(target, **kwargs)\n"}},{"html_id":"matrixsave_target(target:Target,**kwargs)-instance-method","name":"matrixsave_target","doc":"Save image to matrix\n\n```\nin.matrixsave_target(target, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to matrix

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5770,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5770"},"def":{"name":"matrixsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"matrixsave_target\", options, target)\n"}},{"html_id":"max(**kwargs)-instance-method","name":"max","doc":"Find image maximum\n\n```\n# out_, x, y, out_array, x_array, y_array = in.max({size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*size* : Int32 - Number of maximum values to find\n\n\n**Returns**\n\nOutput value\n\n_Optionals_\n\n*x* : Int32? - Horizontal position of maximum\n\n*y* : Int32? - Vertical position of maximum\n\n*out_array* : Array(Float64)? - Array of output values\n\n*x_array* : Array(Int32)? - Array of horizontal positions\n\n*y_array* : Array(Int32)? - Array of vertical positions\n","summary":"

    Find image maximum

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5829,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5829"},"def":{"name":"max","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"x\"] = true\noptions[\"y\"] = true\noptions[\"out_array\"] = true\noptions[\"x_array\"] = true\noptions[\"y_array\"] = true\nresults = (self.call(\"max\", options)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_f64\nopts = results[1]?.try(&.as_h)\nx = ((o = opts) && (val = o[\"x\"]?)) ? val.as_i32 : nil\ny = ((o = opts) && (val = o[\"y\"]?)) ? val.as_i32 : nil\nout_array = ((o = opts) && (val = o[\"out_array\"]?)) ? val.as_a64 : nil\nx_array = ((o = opts) && (val = o[\"x_array\"]?)) ? val.as_a32 : nil\ny_array = ((o = opts) && (val = o[\"y_array\"]?)) ? val.as_a32 : nil\n{final_result, x, y, out_array, x_array, y_array}\n"}},{"html_id":"maxpos-instance-method","name":"maxpos","doc":"Return the coordinates of the image maximum.","summary":"

    Return the coordinates of the image maximum.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":836,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L836"},"def":{"name":"maxpos","visibility":"Public","body":"v, x, y, _, _, _ = self.max\n{v, x.try(&.to_f) || 0_f64, y.try(&.to_f) || 0_f64}\n"}},{"html_id":"measure(h:Int32,v:Int32,**kwargs)-instance-method","name":"measure","doc":"Measure a set of patches on a color chart\n\n```\n# out_ = in.measure(h, v, {left: Int32, top: Int32, width: Int32, height: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*h* : Int32 - Number of patches across chart\n\n*v* : Int32 - Number of patches down chart\n\n_Optionals_\n\n*left* : Int32 - Left edge of extract area\n\n*top* : Int32 - Top edge of extract area\n\n*width* : Int32 - Width of extract area\n\n*height* : Int32 - Height of extract area\n\n\n**Returns**\n\nOutput array of statistics\n","summary":"

    Measure a set of patches on a color chart

    ","abstract":false,"args":[{"name":"h","external_name":"h","restriction":"Int32"},{"name":"v","external_name":"v","restriction":"Int32"}],"args_string":"(h : Int32, v : Int32, **kwargs)","args_html":"(h : Int32, v : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5880,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5880"},"def":{"name":"measure","args":[{"name":"h","external_name":"h","restriction":"Int32"},{"name":"v","external_name":"v","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"measure\", options, h, v)).as(Type)).as_image\n"}},{"html_id":"median(size=3)-instance-method","name":"median","doc":"size x size median filter.","summary":"

    size x size median filter.

    ","abstract":false,"args":[{"name":"size","default_value":"3","external_name":"size","restriction":""}],"args_string":"(size = 3)","args_html":"(size = 3)","location":{"filename":"src/vips/image.cr","line_number":988,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L988"},"def":{"name":"median","args":[{"name":"size","default_value":"3","external_name":"size","restriction":""}],"visibility":"Public","body":"rank(size, size, (size * size) // 2)"}},{"html_id":"merge(sec:Image,direction:Enums::Direction,dx:Int32,dy:Int32,**kwargs)-instance-method","name":"merge","doc":"Merge two images\n\n```\n# out_ = ref.merge(sec, direction, dx, dy, {mblend: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*direction* : Enums::Direction - Horizontal or vertical merge\n\n*dx* : Int32 - Horizontal displacement from sec to ref\n\n*dy* : Int32 - Vertical displacement from sec to ref\n\n_Optionals_\n\n*mblend* : Int32 - Maximum blend size\n\n\n**Returns**\n\nOutput image\n","summary":"

    Merge two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"dx","external_name":"dx","restriction":"Int32"},{"name":"dy","external_name":"dy","restriction":"Int32"}],"args_string":"(sec : Image, direction : Enums::Direction, dx : Int32, dy : Int32, **kwargs)","args_html":"(sec : Image, direction : Enums::Direction, dx : Int32, dy : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5914,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5914"},"def":{"name":"merge","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"dx","external_name":"dx","restriction":"Int32"},{"name":"dy","external_name":"dy","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"merge\", options, sec, direction, dx, dy)).as(Type)).as_image\n"}},{"html_id":"min(**kwargs)-instance-method","name":"min","doc":"Find image minimum\n\n```\n# out_, x, y, out_array, x_array, y_array = in.min({size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*size* : Int32 - Number of minimum values to find\n\n\n**Returns**\n\nOutput value\n\n_Optionals_\n\n*x* : Int32? - Horizontal position of minimum\n\n*y* : Int32? - Vertical position of minimum\n\n*out_array* : Array(Float64)? - Array of output values\n\n*x_array* : Array(Int32)? - Array of horizontal positions\n\n*y_array* : Array(Int32)? - Array of vertical positions\n","summary":"

    Find image minimum

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5950,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5950"},"def":{"name":"min","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"x\"] = true\noptions[\"y\"] = true\noptions[\"out_array\"] = true\noptions[\"x_array\"] = true\noptions[\"y_array\"] = true\nresults = (self.call(\"min\", options)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_f64\nopts = results[1]?.try(&.as_h)\nx = ((o = opts) && (val = o[\"x\"]?)) ? val.as_i32 : nil\ny = ((o = opts) && (val = o[\"y\"]?)) ? val.as_i32 : nil\nout_array = ((o = opts) && (val = o[\"out_array\"]?)) ? val.as_a64 : nil\nx_array = ((o = opts) && (val = o[\"x_array\"]?)) ? val.as_a32 : nil\ny_array = ((o = opts) && (val = o[\"y_array\"]?)) ? val.as_a32 : nil\n{final_result, x, y, out_array, x_array, y_array}\n"}},{"html_id":"minpos-instance-method","name":"minpos","doc":"Return the coordinates of the image minimum.","summary":"

    Return the coordinates of the image minimum.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":842,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L842"},"def":{"name":"minpos","visibility":"Public","body":"v, x, y, _, _, _ = self.min\n{v, x.try(&.to_f) || 0_f64, y.try(&.to_f) || 0_f64}\n"}},{"html_id":"morph(mask:Image,morph:Enums::OperationMorphology)-instance-method","name":"morph","doc":"Morphology operation\n\n```\n# out_ = in.morph(mask, morph)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n*morph* : Enums::OperationMorphology - Morphological operation to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Morphology operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"morph","external_name":"morph","restriction":"Enums::OperationMorphology"}],"args_string":"(mask : Image, morph : Enums::OperationMorphology)","args_html":"(mask : Image, morph : Enums::OperationMorphology)","location":{"filename":"src/vips/ext/image.cr","line_number":5991,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5991"},"def":{"name":"morph","args":[{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"morph","external_name":"morph","restriction":"Enums::OperationMorphology"}],"visibility":"Public","body":"((self.call(\"morph\", mask, morph)).as(Type)).as_image"}},{"html_id":"mosaic(sec:Image,direction:Enums::Direction,xref:Int32,yref:Int32,xsec:Int32,ysec:Int32,**kwargs)-instance-method","name":"mosaic","doc":"Mosaic two images\n\n```\n# out_, dx0, dy0, scale1, angle1, dy1, dx1 = ref.mosaic(sec, direction, xref, yref, xsec, ysec, {hwindow: Int32, harea: Int32, mblend: Int32, bandno: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*direction* : Enums::Direction - Horizontal or vertical mosaic\n\n*xref* : Int32 - Position of reference tie-point\n\n*yref* : Int32 - Position of reference tie-point\n\n*xsec* : Int32 - Position of secondary tie-point\n\n*ysec* : Int32 - Position of secondary tie-point\n\n_Optionals_\n\n*hwindow* : Int32 - Half window size\n\n*harea* : Int32 - Half area size\n\n*mblend* : Int32 - Maximum blend size\n\n*bandno* : Int32 - Band to search for features on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*dx0* : Int32? - Detected integer offset\n\n*dy0* : Int32? - Detected integer offset\n\n*scale1* : Float64? - Detected scale\n\n*angle1* : Float64? - Detected rotation\n\n*dy1* : Float64? - Detected first-order displacement\n\n*dx1* : Float64? - Detected first-order displacement\n","summary":"

    Mosaic two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xref","external_name":"xref","restriction":"Int32"},{"name":"yref","external_name":"yref","restriction":"Int32"},{"name":"xsec","external_name":"xsec","restriction":"Int32"},{"name":"ysec","external_name":"ysec","restriction":"Int32"}],"args_string":"(sec : Image, direction : Enums::Direction, xref : Int32, yref : Int32, xsec : Int32, ysec : Int32, **kwargs)","args_html":"(sec : Image, direction : Enums::Direction, xref : Int32, yref : Int32, xsec : Int32, ysec : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6047,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6047"},"def":{"name":"mosaic","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xref","external_name":"xref","restriction":"Int32"},{"name":"yref","external_name":"yref","restriction":"Int32"},{"name":"xsec","external_name":"xsec","restriction":"Int32"},{"name":"ysec","external_name":"ysec","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"dx0\"] = true\noptions[\"dy0\"] = true\noptions[\"scale1\"] = true\noptions[\"angle1\"] = true\noptions[\"dy1\"] = true\noptions[\"dx1\"] = true\nresults = (self.call(\"mosaic\", options, sec, direction, xref, yref, xsec, ysec)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\ndx0 = ((o = opts) && (val = o[\"dx0\"]?)) ? val.as_i32 : nil\ndy0 = ((o = opts) && (val = o[\"dy0\"]?)) ? val.as_i32 : nil\nscale1 = ((o = opts) && (val = o[\"scale1\"]?)) ? val.as_f64 : nil\nangle1 = ((o = opts) && (val = o[\"angle1\"]?)) ? val.as_f64 : nil\ndy1 = ((o = opts) && (val = o[\"dy1\"]?)) ? val.as_f64 : nil\ndx1 = ((o = opts) && (val = o[\"dx1\"]?)) ? val.as_f64 : nil\n{final_result, dx0, dy0, scale1, angle1, dy1, dx1}\n"}},{"html_id":"mosaic1(sec:Image,direction:Enums::Direction,xr1:Int32,yr1:Int32,xs1:Int32,ys1:Int32,xr2:Int32,yr2:Int32,xs2:Int32,ys2:Int32,**kwargs)-instance-method","name":"mosaic1","doc":"First-order mosaic of two images\n\n```\n# out_ = ref.mosaic1(sec, direction, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, {hwindow: Int32, harea: Int32, search: Bool, interpolate: Interpolate, mblend: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*direction* : Enums::Direction - Horizontal or vertical mosaic\n\n*xr1* : Int32 - Position of first reference tie-point\n\n*yr1* : Int32 - Position of first reference tie-point\n\n*xs1* : Int32 - Position of first secondary tie-point\n\n*ys1* : Int32 - Position of first secondary tie-point\n\n*xr2* : Int32 - Position of second reference tie-point\n\n*yr2* : Int32 - Position of second reference tie-point\n\n*xs2* : Int32 - Position of second secondary tie-point\n\n*ys2* : Int32 - Position of second secondary tie-point\n\n_Optionals_\n\n*hwindow* : Int32 - Half window size\n\n*harea* : Int32 - Half area size\n\n*search* : Bool - Search to improve tie-points\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*mblend* : Int32 - Maximum blend size\n\n\n**Returns**\n\nOutput image\n","summary":"

    First-order mosaic of two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"args_string":"(sec : Image, direction : Enums::Direction, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","args_html":"(sec : Image, direction : Enums::Direction, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6118,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6118"},"def":{"name":"mosaic1","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"mosaic1\", options, sec, direction, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2)).as(Type)).as_image\n"}},{"html_id":"msb(**kwargs)-instance-method","name":"msb","doc":"Pick most-significant byte from an image\n\n```\n# out_ = in.msb({band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*band* : Int32 - Band to msb\n\n\n**Returns**\n\nOutput image\n","summary":"

    Pick most-significant byte from an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":6142,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6142"},"def":{"name":"msb","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"msb\", options)).as(Type)).as_image\n"}},{"html_id":"multiply(right:Image)-instance-method","name":"multiply","doc":"Multiply two images\n\n```\n# out_ = left.multiply(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Multiply two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":6166,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6166"},"def":{"name":"multiply","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"multiply\", right)).as(Type)).as_image"}},{"html_id":"mutate(&)-instance-method","name":"mutate","doc":"Mutate an image with a block. Inside the block, you can call methods\nwhich modify the image, such as setting or removing metadata, or\nmodifying pixels.\n\nFor example:\n\n```\nimage = image.mutate do |x|\n (0..1).step 0.01 do |i|\n x.draw_line([255.0], (x.width * i).to_i, 0, 0, (x.height * (1 - i)).to_i)\n end\nend\n```\n\nSee `MutableImage`.","summary":"

    Mutate an image with a block.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":637,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L637"},"def":{"name":"mutate","yields":1,"block_arity":1,"visibility":"Public","body":"mutable = MutableImage.new(self)\nyield mutable\nmutable.image\n"}},{"html_id":"new_from_image(value)-instance-method","name":"new_from_image","doc":"A new image is created with the same width, height, format,\ninterpretation, resolution and offset as self, but with every pixel\nset to the specified value.\n\nYou can pass an array to make a many-band image, or a single value to\nmake a one-band image.","summary":"

    A new image is created with the same width, height, format, interpretation, resolution and offset as self, but with every pixel set to the specified value.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""}],"args_string":"(value)","args_html":"(value)","location":{"filename":"src/vips/image.cr","line_number":391,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L391"},"def":{"name":"new_from_image","args":[{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"pixel = ((Image.black(1, 1)) + value).cast(format)\nimage = pixel.embed(0, 0, width, height, extend: Enums::Extend::Copy)\nimage.copy(interpretation: interpretation, xres: xres, yres: yres, xoffset: xoffset, yoffset: yoffset)\n"}},{"html_id":"new_from_image(*value:Int32|Float64)-instance-method","name":"new_from_image","doc":"A new image is created with the same width, height, format,\ninterpretation, resolution and offset as self, but with every pixel\nset to the specified value.\n\nYou can pass an array to make a many-band image, or a single value to\nmake a one-band image.","summary":"

    A new image is created with the same width, height, format, interpretation, resolution and offset as self, but with every pixel set to the specified value.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(*value : Int32 | Float64)","args_html":"(*value : Int32 | Float64)","location":{"filename":"src/vips/image.cr","line_number":377,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L377"},"def":{"name":"new_from_image","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"splat_index":0,"visibility":"Public","body":"dblarr = Array(Float64).new(value.size) do |i|\n (value.at(i)).to_f\nend\npixel = ((Image.black(1, 1)) + dblarr).cast(format)\nimage = pixel.embed(0, 0, width, height, extend: Enums::Extend::Copy)\nimage.copy(interpretation: interpretation, xres: xres, yres: yres, xoffset: xoffset, yoffset: yoffset)\n"}},{"html_id":"offset-instance-method","name":"offset","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1051,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1051"},"def":{"name":"offset","visibility":"Public","body":"(get(\"offset\")).as_f64"}},{"html_id":"page_height:Int32-instance-method","name":"page_height","doc":"Multi-page images can have a page height.\nIf page-height is not set, it defaults to the image height.\nNote: At least libvips 8.8 is needed.","summary":"

    Multi-page images can have a page height.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1261,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1261"},"def":{"name":"page_height","return_type":"Int32","visibility":"Public","body":"LibVips.vips_image_get_page_height(self)"}},{"html_id":"pbmsave_stream(stream:IO,**kwargs)-instance-method","name":"pbmsave_stream","doc":"Save image in pbm format\n\n```\nin.pbmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pbm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6417,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6417"},"def":{"name":"pbmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npbmsave_target(target, **kwargs)\n"}},{"html_id":"pbmsave_target(target:Target,**kwargs)-instance-method","name":"pbmsave_target","doc":"Save image in pbm format\n\n```\nin.pbmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pbm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6387,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6387"},"def":{"name":"pbmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pbmsave_target\", options, target)\n"}},{"html_id":"percent(percent:Float64)-instance-method","name":"percent","doc":"Find threshold for percent of pixels\n\n```\n# threshold = in.percent(percent)\n```\n\n\nInput Parameters\n\n**Required**\n\n*percent* : Float64 - Percent of pixels\n\n\n**Returns**\n\nThreshold above which lie percent of pixels\n","summary":"

    Find threshold for percent of pixels

    ","abstract":false,"args":[{"name":"percent","external_name":"percent","restriction":"Float64"}],"args_string":"(percent : Float64)","args_html":"(percent : Float64)","location":{"filename":"src/vips/ext/image.cr","line_number":6647,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6647"},"def":{"name":"percent","args":[{"name":"percent","external_name":"percent","restriction":"Float64"}],"visibility":"Public","body":"((self.call(\"percent\", percent)).as(Type)).as_i32"}},{"html_id":"pfmsave_stream(stream:IO,**kwargs)-instance-method","name":"pfmsave_stream","doc":"Save image in pfm format\n\n```\nin.pfmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pfm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6743,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6743"},"def":{"name":"pfmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npfmsave_target(target, **kwargs)\n"}},{"html_id":"pfmsave_target(target:Target,**kwargs)-instance-method","name":"pfmsave_target","doc":"Save image in pfm format\n\n```\nin.pfmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pfm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6713,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6713"},"def":{"name":"pfmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pfmsave_target\", options, target)\n"}},{"html_id":"pgmsave_stream(stream:IO,**kwargs)-instance-method","name":"pgmsave_stream","doc":"Save image in pgm format\n\n```\nin.pgmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pgm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6806,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6806"},"def":{"name":"pgmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npgmsave_target(target, **kwargs)\n"}},{"html_id":"pgmsave_target(target:Target,**kwargs)-instance-method","name":"pgmsave_target","doc":"Save image in pgm format\n\n```\nin.pgmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pgm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6776,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6776"},"def":{"name":"pgmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pgmsave_target\", options, target)\n"}},{"html_id":"phasecor(in2:Image)-instance-method","name":"phasecor","doc":"Calculate phase correlation\n\n```\n# out_ = in.phasecor(in2)\n```\n\n\nInput Parameters\n\n**Required**\n\n*in2* : Image - Second input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate phase correlation

    ","abstract":false,"args":[{"name":"in2","external_name":"in2","restriction":"Image"}],"args_string":"(in2 : Image)","args_html":"(in2 : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":6829,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6829"},"def":{"name":"phasecor","args":[{"name":"in2","external_name":"in2","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"phasecor\", in2)).as(Type)).as_image"}},{"html_id":"pngsave(filename:String,**kwargs)-instance-method","name":"pngsave","doc":"Save image to file as png\n\n```\nin.pngsave(filename, {compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to file as png

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7040,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7040"},"def":{"name":"pngsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pngsave\", options, filename)\n"}},{"html_id":"pngsave_buffer(**kwargs)-instance-method","name":"pngsave_buffer","doc":"Save image to buffer as png\n\n```\n# buffer = in.pngsave_buffer({compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to buffer as png

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7085,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7085"},"def":{"name":"pngsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"pngsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"pngsave_stream(stream:IO,**kwargs)-instance-method","name":"pngsave_stream","doc":"Save image to stream as png\n\n```\nin.pngsave_stream(stream, {compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to stream as png

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7173,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7173"},"def":{"name":"pngsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npngsave_target(target, **kwargs)\n"}},{"html_id":"pngsave_target(target:Target,**kwargs)-instance-method","name":"pngsave_target","doc":"Save image to target as png\n\n```\nin.pngsave_target(target, {compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to target as png

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7131,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7131"},"def":{"name":"pngsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pngsave_target\", options, target)\n"}},{"html_id":"pnmsave_stream(stream:IO,**kwargs)-instance-method","name":"pnmsave_stream","doc":"Save image in pnm format\n\n```\nin.pnmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pnm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7236,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7236"},"def":{"name":"pnmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npnmsave_target(target, **kwargs)\n"}},{"html_id":"pnmsave_target(target:Target,**kwargs)-instance-method","name":"pnmsave_target","doc":"Save image in pnm format\n\n```\nin.pnmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pnm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7206,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7206"},"def":{"name":"pnmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pnmsave_target\", options, target)\n"}},{"html_id":"polar:Image-instance-method","name":"polar","doc":"Return an image converted to polar coordinates.","summary":"

    Return an image converted to polar coordinates.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":858,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L858"},"def":{"name":"polar","return_type":"Image","visibility":"Public","body":"Image.run_cmplx(self) do |x|\n x.complex(Enums::OperationComplex::Polar)\nend"}},{"html_id":"ppmsave(filename:String,**kwargs)-instance-method","name":"ppmsave","doc":"Save image to ppm file\n\n```\nin.ppmsave(filename, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to ppm file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7385,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7385"},"def":{"name":"ppmsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"ppmsave\", options, filename)\n"}},{"html_id":"ppmsave_stream(stream:IO,**kwargs)-instance-method","name":"ppmsave_stream","doc":"Save to ppm\n\n```\nin.ppmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save to ppm

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7448,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7448"},"def":{"name":"ppmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nppmsave_target(target, **kwargs)\n"}},{"html_id":"ppmsave_target(target:Target,**kwargs)-instance-method","name":"ppmsave_target","doc":"Save to ppm\n\n```\nin.ppmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save to ppm

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7418,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7418"},"def":{"name":"ppmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"ppmsave_target\", options, target)\n"}},{"html_id":"premultiply(**kwargs)-instance-method","name":"premultiply","doc":"Premultiply image alpha\n\n```\n# out_ = in.premultiply({max_alpha: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*max_alpha* : Float64 - Maximum value of alpha channel\n\n\n**Returns**\n\nOutput image\n","summary":"

    Premultiply image alpha

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7471,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7471"},"def":{"name":"premultiply","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"premultiply\", options)).as(Type)).as_image\n"}},{"html_id":"profile-instance-method","name":"profile","doc":"Find image profiles\n\n```\n# output = in.profile()\n```\n\n\n**Returns**\n\nFirst non-zero pixel in column\n\nFirst non-zero pixel in row\n","summary":"

    Find image profiles

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7490,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7490"},"def":{"name":"profile","visibility":"Public","body":"results = (self.call(\"profile\")).as(Array(Type))\n{results[0].as_image, results[1].as_image}\n"}},{"html_id":"project-instance-method","name":"project","doc":"Find image projections\n\n```\n# output = in.project()\n```\n\n\n**Returns**\n\nSums of columns\n\nSums of rows\n","summary":"

    Find image projections

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7531,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7531"},"def":{"name":"project","visibility":"Public","body":"results = (self.call(\"project\")).as(Array(Type))\n{results[0].as_image, results[1].as_image}\n"}},{"html_id":"quadratic(coeff:Image,**kwargs)-instance-method","name":"quadratic","doc":"Resample an image with a quadratic transform\n\n```\n# out_ = in.quadratic(coeff, {interpolate: Interpolate})\n```\n\n\nInput Parameters\n\n**Required**\n\n*coeff* : Image - Coefficient matrix\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate values with this\n\n\n**Returns**\n\nOutput image\n","summary":"

    Resample an image with a quadratic transform

    ","abstract":false,"args":[{"name":"coeff","external_name":"coeff","restriction":"Image"}],"args_string":"(coeff : Image, **kwargs)","args_html":"(coeff : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7559,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7559"},"def":{"name":"quadratic","args":[{"name":"coeff","external_name":"coeff","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"quadratic\", options, coeff)).as(Type)).as_image\n"}},{"html_id":"rad2float-instance-method","name":"rad2float","doc":"Unpack radiance coding to float rgb\n\n```\n# out_ = in.rad2float()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpack radiance coding to float rgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7576,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7576"},"def":{"name":"rad2float","visibility":"Public","body":"((self.call(\"rad2float\")).as(Type)).as_image"}},{"html_id":"radsave(filename:String,**kwargs)-instance-method","name":"radsave","doc":"Save image to radiance file\n\n```\nin.radsave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to radiance file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7761,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7761"},"def":{"name":"radsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"radsave\", options, filename)\n"}},{"html_id":"radsave_buffer(**kwargs)-instance-method","name":"radsave_buffer","doc":"Save image to radiance buffer\n\n```\n# buffer = in.radsave_buffer({strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to radiance buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7788,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7788"},"def":{"name":"radsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"radsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"radsave_stream(stream:IO,**kwargs)-instance-method","name":"radsave_stream","doc":"Save image to radiance stream\n\n```\nin.radsave_stream(stream, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to radiance stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7840,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7840"},"def":{"name":"radsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nradsave_target(target, **kwargs)\n"}},{"html_id":"radsave_target(target:Target,**kwargs)-instance-method","name":"radsave_target","doc":"Save image to radiance target\n\n```\nin.radsave_target(target, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to radiance target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7816,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7816"},"def":{"name":"radsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"radsave_target\", options, target)\n"}},{"html_id":"rank(width:Int32,height:Int32,index:Int32)-instance-method","name":"rank","doc":"Rank filter\n\n```\n# out_ = in.rank(width, height, index)\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Window width in pixels\n\n*height* : Int32 - Window height in pixels\n\n*index* : Int32 - Select pixel at index\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rank filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, index : Int32)","args_html":"(width : Int32, height : Int32, index : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":7867,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7867"},"def":{"name":"rank","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"index","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"rank\", width, height, index)).as(Type)).as_image"}},{"html_id":"rawsave(filename:String,**kwargs)-instance-method","name":"rawsave","doc":"Save image to raw file\n\n```\nin.rawsave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to raw file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7948,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7948"},"def":{"name":"rawsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"rawsave\", options, filename)\n"}},{"html_id":"rawsave_fd(fd:Int32,**kwargs)-instance-method","name":"rawsave_fd","doc":"Write raw image to file descriptor\n\n```\nin.rawsave_fd(fd, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*fd* : Int32 - File descriptor to write to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Write raw image to file descriptor

    ","abstract":false,"args":[{"name":"fd","external_name":"fd","restriction":"Int32"}],"args_string":"(fd : Int32, **kwargs)","args_html":"(fd : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7975,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7975"},"def":{"name":"rawsave_fd","args":[{"name":"fd","external_name":"fd","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"rawsave_fd\", options, fd)\n"}},{"html_id":"real:Image-instance-method","name":"real","doc":"Return the real part of a complex image.","summary":"

    Return the real part of a complex image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":848,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L848"},"def":{"name":"real","return_type":"Image","visibility":"Public","body":"complexget(Enums::OperationComplexget::Real)"}},{"html_id":"recomb(m:Image)-instance-method","name":"recomb","doc":"Linear recombination with matrix\n\n```\n# out_ = in.recomb(m)\n```\n\n\nInput Parameters\n\n**Required**\n\n*m* : Image - Matrix of coefficients\n\n\n**Returns**\n\nOutput image\n","summary":"

    Linear recombination with matrix

    ","abstract":false,"args":[{"name":"m","external_name":"m","restriction":"Image"}],"args_string":"(m : Image)","args_html":"(m : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":7998,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7998"},"def":{"name":"recomb","args":[{"name":"m","external_name":"m","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"recomb\", m)).as(Type)).as_image"}},{"html_id":"rect:Image-instance-method","name":"rect","doc":"Return an image converted to rectangular coordinates.","summary":"

    Return an image converted to rectangular coordinates.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":863,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L863"},"def":{"name":"rect","return_type":"Image","visibility":"Public","body":"Image.run_cmplx(self) do |x|\n x.complex(Enums::OperationComplex::Rect)\nend"}},{"html_id":"reduce(hshrink:Float64,vshrink:Float64,**kwargs)-instance-method","name":"reduce","doc":"Reduce an image\n\n```\n# out_ = in.reduce(hshrink, vshrink, {kernel: Enums::Kernel, gap: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Float64 - Horizontal shrink factor\n\n*vshrink* : Float64 - Vertical shrink factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n\n**Returns**\n\nOutput image\n","summary":"

    Reduce an image

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"args_string":"(hshrink : Float64, vshrink : Float64, **kwargs)","args_html":"(hshrink : Float64, vshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8028,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8028"},"def":{"name":"reduce","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"reduce\", options, hshrink, vshrink)).as(Type)).as_image\n"}},{"html_id":"reduceh(hshrink:Float64,**kwargs)-instance-method","name":"reduceh","doc":"Shrink an image horizontally\n\n```\n# out_ = in.reduceh(hshrink, {kernel: Enums::Kernel, gap: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Float64 - Horizontal shrink factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image horizontally

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"}],"args_string":"(hshrink : Float64, **kwargs)","args_html":"(hshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8058,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8058"},"def":{"name":"reduceh","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"reduceh\", options, hshrink)).as(Type)).as_image\n"}},{"html_id":"reducev(vshrink:Float64,**kwargs)-instance-method","name":"reducev","doc":"Shrink an image vertically\n\n```\n# out_ = in.reducev(vshrink, {kernel: Enums::Kernel, gap: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*vshrink* : Float64 - Vertical shrink factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image vertically

    ","abstract":false,"args":[{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"args_string":"(vshrink : Float64, **kwargs)","args_html":"(vshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8088,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8088"},"def":{"name":"reducev","args":[{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"reducev\", options, vshrink)).as(Type)).as_image\n"}},{"html_id":"relational(right:Image,relational:Enums::OperationRelational)-instance-method","name":"relational","doc":"Relational operation on two images\n\n```\n# out_ = left.relational(right, relational)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*relational* : Enums::OperationRelational - Relational to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Relational operation on two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"}],"args_string":"(right : Image, relational : Enums::OperationRelational)","args_html":"(right : Image, relational : Enums::OperationRelational)","location":{"filename":"src/vips/ext/image.cr","line_number":8114,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8114"},"def":{"name":"relational","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"}],"visibility":"Public","body":"((self.call(\"relational\", right, relational)).as(Type)).as_image"}},{"html_id":"relational_const(relational:Enums::OperationRelational,c:Array(Float64))-instance-method","name":"relational_const","doc":"Relational operations against a constant\n\n```\n# out_ = in.relational_const(relational, c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*relational* : Enums::OperationRelational - Relational to perform\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Relational operations against a constant

    ","abstract":false,"args":[{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(relational : Enums::OperationRelational, c : Array(Float64))","args_html":"(relational : Enums::OperationRelational, c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":8138,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8138"},"def":{"name":"relational_const","args":[{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"relational_const\", relational, c)).as(Type)).as_image"}},{"html_id":"remainder(right:Image)-instance-method","name":"remainder","doc":"Remainder after integer division of two images\n\n```\n# out_ = left.remainder(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Remainder after integer division of two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8160,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8160"},"def":{"name":"remainder","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"remainder\", right)).as(Type)).as_image"}},{"html_id":"remainder_const(c:Array(Float64))-instance-method","name":"remainder_const","doc":"Remainder after integer division of an image and a constant\n\n```\n# out_ = in.remainder_const(c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Remainder after integer division of an image and a constant

    ","abstract":false,"args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(c : Array(Float64))","args_html":"(c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":8182,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8182"},"def":{"name":"remainder_const","args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"remainder_const\", c)).as(Type)).as_image"}},{"html_id":"replicate(across:Int32,down:Int32)-instance-method","name":"replicate","doc":"Replicate an image\n\n```\n# out_ = in.replicate(across, down)\n```\n\n\nInput Parameters\n\n**Required**\n\n*across* : Int32 - Repeat this many times horizontally\n\n*down* : Int32 - Repeat this many times vertically\n\n\n**Returns**\n\nOutput image\n","summary":"

    Replicate an image

    ","abstract":false,"args":[{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"args_string":"(across : Int32, down : Int32)","args_html":"(across : Int32, down : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":8206,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8206"},"def":{"name":"replicate","args":[{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"replicate\", across, down)).as(Type)).as_image"}},{"html_id":"resize(scale:Float64,**kwargs)-instance-method","name":"resize","doc":"Resize an image\n\n```\n# out_ = in.resize(scale, {kernel: Enums::Kernel, gap: Float64, vscale: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*scale* : Float64 - Scale image by this factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n*vscale* : Float64 - Vertical scale image by this factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Resize an image

    ","abstract":false,"args":[{"name":"scale","external_name":"scale","restriction":"Float64"}],"args_string":"(scale : Float64, **kwargs)","args_html":"(scale : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8236,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8236"},"def":{"name":"resize","args":[{"name":"scale","external_name":"scale","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"resize\", options, scale)).as(Type)).as_image\n"}},{"html_id":"rint:Image-instance-method","name":"rint","doc":"Return the nearest integral value.","summary":"

    Return the nearest integral value.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1028,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1028"},"def":{"name":"rint","return_type":"Image","visibility":"Public","body":"((self.call(\"round\", Enums::OperationRound::Rint)).as(Type)).as_image"}},{"html_id":"rot(angle:Enums::Angle)-instance-method","name":"rot","doc":"Rotate an image\n\n```\n# out_ = in.rot(angle)\n```\n\n\nInput Parameters\n\n**Required**\n\n*angle* : Enums::Angle - Angle to rotate image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rotate an image

    ","abstract":false,"args":[{"name":"angle","external_name":"angle","restriction":"Enums::Angle"}],"args_string":"(angle : Enums::Angle)","args_html":"(angle : Enums::Angle)","location":{"filename":"src/vips/ext/image.cr","line_number":8260,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8260"},"def":{"name":"rot","args":[{"name":"angle","external_name":"angle","restriction":"Enums::Angle"}],"visibility":"Public","body":"((self.call(\"rot\", angle)).as(Type)).as_image"}},{"html_id":"rot180-instance-method","name":"rot180","doc":"Rotate 180 degrees clockwise.","summary":"

    Rotate 180 degrees clockwise.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1008,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1008"},"def":{"name":"rot180","visibility":"Public","body":"rot(Enums::Angle::D180)"}},{"html_id":"rot270-instance-method","name":"rot270","doc":"Rotate 270 degrees clockwise.","summary":"

    Rotate 270 degrees clockwise.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1013,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1013"},"def":{"name":"rot270","visibility":"Public","body":"rot(Enums::Angle::D270)"}},{"html_id":"rot45(**kwargs)-instance-method","name":"rot45","doc":"Rotate an image\n\n```\n# out_ = in.rot45({angle: Enums::Angle45})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*angle* : Enums::Angle45 - Angle to rotate image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rotate an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8282,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8282"},"def":{"name":"rot45","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"rot45\", options)).as(Type)).as_image\n"}},{"html_id":"rot90-instance-method","name":"rot90","doc":"Rotate 90 degrees clockwise.","summary":"

    Rotate 90 degrees clockwise.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1003,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1003"},"def":{"name":"rot90","visibility":"Public","body":"rot(Enums::Angle::D90)"}},{"html_id":"rotate(angle:Float64,**kwargs)-instance-method","name":"rotate","doc":"Rotate an image by a number of degrees\n\n```\n# out_ = in.rotate(angle, {interpolate: Interpolate, background: Array(Float64), odx: Float64, ody: Float64, idx: Float64, idy: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*angle* : Float64 - Rotate anticlockwise by this many degrees\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*background* : Array(Float64) - Background value\n\n*odx* : Float64 - Horizontal output displacement\n\n*ody* : Float64 - Vertical output displacement\n\n*idx* : Float64 - Horizontal input displacement\n\n*idy* : Float64 - Vertical input displacement\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rotate an image by a number of degrees

    ","abstract":false,"args":[{"name":"angle","external_name":"angle","restriction":"Float64"}],"args_string":"(angle : Float64, **kwargs)","args_html":"(angle : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8320,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8320"},"def":{"name":"rotate","args":[{"name":"angle","external_name":"angle","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"rotate\", options, angle)).as(Type)).as_image\n"}},{"html_id":"round(round:Enums::OperationRound)-instance-method","name":"round","doc":"Perform a round function on an image\n\n```\n# out_ = in.round(round)\n```\n\n\nInput Parameters\n\n**Required**\n\n*round* : Enums::OperationRound - Rounding operation to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Perform a round function on an image

    ","abstract":false,"args":[{"name":"round","external_name":"round","restriction":"Enums::OperationRound"}],"args_string":"(round : Enums::OperationRound)","args_html":"(round : Enums::OperationRound)","location":{"filename":"src/vips/ext/image.cr","line_number":8344,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8344"},"def":{"name":"round","args":[{"name":"round","external_name":"round","restriction":"Enums::OperationRound"}],"visibility":"Public","body":"((self.call(\"round\", round)).as(Type)).as_image"}},{"html_id":"scale-instance-method","name":"scale","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1047,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1047"},"def":{"name":"scale","visibility":"Public","body":"(get(\"scale\")).as_f64"}},{"html_id":"scaleimage(**opts)-instance-method","name":"scaleimage","doc":"Scale an image to 0 - 255. This is the libvips `scale` operation, but\nrenamed to avoid a clash with the `scale` for convolution masks.","summary":"

    Scale an image to 0 - 255.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":645,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L645"},"def":{"name":"scaleimage","double_splat":{"name":"opts","external_name":"opts","restriction":""},"visibility":"Public","body":"options = Optional.new(**opts)\n((call(\"scale\", options)).as(Type)).as_image\n"}},{"html_id":"scrgb2bw(**kwargs)-instance-method","name":"scrgb2bw","doc":"Convert scrgb to bw\n\n```\n# out_ = in.scrgb2bw({depth: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert scrgb to bw

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8366,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8366"},"def":{"name":"scrgb2bw","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"scrgb2bw\", options)).as(Type)).as_image\n"}},{"html_id":"scrgb2srgb(**kwargs)-instance-method","name":"scrgb2srgb","doc":"Convert an scrgb image to srgb\n\n```\n# out_ = in.scrgb2srgb({depth: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert an scrgb image to srgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8390,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8390"},"def":{"name":"scrgb2srgb","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"scrgb2srgb\", options)).as(Type)).as_image\n"}},{"html_id":"scrgb2xyz-instance-method","name":"scrgb2xyz","doc":"Transform scrgb to xyz\n\n```\n# out_ = in.scrgb2xyz()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform scrgb to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8407,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8407"},"def":{"name":"scrgb2xyz","visibility":"Public","body":"((self.call(\"scrgb2xyz\")).as(Type)).as_image"}},{"html_id":"sequential(**kwargs)-instance-method","name":"sequential","doc":"Check sequential access\n\n```\n# out_ = in.sequential({tile_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_height* : Int32 - Tile height in pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Check sequential access

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8429,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8429"},"def":{"name":"sequential","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"sequential\", options)).as(Type)).as_image\n"}},{"html_id":"set_kill(kill:Bool)-instance-method","name":"set_kill","doc":"Set the `kill` flag on an image. Handy for stopping sets of threads.\nAt least libvips 8.8 is needed.","summary":"

    Set the kill flag on an image.

    ","abstract":false,"args":[{"name":"kill","external_name":"kill","restriction":"Bool"}],"args_string":"(kill : Bool)","args_html":"(kill : Bool)","location":{"filename":"src/vips/image.cr","line_number":1223,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1223"},"def":{"name":"set_kill","args":[{"name":"kill","external_name":"kill","restriction":"Bool"}],"visibility":"Public","body":"if Vips.at_least_libvips?(8, 8)\nelse\n return\nend\nLibVips.vips_image_set_kill(self, kill)\n"}},{"html_id":"set_progress(enable:Bool)-instance-method","name":"set_progress","doc":"Enable progress reporting on an image.\nWhen progress reporting is enabled, evaluation of the most downstream\nimage from this image will report progress using the `Enums::Signal::PreEval`,\n`Enums::Signal::Eval` and `Enums::Signal::PostEval` signals.","summary":"

    Enable progress reporting on an image.

    ","abstract":false,"args":[{"name":"enable","external_name":"enable","restriction":"Bool"}],"args_string":"(enable : Bool)","args_html":"(enable : Bool)","location":{"filename":"src/vips/image.cr","line_number":1238,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1238"},"def":{"name":"set_progress","args":[{"name":"enable","external_name":"enable","restriction":"Bool"}],"visibility":"Public","body":"LibVips.vips_image_set_progress(self, enable)"}},{"html_id":"set_progress(&block:Int32->Nil)-instance-method","name":"set_progress","doc":"Enable progress reporting on an image and provide a block which will be executed on feedback.\nYou can use this function to update user-interfaces with progress feedback, for example\n\n```\nimage = Vips::Image.new_from_file(\"huge.jpg\", access: Enums::Access.Sequential)\nimage.set_progress { |percent| puts \"#{percent} complete\" }\nimage.dzsave(\"image-pyramid\")\n```","summary":"

    Enable progress reporting on an image and provide a block which will be executed on feedback.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1250,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1250"},"def":{"name":"set_progress","yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Int32 -> Nil)"},"visibility":"Public","body":"last_percent = 0\nsignal_connect(Enums::Signal::Eval) do |image, progress|\n if progress.percent == last_percent\n else\n block.call(progress.percent)\n end\nend\n"}},{"html_id":"sharpen(**kwargs)-instance-method","name":"sharpen","doc":"Unsharp masking for print\n\n```\n# out_ = in.sharpen({sigma: Float64, x1: Float64, y2: Float64, y3: Float64, m1: Float64, m2: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*sigma* : Float64 - Sigma of Gaussian\n\n*x1* : Float64 - Flat/jaggy threshold\n\n*y2* : Float64 - Maximum brightening\n\n*y3* : Float64 - Maximum darkening\n\n*m1* : Float64 - Slope for flat areas\n\n*m2* : Float64 - Slope for jaggy areas\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unsharp masking for print

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8463,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8463"},"def":{"name":"sharpen","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"sharpen\", options)).as(Type)).as_image\n"}},{"html_id":"shrink(hshrink:Float64,vshrink:Float64,**kwargs)-instance-method","name":"shrink","doc":"Shrink an image\n\n```\n# out_ = in.shrink(hshrink, vshrink, {ceil: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Float64 - Horizontal shrink factor\n\n*vshrink* : Float64 - Vertical shrink factor\n\n_Optionals_\n\n*ceil* : Bool - Round-up output dimensions\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"args_string":"(hshrink : Float64, vshrink : Float64, **kwargs)","args_html":"(hshrink : Float64, vshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8493,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8493"},"def":{"name":"shrink","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"shrink\", options, hshrink, vshrink)).as(Type)).as_image\n"}},{"html_id":"shrinkh(hshrink:Int32,**kwargs)-instance-method","name":"shrinkh","doc":"Shrink an image horizontally\n\n```\n# out_ = in.shrinkh(hshrink, {ceil: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Int32 - Horizontal shrink factor\n\n_Optionals_\n\n*ceil* : Bool - Round-up output dimensions\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image horizontally

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Int32"}],"args_string":"(hshrink : Int32, **kwargs)","args_html":"(hshrink : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8521,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8521"},"def":{"name":"shrinkh","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"shrinkh\", options, hshrink)).as(Type)).as_image\n"}},{"html_id":"shrinkv(vshrink:Int32,**kwargs)-instance-method","name":"shrinkv","doc":"Shrink an image vertically\n\n```\n# out_ = in.shrinkv(vshrink, {ceil: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*vshrink* : Int32 - Vertical shrink factor\n\n_Optionals_\n\n*ceil* : Bool - Round-up output dimensions\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image vertically

    ","abstract":false,"args":[{"name":"vshrink","external_name":"vshrink","restriction":"Int32"}],"args_string":"(vshrink : Int32, **kwargs)","args_html":"(vshrink : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8549,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8549"},"def":{"name":"shrinkv","args":[{"name":"vshrink","external_name":"vshrink","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"shrinkv\", options, vshrink)).as(Type)).as_image\n"}},{"html_id":"sign-instance-method","name":"sign","doc":"Unit vector of pixel\n\n```\n# out_ = in.sign()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unit vector of pixel

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8566,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8566"},"def":{"name":"sign","visibility":"Public","body":"((self.call(\"sign\")).as(Type)).as_image"}},{"html_id":"signal_connect(signal:Enums::Signal,data:Pointer(Void)=Pointer(Void).null,&callback:EvalProc)-instance-method","name":"signal_connect","doc":"Connects a `EvalProc` callback to a signal on this image.\nThe callback will be triggered every time this signal is issued on this image.","summary":"

    Connects a EvalProc callback to a signal on this image.

    ","abstract":false,"args":[{"name":"signal","external_name":"signal","restriction":"Enums::Signal"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"args_string":"(signal : Enums::Signal, data : Pointer(Void) = Pointer(Void).null, &callback : EvalProc)","args_html":"(signal : Enums::Signal, data : Pointer(Void) = Pointer(Void).null, &callback : EvalProc)","location":{"filename":"src/vips/image.cr","line_number":1230,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1230"},"def":{"name":"signal_connect","args":[{"name":"signal","external_name":"signal","restriction":"Enums::Signal"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"yields":0,"block_arity":0,"block_arg":{"name":"callback","external_name":"callback","restriction":"EvalProc"},"visibility":"Public","body":"signal_connect(signal.to_s.downcase, callback, data)"}},{"html_id":"similarity(**kwargs)-instance-method","name":"similarity","doc":"Similarity transform of an image\n\n```\n# out_ = in.similarity({scale: Float64, angle: Float64, interpolate: Interpolate, background: Array(Float64), odx: Float64, ody: Float64, idx: Float64, idy: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*scale* : Float64 - Scale by this factor\n\n*angle* : Float64 - Rotate anticlockwise by this many degrees\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*background* : Array(Float64) - Background value\n\n*odx* : Float64 - Horizontal output displacement\n\n*ody* : Float64 - Vertical output displacement\n\n*idx* : Float64 - Horizontal input displacement\n\n*idy* : Float64 - Vertical input displacement\n\n\n**Returns**\n\nOutput image\n","summary":"

    Similarity transform of an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8602,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8602"},"def":{"name":"similarity","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"similarity\", options)).as(Type)).as_image\n"}},{"html_id":"sin:Image-instance-method","name":"sin","doc":"Return the sine of an image in degrees.","summary":"

    Return the sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":873,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L873"},"def":{"name":"sin","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Sin)"}},{"html_id":"sinh:Image-instance-method","name":"sinh","doc":"Return the hyperbolic sine of an image in degrees.","summary":"

    Return the hyperbolic sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":903,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L903"},"def":{"name":"sinh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Sinh)"}},{"html_id":"size-instance-method","name":"size","doc":"Get the image size","summary":"

    Get the image size

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1056,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1056"},"def":{"name":"size","visibility":"Public","body":"[width, height]"}},{"html_id":"smartcrop(width:Int32,height:Int32,**kwargs)-instance-method","name":"smartcrop","doc":"Extract an area from an image\n\n```\n# out_, attention_x, attention_y = input.smartcrop(width, height, {interesting: Enums::Interesting})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Width of extract area\n\n*height* : Int32 - Height of extract area\n\n_Optionals_\n\n*interesting* : Enums::Interesting - How to measure interestingness\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*attention_x* : Int32? - Horizontal position of attention centre\n\n*attention_y* : Int32? - Vertical position of attention centre\n","summary":"

    Extract an area from an image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8672,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8672"},"def":{"name":"smartcrop","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"attention_x\"] = true\noptions[\"attention_y\"] = true\nresults = (self.call(\"smartcrop\", options, width, height)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nattention_x = ((o = opts) && (val = o[\"attention_x\"]?)) ? val.as_i32 : nil\nattention_y = ((o = opts) && (val = o[\"attention_y\"]?)) ? val.as_i32 : nil\n{final_result, attention_x, attention_y}\n"}},{"html_id":"sobel-instance-method","name":"sobel","doc":"Sobel edge detector\n\n```\n# out_ = in.sobel()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Sobel edge detector

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8698,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8698"},"def":{"name":"sobel","visibility":"Public","body":"((self.call(\"sobel\")).as(Type)).as_image"}},{"html_id":"spcor(ref:Image)-instance-method","name":"spcor","doc":"Spatial correlation\n\n```\n# out_ = in.spcor(ref)\n```\n\n\nInput Parameters\n\n**Required**\n\n*ref* : Image - Input reference image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Spatial correlation

    ","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"args_string":"(ref : Image)","args_html":"(ref : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8720,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8720"},"def":{"name":"spcor","args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"spcor\", ref)).as(Type)).as_image"}},{"html_id":"spectrum-instance-method","name":"spectrum","doc":"Make displayable power spectrum\n\n```\n# out_ = in.spectrum()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make displayable power spectrum

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8735,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8735"},"def":{"name":"spectrum","visibility":"Public","body":"((self.call(\"spectrum\")).as(Type)).as_image"}},{"html_id":"srgb2hsv-instance-method","name":"srgb2hsv","doc":"Transform srgb to hsv\n\n```\n# out_ = in.srgb2hsv()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform srgb to hsv

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8750,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8750"},"def":{"name":"srgb2hsv","visibility":"Public","body":"((self.call(\"srgb2hsv\")).as(Type)).as_image"}},{"html_id":"srgb2scrgb-instance-method","name":"srgb2scrgb","doc":"Convert an srgb image to scrgb\n\n```\n# out_ = in.srgb2scrgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert an srgb image to scrgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8765,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8765"},"def":{"name":"srgb2scrgb","visibility":"Public","body":"((self.call(\"srgb2scrgb\")).as(Type)).as_image"}},{"html_id":"stats-instance-method","name":"stats","doc":"Find many image stats\n\n```\n# out_ = in.stats()\n```\n\n\n**Returns**\n\nOutput array of statistics\n","summary":"

    Find many image stats

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8780,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8780"},"def":{"name":"stats","visibility":"Public","body":"((self.call(\"stats\")).as(Type)).as_image"}},{"html_id":"stdif(width:Int32,height:Int32,**kwargs)-instance-method","name":"stdif","doc":"Statistical difference\n\n```\n# out_ = in.stdif(width, height, {s0: Float64, b: Float64, m0: Float64, a: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Window width in pixels\n\n*height* : Int32 - Window height in pixels\n\n_Optionals_\n\n*s0* : Float64 - New deviation\n\n*b* : Float64 - Weight of new deviation\n\n*m0* : Float64 - New mean\n\n*a* : Float64 - Weight of new mean\n\n\n**Returns**\n\nOutput image\n","summary":"

    Statistical difference

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8814,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8814"},"def":{"name":"stdif","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"stdif\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"subsample(xfac:Int32,yfac:Int32,**kwargs)-instance-method","name":"subsample","doc":"Subsample an image\n\n```\n# out_ = input.subsample(xfac, yfac, {point: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*xfac* : Int32 - Horizontal subsample factor\n\n*yfac* : Int32 - Vertical subsample factor\n\n_Optionals_\n\n*point* : Bool - Point sample\n\n\n**Returns**\n\nOutput image\n","summary":"

    Subsample an image

    ","abstract":false,"args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"args_string":"(xfac : Int32, yfac : Int32, **kwargs)","args_html":"(xfac : Int32, yfac : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8844,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8844"},"def":{"name":"subsample","args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"subsample\", options, xfac, yfac)).as(Type)).as_image\n"}},{"html_id":"subtract(right:Image)-instance-method","name":"subtract","doc":"Subtract two images\n\n```\n# out_ = left.subtract(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Subtract two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8868,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8868"},"def":{"name":"subtract","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"subtract\", right)).as(Type)).as_image"}},{"html_id":"tan:Image-instance-method","name":"tan","doc":"Return the tangent of an image in degrees.","summary":"

    Return the tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":883,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L883"},"def":{"name":"tan","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Tan)"}},{"html_id":"tanh:Image-instance-method","name":"tanh","doc":"Return the hyperbolic tangent of an image in degrees.","summary":"

    Return the hyperbolic tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":913,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L913"},"def":{"name":"tanh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Tanh)"}},{"html_id":"thumbnail_image(width:Int32,**kwargs)-instance-method","name":"thumbnail_image","doc":"Generate thumbnail from image\n\n```\n# out_ = in.thumbnail_image(width, {height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(width : Int32, **kwargs)","args_html":"(width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9270,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9270"},"def":{"name":"thumbnail_image","args":[{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"thumbnail_image\", options, width)).as(Type)).as_image\n"}},{"html_id":"tiffsave(filename:String,**kwargs)-instance-method","name":"tiffsave","doc":"Save image to tiff file\n\n```\nin.tiffsave(filename, {compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to tiff file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9623,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9623"},"def":{"name":"tiffsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"tiffsave\", options, filename)\n"}},{"html_id":"tiffsave_buffer(**kwargs)-instance-method","name":"tiffsave_buffer","doc":"Save image to tiff buffer\n\n```\n# buffer = in.tiffsave_buffer({compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to tiff buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9692,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9692"},"def":{"name":"tiffsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"tiffsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"tiffsave_stream(stream:IO,**kwargs)-instance-method","name":"tiffsave_stream","doc":"Save image to tiff stream\n\n```\nin.tiffsave_stream(stream, {compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to tiff stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9828,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9828"},"def":{"name":"tiffsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ntiffsave_target(target, **kwargs)\n"}},{"html_id":"tiffsave_target(target:Target,**kwargs)-instance-method","name":"tiffsave_target","doc":"Save image to tiff target\n\n```\nin.tiffsave_target(target, {compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to tiff target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9762,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9762"},"def":{"name":"tiffsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"tiffsave_target\", options, target)\n"}},{"html_id":"tilecache(**kwargs)-instance-method","name":"tilecache","doc":"Cache an image as a set of tiles\n\n```\n# out_ = in.tilecache({tile_width: Int32, tile_height: Int32, max_tiles: Int32, access: Enums::Access, threaded: Bool, persistent: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*max_tiles* : Int32 - Maximum number of tiles to cache\n\n*access* : Enums::Access - Expected access pattern\n\n*threaded* : Bool - Allow threaded access\n\n*persistent* : Bool - Keep cache between evaluations\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cache an image as a set of tiles

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9861,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9861"},"def":{"name":"tilecache","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"tilecache\", options)).as(Type)).as_image\n"}},{"html_id":"to_s(io:IO)-instance-method","name":"to_s","doc":"Appends a short String representation of this object\nwhich includes its class name and its object address.\n\n```\nclass Person\n def initialize(@name : String, @age : Int32)\n end\nend\n\nPerson.new(\"John\", 32).to_s # => #\n```","summary":"

    Appends a short String representation of this object which includes its class name and its object address.

    ","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/image.cr","line_number":1293,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1293"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"io << \"\""}},{"html_id":"transpose3d(**kwargs)-instance-method","name":"transpose3d","doc":"Transpose3d an image\n\n```\n# out_ = in.transpose3d({page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*page_height* : Int32 - Height of each input page\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transpose3d an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9927,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9927"},"def":{"name":"transpose3d","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"transpose3d\", options)).as(Type)).as_image\n"}},{"html_id":"unpremultiply(**kwargs)-instance-method","name":"unpremultiply","doc":"Unpremultiply image alpha\n\n```\n# out_ = in.unpremultiply({max_alpha: Float64, alpha_band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*max_alpha* : Float64 - Maximum value of alpha channel\n\n*alpha_band* : Int32 - Unpremultiply with this alpha\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpremultiply image alpha

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9953,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9953"},"def":{"name":"unpremultiply","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"unpremultiply\", options)).as(Type)).as_image\n"}},{"html_id":"vipssave(filename:String,**kwargs)-instance-method","name":"vipssave","doc":"Save image to file in vips format\n\n```\nin.vipssave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to file in vips format

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10097,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10097"},"def":{"name":"vipssave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"vipssave\", options, filename)\n"}},{"html_id":"vipssave_stream(stream:IO,**kwargs)-instance-method","name":"vipssave_stream","doc":"Save image to stream in vips format\n\n```\nin.vipssave_stream(stream, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to stream in vips format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10148,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10148"},"def":{"name":"vipssave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nvipssave_target(target, **kwargs)\n"}},{"html_id":"vipssave_target(target:Target,**kwargs)-instance-method","name":"vipssave_target","doc":"Save image to target in vips format\n\n```\nin.vipssave_target(target, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to target in vips format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10124,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10124"},"def":{"name":"vipssave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"vipssave_target\", options, target)\n"}},{"html_id":"webpsave(filename:String,**kwargs)-instance-method","name":"webpsave","doc":"Save as webp\n\n```\nin.webpsave(filename, {q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as webp

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10382,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10382"},"def":{"name":"webpsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"webpsave\", options, filename)\n"}},{"html_id":"webpsave_buffer(**kwargs)-instance-method","name":"webpsave_buffer","doc":"Save as webp\n\n```\n# buffer = in.webpsave_buffer({q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save as webp

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10433,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10433"},"def":{"name":"webpsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"webpsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"webpsave_mime(**kwargs)-instance-method","name":"webpsave_mime","doc":"Save image to webp mime\n\n```\nin.webpsave_mime({q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to webp mime

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10481,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10481"},"def":{"name":"webpsave_mime","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"webpsave_mime\", options)\n"}},{"html_id":"webpsave_stream(stream:IO,**kwargs)-instance-method","name":"webpsave_stream","doc":"Save as webp\n\n```\nin.webpsave_stream(stream, {q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save as webp

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10580,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10580"},"def":{"name":"webpsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nwebpsave_target(target, **kwargs)\n"}},{"html_id":"webpsave_target(target:Target,**kwargs)-instance-method","name":"webpsave_target","doc":"Save as webp\n\n```\nin.webpsave_target(target, {q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as webp

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10532,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10532"},"def":{"name":"webpsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"webpsave_target\", options, target)\n"}},{"html_id":"width:Int32-instance-method","name":"width","doc":"Image width in pixels","summary":"

    Image width in pixels

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10816,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10816"},"def":{"name":"width","return_type":"Int32","visibility":"Public","body":"(get(\"width\")).as_i32"}},{"html_id":"wrap(**kwargs)-instance-method","name":"wrap","doc":"Wrap image origin\n\n```\n# out_ = in.wrap({x: Int32, y: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*x* : Int32 - Left edge of input in output\n\n*y* : Int32 - Top edge of input in output\n\n\n**Returns**\n\nOutput image\n","summary":"

    Wrap image origin

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10637,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10637"},"def":{"name":"wrap","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"wrap\", options)).as(Type)).as_image\n"}},{"html_id":"write(other:Image)-instance-method","name":"write","doc":"Write an image to another image.\nThis function writes `self` to another image. Use something like\n`new_temp_file` to make an image that can be written to.","summary":"

    Write an image to another image.

    ","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"Image"}],"args_string":"(other : Image)","args_html":"(other : Image)","location":{"filename":"src/vips/image.cr","line_number":556,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L556"},"def":{"name":"write","args":[{"name":"other","external_name":"other","restriction":"Image"}],"visibility":"Public","body":"(LibVips.vips_image_write(self, other.to_unsafe)).tap do |ret|\n if ret == 0\n else\n raise(VipsException.new(\"unable to write to image\"))\n end\nend"}},{"html_id":"write_to_buffer(format:String,**kwargs)-instance-method","name":"write_to_buffer","doc":"Write this image to a memory buffer. This method can save images in any format supported by vips. Save options may be encoded in the\nfilename or given as a keyword argument. For example:\n\n```\nimage.write_to_file(\"fred.jpg[Q=95])\"\n```\n\nor equivalently:\n\n```\nimage.write_to_file(\"fred.jpg\", Q: 95)\n```\n\nThe full set of save options depend on the selected saver. Try\nsomething like:\n\n```\n$ vips jpegsave\n```\n\nto see all the available options for JPEG save.\n\nGet the `GType` of a metadata field. The result is 0 if no such field\nexists.","summary":"

    Write this image to a memory buffer.

    ","abstract":false,"args":[{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(format : String, **kwargs)","args_html":"(format : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":472,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L472"},"def":{"name":"write_to_buffer","args":[{"name":"format","external_name":"format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"buffer_options = String.new(LibVips.vips_filename_get_options(format))\nsaver = Pointer(UInt8).null\nif Vips.at_least_libvips?(8, 9)\n LibVips.vips_error_freeze\n saver = LibVips.vips_foreign_find_save_target(filename)\n LibVips.vips_error_thaw\nend\noptions = Optional.new(**kwargs)\noptions[\"string_options\"] = buffer_options\nif !saver.null?\n target = Target.new_to_memory\n call(String.new(saver), options, target)\n return target.blob\nend\nsaver = LibVips.vips_foreign_find_save_buffer(format)\nif saver.nil?\n raise(VipsException.new(\"unable to write to buffer\"))\nend\nreturn ((call(String.new(saver), options)).as(Type)).as_bytes\n"}},{"html_id":"write_to_bytes:Bytes-instance-method","name":"write_to_bytes","doc":"Write the image to a `Bytes`.\nA large area of memory is allocated, the image is rendered to that\nmemory array, and the array is returned as a buffer.\n\nFor example, if you have a 2x2 uchar image containing the bytes 1, 2,\n3, 4, read left-to-right, top-to-bottom, then:\n```\nbuf = image.write_to_memory # => return Bytes of size 4 containing values 1,2,3,4\n```\nReturns `Bytes`","summary":"

    Write the image to a Bytes.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":544,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L544"},"def":{"name":"write_to_bytes","return_type":"Bytes","visibility":"Public","body":"ptr, size = write_to_memory\nresult = Bytes.new(size)\nresult.to_unsafe.copy_from(ptr.as(::Pointer(UInt8)), size)\nVips.free(ptr)\nresult\n"}},{"html_id":"write_to_file(name:String,**kwargs)-instance-method","name":"write_to_file","doc":"Write this image to a file. This method can save images in any format supported by vips. Save options may be encoded in the\nfilename or given as a keyword argument. For example:\n\n```\nimage.write_to_file(\"fred.jpg[Q=95])\"\n```\n\nor equivalently:\n\n```\nimage.write_to_file(\"fred.jpg\", Q: 95)\n```\n\nThe full set of save options depend on the selected saver. Try\nsomething like:\n\n```\n$ vips jpegsave\n```\n\nto see all the available options for JPEG save.\n\nGet the `GType` of a metadata field. The result is 0 if no such field\nexists.","summary":"

    Write this image to a file.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String, **kwargs)","args_html":"(name : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":435,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L435"},"def":{"name":"write_to_file","args":[{"name":"name","external_name":"name","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"filename = String.new(LibVips.vips_filename_get_filename(name))\nfile_options = String.new(LibVips.vips_filename_get_options(name))\noperation_name = String.new((LibVips.vips_foreign_find_save(filename)) || Bytes.empty)\nif operation_name.blank?\n raise(VipsException.new(\"Unable to write to file #{filename}\"))\nend\noptions = Optional.new(**kwargs)\noptions[\"string_options\"] = file_options\ncall(operation_name, options, filename)\n"}},{"html_id":"write_to_memory:Tuple(Pointer(Void),LibC::SizeT)-instance-method","name":"write_to_memory","doc":"Write the image to memory as a simple, unformatted C-style array.\nNote: The caller is responsible for freeing this memory with `Vips.free`\nReturns {Void*, LibC::SizeT}","summary":"

    Write the image to memory as a simple, unformatted C-style array.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":528,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L528"},"def":{"name":"write_to_memory","return_type":"::Tuple(::Pointer(Void), LibC::SizeT)","visibility":"Public","body":"ptr = LibVips.vips_image_write_to_memory(self, out size)\nif ptr.null?\n raise(VipsException.new(\"unable to write to memory\"))\nend\n{ptr, size}\n"}},{"html_id":"write_to_target(stream:IO,format:String,**kwargs)-instance-method","name":"write_to_target","doc":"Write an image to a stream.\nThis behaves exactly as `write_to_file`, but the image is\nwritten to a *stream* rather than a file.\nNote: At least libvips 8.9 is needed.","summary":"

    Write an image to a stream.

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(stream : IO, format : String, **kwargs)","args_html":"(stream : IO, format : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":520,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L520"},"def":{"name":"write_to_target","args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"format","external_name":"format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nwrite_to_target(target, format, **kwargs)\n"}},{"html_id":"write_to_target(target:Target,format:String,**kwargs)-instance-method","name":"write_to_target","doc":"Write an image to a target.\nThis behaves exactly as `write_to_file`, but the image is\nwritten to a *target* rather than a file.\nNote: At least libvips 8.9 is needed.","summary":"

    Write an image to a target.

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"},{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(target : Target, format : String, **kwargs)","args_html":"(target : Target, format : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":504,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L504"},"def":{"name":"write_to_target","args":[{"name":"target","external_name":"target","restriction":"Target"},{"name":"format","external_name":"format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"buffer_options = String.new(LibVips.vips_filename_get_options(format))\noperation_name = String.new((LibVips.vips_foreign_find_save_target(format)) || Bytes.empty)\nif operation_name.blank?\n raise(VipsException.new(\"Unable to write to target\"))\nend\noptions = Optional.new(**kwargs)\noptions[\"string_options\"] = buffer_options\ncall(operation_name, options, target)\n"}},{"html_id":"xoffset:Int32-instance-method","name":"xoffset","doc":"Horizontal offset of origin","summary":"

    Horizontal offset of origin

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10846,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10846"},"def":{"name":"xoffset","return_type":"Int32","visibility":"Public","body":"(get(\"xoffset\")).as_i32"}},{"html_id":"xres:Float64-instance-method","name":"xres","doc":"Horizontal resolution in pixels/mm","summary":"

    Horizontal resolution in pixels/mm

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10856,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10856"},"def":{"name":"xres","return_type":"Float64","visibility":"Public","body":"(get(\"xres\")).as_f64"}},{"html_id":"xyz2cmyk-instance-method","name":"xyz2cmyk","doc":"Transform xyz to cmyk\n\n```\n# out_ = in.xyz2cmyk()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to cmyk

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10688,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10688"},"def":{"name":"xyz2cmyk","visibility":"Public","body":"((self.call(\"xyz2cmyk\")).as(Type)).as_image"}},{"html_id":"xyz2lab(**kwargs)-instance-method","name":"xyz2lab","doc":"Transform xyz to lab\n\n```\n# out_ = in.xyz2lab({temp: Array(Float64)})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*temp* : Array(Float64) - Colour temperature\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10710,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10710"},"def":{"name":"xyz2lab","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"xyz2lab\", options)).as(Type)).as_image\n"}},{"html_id":"xyz2scrgb-instance-method","name":"xyz2scrgb","doc":"Transform xyz to scrgb\n\n```\n# out_ = in.xyz2scrgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to scrgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10727,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10727"},"def":{"name":"xyz2scrgb","visibility":"Public","body":"((self.call(\"xyz2scrgb\")).as(Type)).as_image"}},{"html_id":"xyz2yxy-instance-method","name":"xyz2yxy","doc":"Transform xyz to yxy\n\n```\n# out_ = in.xyz2yxy()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to yxy

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10742,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10742"},"def":{"name":"xyz2yxy","visibility":"Public","body":"((self.call(\"xyz2yxy\")).as(Type)).as_image"}},{"html_id":"yoffset:Int32-instance-method","name":"yoffset","doc":"Vertical offset of origin","summary":"

    Vertical offset of origin

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10851,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10851"},"def":{"name":"yoffset","return_type":"Int32","visibility":"Public","body":"(get(\"yoffset\")).as_i32"}},{"html_id":"yres:Float64-instance-method","name":"yres","doc":"Vertical resolution in pixels/mm","summary":"

    Vertical resolution in pixels/mm

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10861,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10861"},"def":{"name":"yres","return_type":"Float64","visibility":"Public","body":"(get(\"yres\")).as_f64"}},{"html_id":"yxy2xyz-instance-method","name":"yxy2xyz","doc":"Transform yxy to xyz\n\n```\n# out_ = in.yxy2xyz()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform yxy to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10757,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10757"},"def":{"name":"yxy2xyz","visibility":"Public","body":"((self.call(\"yxy2xyz\")).as(Type)).as_image"}},{"html_id":"zoom(xfac:Int32,yfac:Int32)-instance-method","name":"zoom","doc":"Zoom an image\n\n```\n# out_ = input.zoom(xfac, yfac)\n```\n\n\nInput Parameters\n\n**Required**\n\n*xfac* : Int32 - Horizontal zoom factor\n\n*yfac* : Int32 - Vertical zoom factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Zoom an image

    ","abstract":false,"args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"args_string":"(xfac : Int32, yfac : Int32)","args_html":"(xfac : Int32, yfac : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":10811,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10811"},"def":{"name":"zoom","args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"zoom\", xfac, yfac)).as(Type)).as_image"}}],"types":[{"html_id":"vips/Vips/Image/EvalProc","path":"Vips/Image/EvalProc.html","kind":"alias","full_name":"Vips::Image::EvalProc","name":"EvalProc","abstract":false,"locations":[{"filename":"src/vips/image.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L5"}],"repository_name":"vips","program":false,"enum":false,"alias":true,"aliased":"Proc(Vips::Image, LibVips::VipsProgress, Nil)","aliased_html":"Vips::Image, LibVips::VipsProgress -> Nil","const":false,"namespace":{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},"doc":"Evaluation callback that can be used on the `Enums::Signal::PreEval`, `Enums::Signal::Eval`, and `Enums::Signal::PostEval` signals.\nSee `set_progress` to enable progress reporting on an image.","summary":"

    Evaluation callback that can be used on the Enums::Signal::PreEval, Enums::Signal::Eval, and Enums::Signal::PostEval signals.

    "}]},{"html_id":"vips/Vips/Interpolate","path":"Vips/Interpolate.html","kind":"class","full_name":"Vips::Interpolate","name":"Interpolate","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/interpolate.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/interpolate.cr#L3"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Make interpolators for operators like `Image#affine`","summary":"

    Make interpolators for operators like Image#affine

    ","class_methods":[{"html_id":"new_from_name(name:String)-class-method","name":"new_from_name","doc":"Make a new interpolator by name.\nMake a new interpolator from the libvips class nickname. For example:\n\n```\ninter = Vips::Interpolate.new_from_name(\"bicubic\")\n```\nYou can get a list of all supported interpolators from the command-line with\n\n```sh\nvips -l interpolate\n```\nSee for example `Image#affine`","summary":"

    Make a new interpolator by name.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/interpolate.cr","line_number":20,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/interpolate.cr#L20"},"def":{"name":"new_from_name","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"vi = LibVips.vips_interpolate_new(name)\nif vi.null?\n raise(VipsException.new(\"no such interpolator #{name}\"))\nend\nnew(vi)\n"}}]},{"html_id":"vips/Vips/Introspect","path":"Vips/Introspect.html","kind":"class","full_name":"Vips::Introspect","name":"Introspect","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/introspect.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L5"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Build introspection data for operations\nMake an operation, introspect it, and build a structure representing\neverything we know about it.","summary":"

    Build introspection data for operations Make an operation, introspect it, and build a structure representing everything we know about it.

    ","class_methods":[{"html_id":"get(operation_name:String)-class-method","name":"get","doc":"Get introspection data for a specified operation name.","summary":"

    Get introspection data for a specified operation name.

    ","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"args_string":"(operation_name : String)","args_html":"(operation_name : String)","location":{"filename":"src/vips/introspect.cr","line_number":113,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L113"},"def":{"name":"get","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"visibility":"Public","body":"__temp_49 = operation_name\n@@cache[__temp_49]? || (@@cache[__temp_49] = Introspect.new(operation_name))\n"}}],"instance_methods":[{"html_id":"get_args(op:Operation)-instance-method","name":"get_args","doc":"Get all arguments for an operation.","summary":"

    Get all arguments for an operation.

    ","abstract":false,"args":[{"name":"op","external_name":"op","restriction":"Operation"}],"args_string":"(op : Operation)","args_html":"(op : Operation)","location":{"filename":"src/vips/introspect.cr","line_number":73,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L73"},"def":{"name":"get_args","args":[{"name":"op","external_name":"op","restriction":"Operation"}],"visibility":"Public","body":"args = Array(Tuple(String, LibVips::VipsArgumentFlags)).new\nadd_arg = ->(name : String, flags : LibVips::VipsArgumentFlags) do\n name = name.gsub('-', '_')\n args << {name, flags}\n nil\nend\nif Vips.at_least_libvips?(8, 7)\n result = LibVips.vips_object_get_args(op.to_obj, out names, out flags_, out count)\n if result == 0\n else\n raise(VipsException.new(\"unable to get arguments for operation\"))\n end\n 0.upto(count - 1) do |i|\n flag = LibVips::VipsArgumentFlags.from_value(flags_[i])\n if (flag & LibVips::VipsArgumentFlags::Construct).value == 0\n next\n end\n name = String.new(names[i])\n add_arg.call(name, flag)\n end\nelse\n proc = LibVips::VipsArgumentMapFn.new do |_self, pspec, argcls, arginst, a, b|\n flag = argcls.value.flags\n if (flag & LibVips::VipsArgumentFlags::Construct).value == 0\n next Pointer(Void).null\n end\n name = String.new(pspec.value.name)\n handler = Box(Proc(String, LibVips::VipsArgumentFlags, Nil)).unbox(a)\n handler.call(name, flag)\n Pointer(Void).null\n end\n LibVips.vips_argument_map(op.to_obj, proc, Box.box(add_arg), Pointer(Void).null)\nend\nargs\n"}},{"html_id":"member_x:Argument|Nil-instance-method","name":"member_x","doc":"The first required input image or nil","summary":"

    The first required input image or nil

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L12"},"def":{"name":"member_x","return_type":"Argument | ::Nil","visibility":"Public","body":"if (value = @member_x).nil?\n ::raise(NilAssertionError.new(\"Vips::Introspect#member_x cannot be nil\"))\nelse\n value\nend"}},{"html_id":"member_x?:Argument|Nil|Nil-instance-method","name":"member_x?","doc":"The first required input image or nil","summary":"

    The first required input image or nil

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L12"},"def":{"name":"member_x?","return_type":"Argument | ::Nil | ::Nil","visibility":"Public","body":"@member_x"}},{"html_id":"mutable:Bool-instance-method","name":"mutable","doc":"A bool indicating if this operation is mutable","summary":"

    A bool indicating if this operation is mutable

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":15,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L15"},"def":{"name":"mutable","return_type":"Bool","visibility":"Public","body":"@mutable"}},{"html_id":"optional_input:Hash(String,Argument)-instance-method","name":"optional_input","doc":"The optional input for this operation","summary":"

    The optional input for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":21,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L21"},"def":{"name":"optional_input","return_type":"Hash(String, Argument)","visibility":"Public","body":"@optional_input"}},{"html_id":"optional_output:Hash(String,Argument)-instance-method","name":"optional_output","doc":"The optional output for this operation","summary":"

    The optional output for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L27"},"def":{"name":"optional_output","return_type":"Hash(String, Argument)","visibility":"Public","body":"@optional_output"}},{"html_id":"required_input:Array(Argument)-instance-method","name":"required_input","doc":"The required input for this operation","summary":"

    The required input for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L18"},"def":{"name":"required_input","return_type":"Array(Argument)","visibility":"Public","body":"@required_input"}},{"html_id":"required_output:Array(Argument)-instance-method","name":"required_output","doc":"The required output for this operation","summary":"

    The required output for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":24,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L24"},"def":{"name":"required_output","return_type":"Array(Argument)","visibility":"Public","body":"@required_output"}}],"types":[{"html_id":"vips/Vips/Introspect/Argument","path":"Vips/Introspect/Argument.html","kind":"struct","full_name":"Vips::Introspect::Argument","name":"Argument","abstract":false,"superclass":{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L9"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips/Introspect","kind":"class","full_name":"Vips::Introspect","name":"Introspect"},"doc":"An object structure that encapsulate the metadata\nrequired to specify arguments","summary":"

    An object structure that encapsulate the metadata required to specify arguments

    ","constructors":[{"html_id":"new(name:String,flags:LibVips::VipsArgumentFlags,type:LibVips::GType)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"flags","external_name":"flags","restriction":"LibVips::VipsArgumentFlags"},{"name":"type","external_name":"type","restriction":"LibVips::GType"}],"args_string":"(name : String, flags : LibVips::VipsArgumentFlags, type : LibVips::GType)","args_html":"(name : String, flags : LibVips::VipsArgumentFlags, type : LibVips::GType)","location":{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L9"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"flags","external_name":"flags","restriction":"LibVips::VipsArgumentFlags"},{"name":"type","external_name":"type","restriction":"LibVips::GType"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, flags, type)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L9"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@name.clone, @flags.clone, @type.clone)"}},{"html_id":"copy_with(name_name=@name,flags_flags=@flags,type_type=@type)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""},{"name":"_flags","default_value":"@flags","external_name":"flags","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""}],"args_string":"(name _name = @name, flags _flags = @flags, type _type = @type)","args_html":"(name _name = @name, flags _flags = @flags, type _type = @type)","location":{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L9"},"def":{"name":"copy_with","args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""},{"name":"_flags","default_value":"@flags","external_name":"flags","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""}],"visibility":"Public","body":"self.class.new(_name, _flags, _type)"}},{"html_id":"flags:LibVips::VipsArgumentFlags-instance-method","name":"flags","abstract":false,"def":{"name":"flags","return_type":"LibVips::VipsArgumentFlags","visibility":"Public","body":"@flags"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"type:LibVips::GType-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"LibVips::GType","visibility":"Public","body":"@type"}}]}]},{"html_id":"vips/Vips/MutableImage","path":"Vips/MutableImage.html","kind":"class","full_name":"Vips::MutableImage","name":"MutableImage","abstract":false,"superclass":{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},"ancestors":[{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/ext/mutableimage.cr","line_number":13,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L13"},{"filename":"src/vips/mutableimage.cr","line_number":4,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L4"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"[]=(index,value)-instance-method","name":"[]=","doc":"Use `[]` to set band elements on an image. For example\n\n```\nimg = image.mutate { |x| x[1] = green }\n```\nwill change band 1 ( the middle band)","summary":"

    Use [] to set band elements on an image.

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(index, value)","args_html":"(index, value)","location":{"filename":"src/vips/mutableimage.cr","line_number":44,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L44"},"def":{"name":"[]=","args":[{"name":"index","external_name":"index","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"nleft = Math.min(bands, Math.max(0, index))\nnright = Math.min(bands, Math.max(0, (bands - 1) - i))\noffset = bands - nright\nleft = nleft > 0 ? image.extract_band(0, n: nleft) : nil\nright = nright > 0 ? image.extract_band(offset, n: nright) : nil\nif left.nil?\n @image = value.bandjoin(right.not_nil!)\nelse\n if right.nil?\n @image = left.not_nil!.bandjoin(value)\n else\n image = left.not_nil!.bandjoin(value, right.not_nil!)\n end\nend\n"}},{"html_id":"draw_circle(ink:Array(Float64),cx:Int32,cy:Int32,radius:Int32,**kwargs):Nil-instance-method","name":"draw_circle","doc":"Draw a circle on an image\n\n```\n# image.mutate { |x| x.draw_circle(ink, cx, cy, radius, {fill: Bool} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*cx* : Int32 - Centre of draw_circle\n\n*cy* : Int32 - Centre of draw_circle\n\n*radius* : Int32 - Radius in pixels\n\n_Optionals_\n\n*fill* : Bool - Draw a solid object\n","summary":"

    Draw a circle on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"cx","external_name":"cx","restriction":"Int32"},{"name":"cy","external_name":"cy","restriction":"Int32"},{"name":"radius","external_name":"radius","restriction":"Int32"}],"args_string":"(ink : Array(Float64), cx : Int32, cy : Int32, radius : Int32, **kwargs) : Nil","args_html":"(ink : Array(Float64), cx : Int32, cy : Int32, radius : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":37,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L37"},"def":{"name":"draw_circle","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"cx","external_name":"cx","restriction":"Int32"},{"name":"cy","external_name":"cy","restriction":"Int32"},{"name":"radius","external_name":"radius","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_circle\", options, ink, cx, cy, radius)\n"}},{"html_id":"draw_flood(ink:Array(Float64),x:Int32,y:Int32,**kwargs):Nil-instance-method","name":"draw_flood","doc":"Flood-fill an area\n\n```\n# image.mutate { |x| x.draw_flood(ink, x, y, {test: Image, equal: Bool} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*x* : Int32 - DrawFlood start point\n\n*y* : Int32 - DrawFlood start point\n\n_Optionals_\n\n*test* : Image - Test pixels in this image\n\n*equal* : Bool - DrawFlood while equal to edge\n","summary":"

    Flood-fill an area

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(ink : Array(Float64), x : Int32, y : Int32, **kwargs) : Nil","args_html":"(ink : Array(Float64), x : Int32, y : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L65"},"def":{"name":"draw_flood","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_flood\", options, ink, x, y)\n"}},{"html_id":"draw_image(sub:Image,x:Int32,y:Int32,**kwargs):Nil-instance-method","name":"draw_image","doc":"Paint an image into another image\n\n```\n# image.mutate { |x| x.draw_image(sub, x, y, {mode: Enums::CombineMode} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*sub* : Image - Sub-image to insert into main image\n\n*x* : Int32 - Draw image here\n\n*y* : Int32 - Draw image here\n\n_Optionals_\n\n*mode* : Enums::CombineMode - Combining mode\n","summary":"

    Paint an image into another image

    ","abstract":false,"args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(sub : Image, x : Int32, y : Int32, **kwargs) : Nil","args_html":"(sub : Image, x : Int32, y : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":91,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L91"},"def":{"name":"draw_image","args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_image\", options, sub, x, y)\n"}},{"html_id":"draw_line(ink:Array(Float64),x1:Int32,y1:Int32,x2:Int32,y2:Int32):Nil-instance-method","name":"draw_line","doc":"Draw a line on an image\n\n```\n# image.mutate { |x| x.draw_line(ink, x1, y1, x2, y2 }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*x1* : Int32 - Start of draw_line\n\n*y1* : Int32 - Start of draw_line\n\n*x2* : Int32 - End of draw_line\n\n*y2* : Int32 - End of draw_line\n","summary":"

    Draw a line on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x1","external_name":"x1","restriction":"Int32"},{"name":"y1","external_name":"y1","restriction":"Int32"},{"name":"x2","external_name":"x2","restriction":"Int32"},{"name":"y2","external_name":"y2","restriction":"Int32"}],"args_string":"(ink : Array(Float64), x1 : Int32, y1 : Int32, x2 : Int32, y2 : Int32) : Nil","args_html":"(ink : Array(Float64), x1 : Int32, y1 : Int32, x2 : Int32, y2 : Int32) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":117,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L117"},"def":{"name":"draw_line","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x1","external_name":"x1","restriction":"Int32"},{"name":"y1","external_name":"y1","restriction":"Int32"},{"name":"x2","external_name":"x2","restriction":"Int32"},{"name":"y2","external_name":"y2","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"self.call(\"draw_line\", ink, x1, y1, x2, y2)"}},{"html_id":"draw_mask(ink:Array(Float64),mask:Image,x:Int32,y:Int32):Nil-instance-method","name":"draw_mask","doc":"Draw a mask on an image\n\n```\n# image.mutate { |x| x.draw_mask(ink, mask, x, y }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*mask* : Image - Mask of pixels to draw\n\n*x* : Int32 - Draw mask here\n\n*y* : Int32 - Draw mask here\n","summary":"

    Draw a mask on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(ink : Array(Float64), mask : Image, x : Int32, y : Int32) : Nil","args_html":"(ink : Array(Float64), mask : Image, x : Int32, y : Int32) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":140,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L140"},"def":{"name":"draw_mask","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"self.call(\"draw_mask\", ink, mask, x, y)"}},{"html_id":"draw_rect(ink:Array(Float64),left:Int32,top:Int32,width:Int32,height:Int32,**kwargs):Nil-instance-method","name":"draw_rect","doc":"Paint a rectangle on an image\n\n```\n# image.mutate { |x| x.draw_rect(ink, left, top, width, height, {fill: Bool} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*left* : Int32 - Rect to fill\n\n*top* : Int32 - Rect to fill\n\n*width* : Int32 - Rect to fill\n\n*height* : Int32 - Rect to fill\n\n_Optionals_\n\n*fill* : Bool - Draw a solid object\n","summary":"

    Paint a rectangle on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(ink : Array(Float64), left : Int32, top : Int32, width : Int32, height : Int32, **kwargs) : Nil","args_html":"(ink : Array(Float64), left : Int32, top : Int32, width : Int32, height : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":169,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L169"},"def":{"name":"draw_rect","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_rect\", options, ink, left, top, width, height)\n"}},{"html_id":"draw_smudge(left:Int32,top:Int32,width:Int32,height:Int32):Nil-instance-method","name":"draw_smudge","doc":"Blur a rectangle on an image\n\n```\n# image.mutate { |x| x.draw_smudge(left, top, width, height }\n```\n\n\nInput Parameters\n\n**Required**\n\n*left* : Int32 - Rect to fill\n\n*top* : Int32 - Rect to fill\n\n*width* : Int32 - Rect to fill\n\n*height* : Int32 - Rect to fill\n","summary":"

    Blur a rectangle on an image

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32) : Nil","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":193,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L193"},"def":{"name":"draw_smudge","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"self.call(\"draw_smudge\", left, top, width, height)"}},{"html_id":"mutate(&)-instance-method","name":"mutate","doc":"Mutate an image with a block. Inside the block, you can call methods\nwhich modify the image, such as setting or removing metadata, or\nmodifying pixels.\n\nFor example:\n\n```\nimage = image.mutate do |x|\n (0..1).step 0.01 do |i|\n x.draw_line([255.0], (x.width * i).to_i, 0, 0, (x.height * (1 - i)).to_i)\n end\nend\n```\n\nSee `MutableImage`.","summary":"

    Mutate an image with a block.

    ","abstract":false,"location":{"filename":"src/vips/mutableimage.cr","line_number":59,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L59"},"def":{"name":"mutate","yields":1,"block_arity":1,"visibility":"Public","body":"yield self\nimage\n"}},{"html_id":"remove(name:String)-instance-method","name":"remove","doc":"Remove a metadata item from an image.\nnamed metadata item is removed","summary":"

    Remove a metadata item from an image.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/mutableimage.cr","line_number":34,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L34"},"def":{"name":"remove","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"LibVips.vips_image_remove(self, name)"}},{"html_id":"set(gtype:LibVips::GType,name:String,value)-instance-method","name":"set","doc":"Sets the type and value of an item of metadata. Any old item of the\nsame name is removed. See `GValue` for types","summary":"

    Sets the type and value of an item of metadata.

    ","abstract":false,"args":[{"name":"gtype","external_name":"gtype","restriction":"LibVips::GType"},{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"args_string":"(gtype : LibVips::GType, name : String, value)","args_html":"(gtype : LibVips::GType, name : String, value)","location":{"filename":"src/vips/mutableimage.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L18"},"def":{"name":"set","args":[{"name":"gtype","external_name":"gtype","restriction":"LibVips::GType"},{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gv = GValue.new\ngv.set_type(gtype)\ngv.set(value)\nLibVips.vips_image_set(self, name, gv)\n"}},{"html_id":"set(name:String,value)-instance-method","name":"set","doc":"Sets the value of an item of metadata. The metadata item must already exists","summary":"

    Sets the value of an item of metadata.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"args_string":"(name : String, value)","args_html":"(name : String, value)","location":{"filename":"src/vips/mutableimage.cr","line_number":26,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L26"},"def":{"name":"set","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gtype = get_typeof(name)\nif gtype == 0\n raise(VipsException.new(\"metadata item #{name} does not exist - use the set(gtype,name,value) overload to create and set\"))\nend\nset(gtype, name, value)\n"}},{"html_id":"to_s(io:IO)-instance-method","name":"to_s","doc":"Appends a short String representation of this object\nwhich includes its class name and its object address.\n\n```\nclass Person\n def initialize(@name : String, @age : Int32)\n end\nend\n\nPerson.new(\"John\", 32).to_s # => #\n```","summary":"

    Appends a short String representation of this object which includes its class name and its object address.

    ","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/mutableimage.cr","line_number":64,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L64"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"io << \"\""}}]},{"html_id":"vips/Vips/Operation","path":"Vips/Operation.html","kind":"class","full_name":"Vips::Operation","name":"Operation","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/operation.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"class_methods":[{"html_id":"build(operation:Operation)-class-method","name":"build","abstract":false,"args":[{"name":"operation","external_name":"operation","restriction":"Operation"}],"args_string":"(operation : Operation)","args_html":"(operation : Operation)","location":{"filename":"src/vips/operation.cr","line_number":17,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L17"},"def":{"name":"build","args":[{"name":"operation","external_name":"operation","restriction":"Operation"}],"visibility":"Public","body":"op = LibVips.vips_cache_operation_build(operation)\nif op.null?\n LibVips.vips_object_unref_outputs(operation.to_obj)\n raise(VipsException.new(\"unable to call operation\"))\nend\nnew(op)\n"}},{"html_id":"call(operation_name:String,kwargs:Optional|Nil,match_image:Image|Nil,*args)-class-method","name":"call","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional | ::Nil"},{"name":"match_image","external_name":"match_image","restriction":"Image | ::Nil"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(operation_name : String, kwargs : Optional | Nil, match_image : Image | Nil, *args)","args_html":"(operation_name : String, kwargs : Optional | Nil, match_image : Image | Nil, *args)","location":{"filename":"src/vips/operation.cr","line_number":53,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L53"},"def":{"name":"call","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional | ::Nil"},{"name":"match_image","external_name":"match_image","restriction":"Image | ::Nil"},{"name":"args","external_name":"args","restriction":""}],"splat_index":3,"visibility":"Public","body":"str_options = kwargs.try do |__arg0|\n (__arg0.delete(\"string_options\")).try(&.as_s)\nend\nintro = Introspect.get(operation_name)\nif intro.required_input.size != args.size\n raise(VipsException.new(\"unable to call #{operation_name}: #{args.size} arguments given, but #{intro.required_input.size} required\"))\nend\nif (!intro.mutable) && match_image.is_a?(MutableImage)\n raise(VipsException.new(\"unable to call #{operation_name}: operation must be mutable\"))\nend\nop = new(operation_name)\nif (stropt = str_options) && (!(op.set(stropt)))\n raise(VipsException.new(\"unable to call #{operation_name}\"))\nend\nif (mi = match_image) && (mx = intro.member_x?)\n op.set(mx.type, mx.name, mi)\nend\nintro.required_input.each_with_index do |arg, i|\n op.set(arg.type, match_image, arg.name, args[i])\nend\nif (kw = kwargs)\n kw.each do |key, val|\n if ( arg = intro.optional_input[key]?)\n op.set(arg.type, match_image, key, val)\n else\n if !(intro.optional_output.has_key?(key))\n raise(VipsException.new(\"#{operation_name} does not support optional argument: #{key}\"))\n end\n end\n end\nend\nvop = build(op)\nresults = Array(Type).new(intro.required_output.size)\nintro.required_output.each do |oarg|\n results << (vop.get(oarg.name))\nend\nif (kw = kwargs)\n optarg = Optional.new\n kw.each do |k, _|\n if intro.optional_output.has_key?(k)\n optarg[k] = vop.get(k)\n end\n end\n if optarg.empty?\n else\n results << (Type.new(optarg))\n end\n LibVips.vips_object_unref_outputs(op.to_obj)\nend\nresults.size == 1 ? results.first : results\n"}},{"html_id":"call(operation_name:String,kwargs:Optional,*args)-class-method","name":"call","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(operation_name : String, kwargs : Optional, *args)","args_html":"(operation_name : String, kwargs : Optional, *args)","location":{"filename":"src/vips/operation.cr","line_number":117,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L117"},"def":{"name":"call","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional"},{"name":"args","external_name":"args","restriction":""}],"splat_index":2,"visibility":"Public","body":"call(operation_name, kwargs, nil, *args)"}},{"html_id":"call(operation_name:String,*args)-class-method","name":"call","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(operation_name : String, *args)","args_html":"(operation_name : String, *args)","location":{"filename":"src/vips/operation.cr","line_number":121,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L121"},"def":{"name":"call","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"splat_index":1,"visibility":"Public","body":"call(operation_name, nil, nil, *args)"}}],"constructors":[{"html_id":"new(operation_name:String)-class-method","name":"new","doc":"Creates a new `VisOperation` with the specified nickname\nYou'll need to set any arguments and build the operation before you can use it.","summary":"

    Creates a new VisOperation with the specified nickname You'll need to set any arguments and build the operation before you can use it.

    ","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"args_string":"(operation_name : String)","args_html":"(operation_name : String)","location":{"filename":"src/vips/operation.cr","line_number":11,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L11"},"def":{"name":"new","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"visibility":"Public","body":"op = LibVips.vips_operation_new(operation_name)\nif op.null?\n raise(VipsException.new(\"no such operation #{operation_name}\"))\nend\nnew(op)\n"}},{"html_id":"new(ophandle:Pointer(LibVips::VipsOperation))-class-method","name":"new","abstract":false,"args":[{"name":"ophandle","external_name":"ophandle","restriction":"::Pointer(::LibVips::VipsOperation)"}],"args_string":"(ophandle : Pointer(LibVips::VipsOperation))","args_html":"(ophandle : Pointer(LibVips::VipsOperation))","location":{"filename":"src/vips/operation.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L5"},"def":{"name":"new","args":[{"name":"ophandle","external_name":"ophandle","restriction":"::Pointer(::LibVips::VipsOperation)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(ophandle)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"flags-instance-method","name":"flags","doc":"Lookup the set of flags for this operation","summary":"

    Lookup the set of flags for this operation

    ","abstract":false,"location":{"filename":"src/vips/operation.cr","line_number":49,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L49"},"def":{"name":"flags","visibility":"Public","body":"LibVips.vips_operation_get_flags(self)"}},{"html_id":"to_obj:Pointer(LibVips::VipsObject)-instance-method","name":"to_obj","abstract":false,"location":{"filename":"src/vips/operation.cr","line_number":130,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L130"},"def":{"name":"to_obj","visibility":"Public","body":"@ohandle"}}]},{"html_id":"vips/Vips/Region","path":"Vips/Region.html","kind":"class","full_name":"Vips::Region","name":"Region","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/region.cr","line_number":6,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/region.cr#L6"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Wrap libvips VipsRegion object.\nA region is a small part of an image. You use regions to read pixels\nout of images without storing the entire image in memory.\nNote: At least libvips 8.8 is needed.","summary":"

    Wrap libvips VipsRegion object.

    ","constructors":[{"html_id":"new(image:Image)-class-method","name":"new","doc":"Make a region on an image","summary":"

    Make a region on an image

    ","abstract":false,"args":[{"name":"image","external_name":"image","restriction":"Image"}],"args_string":"(image : Image)","args_html":"(image : Image)","location":{"filename":"src/vips/region.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/region.cr#L12"},"def":{"name":"new","args":[{"name":"image","external_name":"image","restriction":"Image"}],"visibility":"Public","body":"vi = (LibVips.vips_region_new(image)).tap do |ret|\n if ret.null?\n raise(VipsException.new(\"unable to make region\"))\n end\nend\nnew(vi)\n"}}],"instance_methods":[{"html_id":"fetch(left:Int32,top:Int32,width:Int32,height:Int32):Bytes-instance-method","name":"fetch","doc":"Fetch an area of pixels.\n*left* Left edge of area to fetch.\n*top* Top edge of area to fetch.\n*width* Width of area to fetch.\n*height* Height of area to fetch.\nReturns `Bytes` filled with pixel data.","summary":"

    Fetch an area of pixels.

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32) : Bytes","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32) : Bytes","location":{"filename":"src/vips/region.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/region.cr#L35"},"def":{"name":"fetch","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"return_type":"Bytes","visibility":"Public","body":"ptr = (LibVips.vips_region_fetch(self, left, top, width, height, out size)).tap do |ret|\n if ret.null?\n raise(\"unable to fetch from region\")\n end\nend\nresult = Bytes.new(size)\nptr.copy_to(result.to_unsafe, size)\nVips.free(ptr.as(::Pointer(Void)))\nresult\n"}},{"html_id":"height:Int32-instance-method","name":"height","doc":"height of pixels held by region","summary":"

    height of pixels held by region

    ","abstract":false,"location":{"filename":"src/vips/region.cr","line_number":25,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/region.cr#L25"},"def":{"name":"height","return_type":"Int32","visibility":"Public","body":"LibVips.vips_region_height(self)"}},{"html_id":"width:Int32-instance-method","name":"width","doc":"width of pixels held by region","summary":"

    width of pixels held by region

    ","abstract":false,"location":{"filename":"src/vips/region.cr","line_number":20,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/region.cr#L20"},"def":{"name":"width","return_type":"Int32","visibility":"Public","body":"LibVips.vips_region_width(self)"}}]},{"html_id":"vips/Vips/Source","path":"Vips/Source.html","kind":"class","full_name":"Vips::Source","name":"Source","abstract":false,"superclass":{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},"ancestors":[{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/source.cr","line_number":7,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L7"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/SourceCustom","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Input connection. For example\n```\nsource = Vips::Source.new_from_file(\"k2.jpg\")\nimage = Vips::Image.new_from_source(source)\n```","summary":"

    Input connection.

    ","class_methods":[{"html_id":"new_from_descriptor(descriptor:Int)-class-method","name":"new_from_descriptor","doc":"Create a new source from a file descriptor. File descriptors are\nsmall integers, for example 0 is stdin.\n\nPass sources to `Image.new_from_source` to load images from\nthem.","summary":"

    Create a new source from a file descriptor.

    ","abstract":false,"args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int"}],"args_string":"(descriptor : Int)","args_html":"(descriptor : Int)","location":{"filename":"src/vips/source.cr","line_number":17,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L17"},"def":{"name":"new_from_descriptor","args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int"}],"visibility":"Public","body":"ptr = LibVips.vips_source_new_from_descriptor(descriptor)\nif ptr.null?\n raise(VipsException.new(\"can't create source from descriptor #{descriptor}\"))\nend\nnew(ptr)\n"}},{"html_id":"new_from_file(filename:String)-class-method","name":"new_from_file","doc":"Create a new source from a file name.\n\nPass sources to `Image.new_from_source` to load images from\nthem.","summary":"

    Create a new source from a file name.

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String)","args_html":"(filename : String)","location":{"filename":"src/vips/source.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L27"},"def":{"name":"new_from_file","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"visibility":"Public","body":"ptr = LibVips.vips_source_new_from_file(filename)\nif ptr.null?\n raise(VipsException.new(\"can't create source from filename #{filename}\"))\nend\nnew(ptr)\n"}},{"html_id":"new_from_memory(data:String|Bytes|IO)-class-method","name":"new_from_memory","doc":"Create a new source from an area of memory. Memory areas can be\nString, Bytes, or IO\n\nPass sources to `Image.new_from_source` to load images from\nthem.","summary":"

    Create a new source from an area of memory.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"}],"args_string":"(data : String | Bytes | IO)","args_html":"(data : String | Bytes | IO)","location":{"filename":"src/vips/source.cr","line_number":39,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L39"},"def":{"name":"new_from_memory","args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"}],"visibility":"Public","body":"buff = case data\nwhen String\n data.to_slice\nwhen IO\n data.gets_to_end.to_slice\nelse\n data\nend\nptr = LibVips.vips_source_new_from_memory(Box.box(buff), buff.bytesize)\nif ptr.null?\n raise(VipsException.new(\"can't create source from memory #{data}\"))\nend\n@@references << buff\nnew(ptr)\n"}}],"instance_methods":[{"html_id":"finalize-instance-method","name":"finalize","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":52,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L52"},"def":{"name":"finalize","visibility":"Public","body":"@@references.clear"}}]},{"html_id":"vips/Vips/SourceCustom","path":"Vips/SourceCustom.html","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom","abstract":false,"superclass":{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},"ancestors":[{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/source.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L79"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/SourceStream","kind":"class","full_name":"Vips::SourceStream","name":"SourceStream"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"A source you can attach action signal handlers to to implement\ncustom input types.\n\nFor example:\n\n```\nfile = File.open(\"some/file/name\", \"rb\")\nsource = Vips::SourceCustom.new\nsource.on_read { |slice| file.read(slice) }\nimage = Vips::Image.new_from_source(source)\n```\n\n(just an example -- of course in practice you'd use `Source#new_from_file`\nto read from a named file)","summary":"

    A source you can attach action signal handlers to to implement custom input types.

    ","constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":82,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L82"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"finalize-instance-method","name":"finalize","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":123,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L123"},"def":{"name":"finalize","visibility":"Public","body":"@@box.clear"}},{"html_id":"on_read(&block:Bytes->Int32)-instance-method","name":"on_read","doc":"The block is executed to read data from the source. The interface is\nexactly as IO::read, ie. it takes a slice and reads atmost `slice.size` and\nreturns a number of bytes read from the source, or 0 if the source is already\nat end of file.","summary":"

    The block is executed to read data from the source.

    ","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":93,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L93"},"def":{"name":"on_read","yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Bytes -> Int32)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"read\", LibVips::ReadCB.new do |_source, buff, size, data|\n if size <= 0\n next 0\n end\n callback = Box(typeof(block)).unbox(data)\n slice = Bytes.new(buff.as(::Pointer(UInt8)), size)\n callback.call(slice)\nend, boxed_data)\n"}},{"html_id":"on_seek(&block:Int64,IO::Seek->Int64)-instance-method","name":"on_seek","doc":"The block is executed to seek the source. The interface is exactly as\nIO::seek, ie. it should take an offset and whence, and return the\nnew read position.\n\nThis handler is optional -- if you do not attach a seek handler,\n`Source` will treat your source like an unseekable pipe object and\ndo extra caching.","summary":"

    The block is executed to seek the source.

    ","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":112,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L112"},"def":{"name":"on_seek","yields":2,"block_arity":2,"block_arg":{"name":"block","external_name":"block","restriction":"(Int64, IO::Seek -> Int64)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"seek\", LibVips::SeekCB.new do |_source, offset, whence, data|\n callback = Box(typeof(block)).unbox(data)\n ret = callback.call(offset, IO::Seek.from_value(whence))\n ret.to_i64\nend, boxed_data)\n"}}]},{"html_id":"vips/Vips/SourceStream","path":"Vips/SourceStream.html","kind":"class","full_name":"Vips::SourceStream","name":"SourceStream","abstract":false,"superclass":{"html_id":"vips/Vips/SourceCustom","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom"},"ancestors":[{"html_id":"vips/Vips/SourceCustom","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom"},{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/source.cr","line_number":129,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L129"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Source connected to a readable `IO`","summary":"

    Source connected to a readable IO

    ","class_methods":[{"html_id":"new_from_stream(io:IO)-class-method","name":"new_from_stream","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/source.cr","line_number":136,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L136"},"def":{"name":"new_from_stream","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"if io.closed?\n raise(VipsException.new(\"The stream should be readable\"))\nend\nnew(io)\n"}}]},{"html_id":"vips/Vips/Stats","path":"Vips/Stats.html","kind":"module","full_name":"Vips::Stats","name":"Stats","abstract":false,"locations":[{"filename":"src/vips/stats.cr","line_number":7,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/stats.cr#L7"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"vips/Vips/Stats","kind":"module","full_name":"Vips::Stats","name":"Stats"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"allocations:Int-instance-method","name":"allocations","doc":"Get the number of active allocations.","summary":"

    Get the number of active allocations.

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":11,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/stats.cr#L11"},"def":{"name":"allocations","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_allocs"}},{"html_id":"mem:Int-instance-method","name":"mem","doc":"Get the number of bytes currently allocated `vips_malloc()` and friends.\nlibvips uses this figure to decide when to start dropping cache.","summary":"

    Get the number of bytes currently allocated vips_malloc() and friends.

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":17,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/stats.cr#L17"},"def":{"name":"mem","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_mem"}},{"html_id":"mem_highwater:Int-instance-method","name":"mem_highwater","doc":"Returns the largest number of bytes simultaneously allocated via vips_tracked_malloc().\nHandy for estimating max memory requirements for a program.","summary":"

    Returns the largest number of bytes simultaneously allocated via vips_tracked_malloc().

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":23,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/stats.cr#L23"},"def":{"name":"mem_highwater","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_mem_highwater"}},{"html_id":"open_files:Int-instance-method","name":"open_files","doc":"Get the number of open files.","summary":"

    Get the number of open files.

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/stats.cr#L28"},"def":{"name":"open_files","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_files"}}]},{"html_id":"vips/Vips/Target","path":"Vips/Target.html","kind":"class","full_name":"Vips::Target","name":"Target","abstract":false,"superclass":{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},"ancestors":[{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/target.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L3"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/TargetCustom","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"an output connection","summary":"

    an output connection

    ","class_methods":[{"html_id":"new_to_descriptor(descriptor:Int32)-class-method","name":"new_to_descriptor","doc":"Make a new target to write to a file descriptor (a small integer).\n```\ntarget = Vips::Target.new_to_descriptor(STDOUT)\n```\nMakes a descriptor attached to `STDOUT`.\n\nYou can pass this target to (for example) `write_to_target`","summary":"

    Make a new target to write to a file descriptor (a small integer).

    ","abstract":false,"args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int32"}],"args_string":"(descriptor : Int32)","args_html":"(descriptor : Int32)","location":{"filename":"src/vips/target.cr","line_number":15,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L15"},"def":{"name":"new_to_descriptor","args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int32"}],"visibility":"Public","body":"ptr = (LibVips.vips_target_new_to_descriptor(descriptor)).tap do |ret|\n if ret.null?\n raise(VipsException.new(\"can't create output target to descriptor #{descriptor}\"))\n end\nend\nnew(ptr)\n"}},{"html_id":"new_to_file(filename:String)-class-method","name":"new_to_file","doc":"Make a new target to write to a file.\n```\ntarget = Vips::Target.new_to_file(\"myfile.jpg\")\n```\n\nYou can pass this target to (for example) `write_to_target`","summary":"

    Make a new target to write to a file.

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String)","args_html":"(filename : String)","location":{"filename":"src/vips/target.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L28"},"def":{"name":"new_to_file","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"visibility":"Public","body":"ptr = (LibVips.vips_target_new_to_file(filename)).tap do |ret|\n if ret.null?\n raise(VipsException.new(\"can't create output target to file #{filename}\"))\n end\nend\nnew(ptr)\n"}},{"html_id":"new_to_memory-class-method","name":"new_to_memory","doc":"Make a new target to write to an area of memory.\n```\ntarget = Vips::Target.new_to_memory\n```\n\nYou can pass this target to (for example) `write_to_target`\n\nAfter writing to target, fetch the bytes from the target object with:\n\n```\nbytes = target.blob\n```","summary":"

    Make a new target to write to an area of memory.

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L47"},"def":{"name":"new_to_memory","visibility":"Public","body":"ptr = LibVips.vips_target_new_to_memory.tap do |ret|\n if ret.null?\n raise(VipsException.new(\"can't create output target to memory\"))\n end\nend\nnew(ptr)\n"}}],"instance_methods":[{"html_id":"blob:Bytes-instance-method","name":"blob","doc":"Get the memory object held by the target when using `new_to_memory`","summary":"

    Get the memory object held by the target when using .new_to_memory

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":55,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L55"},"def":{"name":"blob","return_type":"Bytes","visibility":"Public","body":"(get(\"blob\")).as_bytes"}}]},{"html_id":"vips/Vips/TargetCustom","path":"Vips/TargetCustom.html","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom","abstract":false,"superclass":{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"},"ancestors":[{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/target.cr","line_number":66,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L66"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/TargetStream","kind":"class","full_name":"Vips::TargetStream","name":"TargetStream"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"`Target` you can connect handlers to implement behavior.","summary":"

    Target you can connect handlers to implement behavior.

    ","constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":69,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L69"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"on_finish(&block:->)-instance-method","name":"on_finish","doc":"The block is executed at the end of write. It should do any necessary\nfinishing action, such as closing a file or flushing IO","summary":"

    The block is executed at the end of write.

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":94,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L94"},"def":{"name":"on_finish","yields":0,"block_arity":0,"block_arg":{"name":"block","external_name":"block","restriction":"(->)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"finish\", LibVips::FinishCB.new do |_source, data|\n callback = Box(typeof(block)).unbox(data)\n callback.call\n @@box.delete(data)\n nil\nend, boxed_data)\n"}},{"html_id":"on_write(&block:Bytes->Int64)-instance-method","name":"on_write","doc":"The block is executed to write data to the target. The interface is\nexactly as IO::write, ie. it should write the bytes and return the\nnumber of bytes written.","summary":"

    The block is executed to write data to the target.

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L79"},"def":{"name":"on_write","yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Bytes -> Int64)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"write\", LibVips::WriteCB.new do |source, buff, size, data|\n if size <= 0\n next -1_i64\n end\n callback = Box(typeof(block)).unbox(data)\n slice = Bytes.new(buff, size)\n @@box.delete(data)\n callback.call(slice)\nend, boxed_data)\n"}}]},{"html_id":"vips/Vips/TargetStream","path":"Vips/TargetStream.html","kind":"class","full_name":"Vips::TargetStream","name":"TargetStream","abstract":false,"superclass":{"html_id":"vips/Vips/TargetCustom","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom"},"ancestors":[{"html_id":"vips/Vips/TargetCustom","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom"},{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/target.cr","line_number":108,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L108"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Target connected to a writeable `IO`","summary":"

    Target connected to a writeable IO

    ","class_methods":[{"html_id":"new_from_stream(io:IO)-class-method","name":"new_from_stream","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/target.cr","line_number":118,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L118"},"def":{"name":"new_from_stream","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"if io.closed?\n raise(VipsException.new(\"The stream should be write\"))\nend\nnew(io)\n"}}]},{"html_id":"vips/Vips/Type","path":"Vips/Type.html","kind":"struct","full_name":"Vips::Type","name":"Type","abstract":false,"superclass":{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vips.cr","line_number":226,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L226"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"constructors":[{"html_id":"new(value:Array(Float64)|Array(Int32)|Array(Vips::Image)|Bool|Float64|Int32|Slice(UInt8)|String|UInt64|Vips::GObject|Vips::Optional)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Array(::Float64) | ::Array(::Int32) | ::Array(::Vips::Image) | ::Bool | ::Float64 | ::Int32 | ::Slice(::UInt8) | ::String | ::UInt64 | ::Vips::GObject | ::Vips::Optional"}],"args_string":"(value : Array(Float64) | Array(Int32) | Array(Vips::Image) | Bool | Float64 | Int32 | Slice(UInt8) | String | UInt64 | Vips::GObject | Vips::Optional)","args_html":"(value : Array(Float64) | Array(Int32) | Array(Vips::Image) | Bool | Float64 | Int32 | Slice(UInt8) | String | UInt64 | Vips::GObject | Vips::Optional)","location":{"filename":"src/vips/vips.cr","line_number":232,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L232"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Array(::Float64) | ::Array(::Int32) | ::Array(::Vips::Image) | ::Bool | ::Float64 | ::Int32 | ::Slice(::UInt8) | ::String | ::UInt64 | ::Vips::GObject | ::Vips::Optional"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"as_a32-instance-method","name":"as_a32","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":261,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L261"},"def":{"name":"as_a32","visibility":"Public","body":"@value.as(Array(Int32))"}},{"html_id":"as_a64-instance-method","name":"as_a64","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":265,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L265"},"def":{"name":"as_a64","visibility":"Public","body":"@value.as(Array(Float64))"}},{"html_id":"as_aimg-instance-method","name":"as_aimg","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":273,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L273"},"def":{"name":"as_aimg","visibility":"Public","body":"@value.as(Array(Image))"}},{"html_id":"as_b-instance-method","name":"as_b","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":235,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L235"},"def":{"name":"as_b","visibility":"Public","body":"if @value.is_a?(Number)\n return as_i32 > 0\nend\n@value.as(Bool)\n"}},{"html_id":"as_bytes-instance-method","name":"as_bytes","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":257,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L257"},"def":{"name":"as_bytes","visibility":"Public","body":"@value.as(Bytes)"}},{"html_id":"as_enum(cls:Enum.class)-instance-method","name":"as_enum","abstract":false,"args":[{"name":"cls","external_name":"cls","restriction":"Enum.class"}],"args_string":"(cls : Enum.class)","args_html":"(cls : Enum.class)","location":{"filename":"src/vips/vips.cr","line_number":285,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L285"},"def":{"name":"as_enum","args":[{"name":"cls","external_name":"cls","restriction":"Enum.class"}],"visibility":"Public","body":"cls.from_value(as_i32)"}},{"html_id":"as_f64-instance-method","name":"as_f64","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":244,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L244"},"def":{"name":"as_f64","visibility":"Public","body":"@value.is_a?(Number) ? (@value.as(Number)).to_f : @value.as(Float64)"}},{"html_id":"as_h-instance-method","name":"as_h","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":277,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L277"},"def":{"name":"as_h","visibility":"Public","body":"@value.as(Optional)"}},{"html_id":"as_i32-instance-method","name":"as_i32","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":240,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L240"},"def":{"name":"as_i32","visibility":"Public","body":"@value.is_a?(Number) ? (@value.as(Number)).to_i : @value.as(Int32)"}},{"html_id":"as_image-instance-method","name":"as_image","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":269,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L269"},"def":{"name":"as_image","visibility":"Public","body":"@value.as(Image)"}},{"html_id":"as_o-instance-method","name":"as_o","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":281,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L281"},"def":{"name":"as_o","visibility":"Public","body":"@value.as(GObject)"}},{"html_id":"as_s-instance-method","name":"as_s","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":252,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L252"},"def":{"name":"as_s","visibility":"Public","body":"if @value.is_a?(String)\n return @value.as(String)\nend\n@value.to_s\n"}},{"html_id":"as_u64-instance-method","name":"as_u64","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":248,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L248"},"def":{"name":"as_u64","visibility":"Public","body":"@value.is_a?(Number) ? (@value.as(Number)).to_u64 : @value.as(UInt64)"}},{"html_id":"value:VALTYPE-instance-method","name":"value","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":230,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L230"},"def":{"name":"value","return_type":"VALTYPE","visibility":"Public","body":"@value"}}]},{"html_id":"vips/Vips/VipsBlob","path":"Vips/VipsBlob.html","kind":"class","full_name":"Vips::VipsBlob","name":"VipsBlob","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vipsblob.cr","line_number":4,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L4"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"constructors":[{"html_id":"new(handle:Pointer(LibVips::VipsBlob))-class-method","name":"new","abstract":false,"args":[{"name":"handle","external_name":"handle","restriction":"::Pointer(LibVips::VipsBlob)"}],"args_string":"(handle : Pointer(LibVips::VipsBlob))","args_html":"(handle : Pointer(LibVips::VipsBlob))","location":{"filename":"src/vips/vipsblob.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L5"},"def":{"name":"new","args":[{"name":"handle","external_name":"handle","restriction":"::Pointer(LibVips::VipsBlob)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(handle)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"get_data-instance-method","name":"get_data","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L9"},"def":{"name":"get_data","visibility":"Public","body":"data = LibVips.vips_blob_get(self, out size)\n{data, size}\n"}},{"html_id":"invalid?-instance-method","name":"invalid?","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L27"},"def":{"name":"invalid?","visibility":"Public","body":"@handle.null?"}},{"html_id":"length-instance-method","name":"length","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":14,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L14"},"def":{"name":"length","visibility":"Public","body":"@blob.area.length"}},{"html_id":"ref_count-instance-method","name":"ref_count","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L18"},"def":{"name":"ref_count","visibility":"Public","body":"@blob.area.count"}},{"html_id":"release-instance-method","name":"release","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":22,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L22"},"def":{"name":"release","visibility":"Public","body":"if @handle.null?\n return\nend\nLibVips.vips_area_unref(Box.box(@blob.area))\n"}}]},{"html_id":"vips/Vips/VipsException","path":"Vips/VipsException.html","kind":"class","full_name":"Vips::VipsException","name":"VipsException","abstract":false,"superclass":{"html_id":"vips/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"vips/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vips.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"constructors":[{"html_id":"new(message)-class-method","name":"new","abstract":false,"args":[{"name":"message","external_name":"message","restriction":""}],"args_string":"(message)","args_html":"(message)","location":{"filename":"src/vips/vips.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L3"},"def":{"name":"new","args":[{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"vips/Vips/VipsObject","path":"Vips/VipsObject.html","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject","abstract":false,"superclass":{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},"ancestors":[{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vipsobject.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},{"html_id":"vips/Vips/Interpolate","kind":"class","full_name":"Vips::Interpolate","name":"Interpolate"},{"html_id":"vips/Vips/Operation","kind":"class","full_name":"Vips::Operation","name":"Operation"},{"html_id":"vips/Vips/Region","kind":"class","full_name":"Vips::Region","name":"Region"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"get(name:String)-instance-method","name":"get","doc":"Returns a GObject property","summary":"

    Returns a GObject property

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":22,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L22"},"def":{"name":"get","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"pspec = get_pspec(name)\nif pspec.nil?\n raise(VipsException.new(\"Property not found\"))\nend\ngtype = pspec.value_type\ngv = GValue.new\ngv.set_type(gtype)\nget(name, gv)\n"}},{"html_id":"get_blurb(name:String)-instance-method","name":"get_blurb","doc":"Get the blurb for a GObject property.","summary":"

    Get the blurb for a GObject property.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":58,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L58"},"def":{"name":"get_blurb","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"pspec = get_pspec(name)\nif pspec.nil?\n return \"\"\nend\nString.new(LibVips.g_param_spec_get_blurb(pspec))\n"}},{"html_id":"get_description-instance-method","name":"get_description","doc":"Get the description of a GObject.","summary":"

    Get the description of a GObject.

    ","abstract":false,"location":{"filename":"src/vips/vipsobject.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L65"},"def":{"name":"get_description","visibility":"Public","body":"String.new(LibVips.vips_object_get_description(@ohandle))"}},{"html_id":"get_pspec(name:String):LibVips::GParamSpec|Nil-instance-method","name":"get_pspec","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String) : LibVips::GParamSpec | Nil","args_html":"(name : String) : LibVips::GParamSpec | Nil","location":{"filename":"src/vips/vipsobject.cr","line_number":16,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L16"},"def":{"name":"get_pspec","args":[{"name":"name","external_name":"name","restriction":"String"}],"return_type":"LibVips::GParamSpec | ::Nil","visibility":"Public","body":"ret = LibVips.vips_object_get_argument(@ohandle, name, out pspec, out _, out _)\nret != 0 ? nil : pspec.value\n"}},{"html_id":"get_typeof(name:String)-instance-method","name":"get_typeof","doc":"Get the GType of a GObject property","summary":"

    Get the GType of a GObject property

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L47"},"def":{"name":"get_typeof","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"if pspec = get_pspec(name)\n pspec.value_type\nelse\n Vips.clear_error\n nil\nend"}},{"html_id":"post_close(&block:->)-instance-method","name":"post_close","abstract":false,"location":{"filename":"src/vips/vipsobject.cr","line_number":7,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L7"},"def":{"name":"post_close","yields":0,"block_arity":0,"block_arg":{"name":"block","external_name":"block","restriction":"(->)"},"visibility":"Public","body":"signal_connect(\"postclose\", block)"}},{"html_id":"print_all-instance-method","name":"print_all","doc":"Print a table of all active libvips objects. Handy for debugging.","summary":"

    Print a table of all active libvips objects.

    ","abstract":false,"location":{"filename":"src/vips/vipsobject.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L12"},"def":{"name":"print_all","visibility":"Public","body":"LibVips.vips_object_print_all"}},{"html_id":"set(gtype,name,value)-instance-method","name":"set","doc":"Set a GObject property. Value is converted to the property type, if possible.","summary":"

    Set a GObject property.

    ","abstract":false,"args":[{"name":"gtype","external_name":"gtype","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(gtype, name, value)","args_html":"(gtype, name, value)","location":{"filename":"src/vips/vipsobject.cr","line_number":33,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L33"},"def":{"name":"set","args":[{"name":"gtype","external_name":"gtype","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gv = GValue.new\ngv.set_type(gtype)\ngv.set(value)\nset(name, gv)\n"}},{"html_id":"set(options:String)-instance-method","name":"set","doc":"Set a series of properties using a String","summary":"

    Set a series of properties using a String

    ","abstract":false,"args":[{"name":"options","external_name":"options","restriction":"String"}],"args_string":"(options : String)","args_html":"(options : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":42,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L42"},"def":{"name":"set","args":[{"name":"options","external_name":"options","restriction":"String"}],"visibility":"Public","body":"(LibVips.vips_object_set_from_string(@ohandle, options)) == 0"}}]}]}]}} \ No newline at end of file diff --git a/search-index.js b/search-index.js index f627b5e..ef44ae1 100644 --- a/search-index.js +++ b/search-index.js @@ -1 +1 @@ -crystal_doc_search_index_callback({"repository_name":"vips","body":"# CrystalVips\n\n[![crystal-vips CI](https://github.com/naqvis/crystal-vips/actions/workflows/ci.yml/badge.svg)](https://github.com/naqvis/crystal-vips/actions/workflows/ci.yml)\n[![Latest release](https://img.shields.io/github/release/naqvis/crystal-vips.svg)](https://github.com/naqvis/crystal-vips/releases)\n[![Docs](https://img.shields.io/badge/docs-available-brightgreen.svg)](https://naqvis.github.io/crystal-vips/)\n\nProvides Crystal language interface to the [libvips](https://github.com/libvips/libvips) image processing library.\nPrograms that use `CrystalVips` don't manipulate images directly, instead they create pipelines of image processing operations starting from a source image. When the pipe is connected to a destination, the whole pipeline executes at once and in parallel, streaming the image from source to destination in a set of small fragments.\n\nBecause `CrystalVips` is parallel, its' quick, and because it doesn't need to keep entire images in memory, its light. For example, the libvips speed and memory use benchmark:\n\n[https://github.com/libvips/libvips/wiki/Speed-and-memory-use](https://github.com/libvips/libvips/wiki/Speed-and-memory-use)\n\n## Pre-requisites\n\nYou need to [install the libvips\nlibrary](https://www.libvips.org/install.html). It's in the linux package managers, homebrew and MacPorts, and there are Windows binaries on the vips website. For example, on Debian:\n\n```\nsudo apt-get install --no-install-recommends libvips42\n```\n\n(`--no-install-recommends` stops Debian installing a *lot* of extra packages)\n\nOr macOS:\n\n```\nbrew install vips\n```\n\n## Installation\n\n1. Add the dependency to your `shard.yml`:\n\n ```yaml\n dependencies:\n vips:\n github: naqvis/crystal-vips\n ```\n\n2. Run `shards install`\n\n## Usage\n\n```crystal\nrequire \"vips\"\n\nim = Vips::Image.new_from_file(\"image.jpg\")\n\n# put im at position (100, 100) in a 3000 x 3000 pixel image, \n# make the other pixels in the image by mirroring im up / down / \n# left / right, see\n# https://libvips.github.io/libvips/API/current/libvips-conversion.html#vips-embed\nim = im.embed(100, 100, 3000, 3000, extend: Vips::Enums::Extend::Mirror)\n\n# multiply the green (middle) band by 2, leave the other two alone\nim *= [1, 2, 1]\n\n# make an image from an array constant, convolve with it\nmask = Vips::Image.new_from_array([\n [-1, -1, -1],\n [-1, 16, -1],\n [-1, -1, -1]], 8)\nim = im.conv(mask, precision: Vips::Enums::Precision::Integer)\n\n# finally, write the result back to a file on disk\nim.write_to_file(\"output.jpg\")\n```\n\nRefer to [example](example) folder for more samples\n\n## Development\n\nTo run all tests:\n\n```\ncrystal spec\n```\n\n# Getting more help\n\nThe libvips website has a handy table of [all the libvips\noperators](http://libvips.github.io/libvips/API/current/func-list.html). Each\none links to the main API docs so you can see what you need to pass to it.\n\nA simple way to see the arguments for an operation is to try running it\nfrom the command-line. For example:\n\n```bash\n$ vips embed\nembed an image in a larger image\nusage:\n embed in out x y width height\nwhere:\n in - Input image, input VipsImage\n out - Output image, output VipsImage\n x - Left edge of input in output, input gint\n\t\t\tdefault: 0\n\t\t\tmin: -1000000000, max: 1000000000\n y - Top edge of input in output, input gint\n\t\t\tdefault: 0\n\t\t\tmin: -1000000000, max: 1000000000\n width - Image width in pixels, input gint\n\t\t\tdefault: 1\n\t\t\tmin: 1, max: 1000000000\n height - Image height in pixels, input gint\n\t\t\tdefault: 1\n\t\t\tmin: 1, max: 1000000000\noptional arguments:\n extend - How to generate the extra pixels, input VipsExtend\n\t\t\tdefault: black\n\t\t\tallowed: black, copy, repeat, mirror, white, background\n background - Color for background pixels, input VipsArrayDouble\noperation flags: sequential \n```\n\n## Contributing\n\n1. Fork it ()\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n\n## Contributors\n\n- [Ali Naqvi](https://github.com/naqvis) - creator and maintainer\n","program":{"html_id":"vips/toplevel","path":"toplevel.html","kind":"module","full_name":"Top Level Namespace","name":"Top Level Namespace","abstract":false,"locations":[],"repository_name":"vips","program":true,"enum":false,"alias":false,"const":false,"types":[{"html_id":"vips/Vips","path":"Vips.html","kind":"module","full_name":"Vips","name":"Vips","abstract":false,"locations":[{"filename":"src/vips.cr","line_number":25,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips.cr#L25"},{"filename":"src/vips/connection.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/connection.cr#L1"},{"filename":"src/vips/ext/image.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L12"},{"filename":"src/vips/ext/mutableimage.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L12"},{"filename":"src/vips/gobject.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L1"},{"filename":"src/vips/gvalue.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L1"},{"filename":"src/vips/image.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1"},{"filename":"src/vips/interpolate.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/interpolate.cr#L1"},{"filename":"src/vips/introspect.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L1"},{"filename":"src/vips/mutableimage.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L3"},{"filename":"src/vips/operation.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L1"},{"filename":"src/vips/region.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/region.cr#L1"},{"filename":"src/vips/source.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L1"},{"filename":"src/vips/stats.cr","line_number":6,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/stats.cr#L6"},{"filename":"src/vips/target.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L1"},{"filename":"src/vips/vips.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L1"},{"filename":"src/vips/vipsblob.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L3"},{"filename":"src/vips/vipsobject.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L1"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"VERSION","name":"VERSION","value":"{{ (`shards version \\\"/home/runner/work/crystal-vips/crystal-vips/src\\\"`).chomp.stringify }}"}],"doc":"Provides Crystal language interface to the [libvips](https://github.com/libvips/libvips) image processing library.\nPrograms that use libvips don't manipulate images directly, instead they create pipelines of image processing\noperations starting from a source image. When the pipe is connected to a destination, the whole pipeline executes\nat once and in parallel, streaming the image from source to destination in a set of small fragments.","summary":"

    Provides Crystal language interface to the libvips image processing library.

    ","class_methods":[{"html_id":"at_least_libvips?(x:Int,y:Int,z=0)-class-method","name":"at_least_libvips?","doc":"Is this at least libvips major.minor.[.patch]?","summary":"

    Is this at least libvips major.minor.[.patch]?

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int"},{"name":"y","external_name":"y","restriction":"Int"},{"name":"z","default_value":"0","external_name":"z","restriction":""}],"args_string":"(x : Int, y : Int, z = 0)","args_html":"(x : Int, y : Int, z = 0)","location":{"filename":"src/vips/vips.cr","line_number":87,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L87"},"def":{"name":"at_least_libvips?","args":[{"name":"x","external_name":"x","restriction":"Int"},{"name":"y","external_name":"y","restriction":"Int"},{"name":"z","default_value":"0","external_name":"z","restriction":""}],"visibility":"Public","body":"major = version(0)\nminor = version(1)\npatch = version(2)\n(major > x || ((major == x) && minor > y)) || (((major == x) && (minor == y)) && patch >= z)\n"}},{"html_id":"clear_error-class-method","name":"clear_error","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":186,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L186"},"def":{"name":"clear_error","visibility":"Public","body":"LibVips.vips_error_clear"}},{"html_id":"concurrency-class-method","name":"concurrency","doc":"Returns the number of worker threads that vips uses for image evaluation.","summary":"

    Returns the number of worker threads that vips uses for image evaluation.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L35"},"def":{"name":"concurrency","visibility":"Public","body":"LibVips.vips_concurrency_get"}},{"html_id":"concurrency=(value:Int)-class-method","name":"concurrency=","doc":"Set the size of the pools of worker threads vips uses for image evaluation.","summary":"

    Set the size of the pools of worker threads vips uses for image evaluation.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int"}],"args_string":"(value : Int)","args_html":"(value : Int)","location":{"filename":"src/vips/vips.cr","line_number":40,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L40"},"def":{"name":"concurrency=","args":[{"name":"value","external_name":"value","restriction":"Int"}],"visibility":"Public","body":"if value > 0\nelse\n value = default_concurrency\nend\nLibVips.vips_concurrency_set(value)\n"}},{"html_id":"default_concurrency:Int32-class-method","name":"default_concurrency","doc":"Track the original default concurrency so we can reset to it.","summary":"

    Track the original default concurrency so we can reset to it.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":206,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L206"},"def":{"name":"default_concurrency","return_type":"Int32","visibility":"Public","body":"if (value = @@default_concurrency).nil?\n @@default_concurrency = (LibVips.vips_concurrency_get)\nelse\n value\nend"}},{"html_id":"enum_values(type:LibC::ULong)-class-method","name":"enum_values","doc":"Get all values for a enum (GType).","summary":"

    Get all values for a enum (GType).

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":156,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L156"},"def":{"name":"enum_values","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"typecls = LibVips.g_type_class_ref(type)\nvalues = Hash(String, Int32).new\nif typecls.null?\n return values\nend\nenumcls = (typecls.as(Pointer(LibVips::GEnumClass))).value\nptr = enumcls.values.as(Pointer(LibVips::GEnumValue))\n0.upto(enumcls.n_values - 2) do |i|\n enumval = ptr[i]\n values[String.new(enumval.value_nick)] = enumval.value\nend\nvalues\n"}},{"html_id":"free(mem:Pointer(Void))-class-method","name":"free","doc":"Frees the memory pointed to by `mem`","summary":"

    Frees the memory pointed to by mem

    ","abstract":false,"args":[{"name":"mem","external_name":"mem","restriction":"::Pointer(Void)"}],"args_string":"(mem : Pointer(Void))","args_html":"(mem : Pointer(Void))","location":{"filename":"src/vips/vips.cr","line_number":172,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L172"},"def":{"name":"free","args":[{"name":"mem","external_name":"mem","restriction":"::Pointer(Void)"}],"visibility":"Public","body":"LibVips.g_free(mem)"}},{"html_id":"fundamental_type(type:LibC::ULong)-class-method","name":"fundamental_type","doc":"Extract the fundamental type ID portion.","summary":"

    Extract the fundamental type ID portion.

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":182,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L182"},"def":{"name":"fundamental_type","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"LibVips.g_type_fundamental(type)"}},{"html_id":"get_enums-class-method","name":"get_enums","doc":"Get a list of enums available within the libvips library.","summary":"

    Get a list of enums available within the libvips library.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":149,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L149"},"def":{"name":"get_enums","visibility":"Public","body":"enums = Array(String).new\nLibVips.vips_type_map(type_from_name(\"GEnum\"), ->enum_cb, Box.box(enums), nil)\nenums.sort!\n"}},{"html_id":"get_operations-class-method","name":"get_operations","doc":"Get a list of operations available within the libvips library.\nThis can be useful for documentation generators","summary":"

    Get a list of operations available within the libvips library.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":142,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L142"},"def":{"name":"get_operations","visibility":"Public","body":"nicknames = Array(String).new\nLibVips.vips_type_map(type_from_name(\"VipsOperation\"), ->ops_cb, Box.box(nicknames), nil)\nnicknames.uniq!.sort!\n"}},{"html_id":"get_suffixes-class-method","name":"get_suffixes","doc":"Get a list of all the filename suffixes supported by libvips\nNote: At least libvips 8.8 is needed","summary":"

    Get a list of all the filename suffixes supported by libvips Note: At least libvips 8.8 is needed

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":98,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L98"},"def":{"name":"get_suffixes","visibility":"Public","body":"names = [] of String\nif at_least_libvips?(8, 8)\nelse\n return names\nend\nptr = LibVips.vips_foreign_get_suffixes\ncount = 0\nwhile (strptr = (ptr + count).value)\n names << (String.new(strptr))\n LibVips.g_free(strptr)\n count = count + 1\nend\nLibVips.g_free(ptr)\nnames.uniq!.sort!\n"}},{"html_id":"init-class-method","name":"init","doc":"Starts up the world of VIPS.\nthis function is automatically called","summary":"

    Starts up the world of VIPS.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":16,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L16"},"def":{"name":"init","visibility":"Public","body":"@@initialized || (@@initialized = (LibVips.vips_init(\"CrystalVips\")) == 0)\nif @@initialized\nelse\n raise(VipsException.new(\"unable to initialize libvips\"))\nend\n@@initialized\n"}},{"html_id":"initialized?-class-method","name":"initialized?","doc":"Flag to tell if libvips has been initialized or not.\ninitialization will happen at the load of module and you should only call\n`Vips#init` if auto initialization failed.","summary":"

    Flag to tell if libvips has been initialized or not.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":193,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L193"},"def":{"name":"initialized?","visibility":"Public","body":"@@initialized"}},{"html_id":"leak=(leak)-class-method","name":"leak=","doc":"Enable or disable libvips leak checking.\nWhen enabled, libvips will check for object and area leaks on exit.\nEnabling this option will make libvips run slightly more slowly.","summary":"

    Enable or disable libvips leak checking.

    ","abstract":false,"args":[{"name":"leak","external_name":"leak","restriction":""}],"args_string":"(leak)","args_html":"(leak)","location":{"filename":"src/vips/vips.cr","line_number":198,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L198"},"def":{"name":"leak=","args":[{"name":"leak","external_name":"leak","restriction":""}],"visibility":"Public","body":"@@leak = leak"}},{"html_id":"leak?-class-method","name":"leak?","doc":"Enable or disable libvips leak checking.\nWhen enabled, libvips will check for object and area leaks on exit.\nEnabling this option will make libvips run slightly more slowly.","summary":"

    Enable or disable libvips leak checking.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":198,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L198"},"def":{"name":"leak?","visibility":"Public","body":"@@leak"}},{"html_id":"nickname(type:LibC::ULong)-class-method","name":"nickname","doc":"Return the nickname for a GType.","summary":"

    Return the nickname for a GType.

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":136,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L136"},"def":{"name":"nickname","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"String.new((LibVips.vips_nickname_find(type)) || Bytes.empty)"}},{"html_id":"profile(profile)-class-method","name":"profile","abstract":false,"args":[{"name":"profile","external_name":"profile","restriction":""}],"args_string":"(profile)","args_html":"(profile)","location":{"filename":"src/vips/vips.cr","line_number":30,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L30"},"def":{"name":"profile","args":[{"name":"profile","external_name":"profile","restriction":""}],"visibility":"Public","body":"@@profile = profile\nLibVips.vips_profile_set(@@profile)\n"}},{"html_id":"profile=(profile)-class-method","name":"profile=","doc":"Enable or disable libvips profile recording.\nIf set, vips will record profiling information, and dump it on program\nexit. These profiles can be analyzed with the `vipsprofile` program.","summary":"

    Enable or disable libvips profile recording.

    ","abstract":false,"args":[{"name":"profile","external_name":"profile","restriction":""}],"args_string":"(profile)","args_html":"(profile)","location":{"filename":"src/vips/vips.cr","line_number":203,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L203"},"def":{"name":"profile=","args":[{"name":"profile","external_name":"profile","restriction":""}],"visibility":"Public","body":"@@profile = profile"}},{"html_id":"profile?-class-method","name":"profile?","doc":"Enable or disable libvips profile recording.\nIf set, vips will record profiling information, and dump it on program\nexit. These profiles can be analyzed with the `vipsprofile` program.","summary":"

    Enable or disable libvips profile recording.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":203,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L203"},"def":{"name":"profile?","visibility":"Public","body":"@@profile"}},{"html_id":"report_leaks-class-method","name":"report_leaks","doc":"Reports leaks (hopefully there are none) it also tracks and reports peak memory use.","summary":"

    Reports leaks (hopefully there are none) it also tracks and reports peak memory use.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":114,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L114"},"def":{"name":"report_leaks","visibility":"Public","body":"LibVips.vips_object_print_all\nputs(\"memory: #{Stats.allocations} allocations, #{Stats.mem} bytes\")\nputs(\"files: #{Stats.open_files} open\")\nputs(\"memory: high-water mark: #{Stats.mem_highwater}\")\nerrbuf = String.new(LibVips.vips_error_buffer)\nif errbuf.blank?\nelse\n puts(\"error buffer: #{errbuf}\")\nend\n"}},{"html_id":"shutdown-class-method","name":"shutdown","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":22,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L22"},"def":{"name":"shutdown","visibility":"Public","body":"LibVips.vips_shutdown"}},{"html_id":"type_from_name(nickname:String)-class-method","name":"type_from_name","doc":"Return the GType for a name.","summary":"

    Return the GType for a name.

    ","abstract":false,"args":[{"name":"nickname","external_name":"nickname","restriction":"String"}],"args_string":"(nickname : String)","args_html":"(nickname : String)","location":{"filename":"src/vips/vips.cr","line_number":177,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L177"},"def":{"name":"type_from_name","args":[{"name":"nickname","external_name":"nickname","restriction":"String"}],"visibility":"Public","body":"LibVips.g_type_from_name(nickname)"}},{"html_id":"typefind(basename:String,nickname:String)-class-method","name":"typefind","doc":"Get the GType for a name.\nLooks up the GType for a nickname. Types below basename in the type\nhierarchy are searched.","summary":"

    Get the GType for a name.

    ","abstract":false,"args":[{"name":"basename","external_name":"basename","restriction":"String"},{"name":"nickname","external_name":"nickname","restriction":"String"}],"args_string":"(basename : String, nickname : String)","args_html":"(basename : String, nickname : String)","location":{"filename":"src/vips/vips.cr","line_number":126,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L126"},"def":{"name":"typefind","args":[{"name":"basename","external_name":"basename","restriction":"String"},{"name":"nickname","external_name":"nickname","restriction":"String"}],"visibility":"Public","body":"LibVips.vips_type_find(basename, nickname)"}},{"html_id":"typename(type:LibC::ULong)-class-method","name":"typename","doc":"Returns the name for a GType","summary":"

    Returns the name for a GType

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":131,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L131"},"def":{"name":"typename","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"String.new((LibVips.g_type_name(type)) || Bytes.empty)"}},{"html_id":"vector=(val:Bool)-class-method","name":"vector=","doc":"Enable SIMD and the run-time compiler.\nThis can give a nice speed-up, but can also be unstable on\nsome systems or with some versions of the run-time compiler.","summary":"

    Enable SIMD and the run-time compiler.

    ","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Bool"}],"args_string":"(val : Bool)","args_html":"(val : Bool)","location":{"filename":"src/vips/vips.cr","line_number":82,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L82"},"def":{"name":"vector=","args":[{"name":"val","external_name":"val","restriction":"Bool"}],"visibility":"Public","body":"LibVips.vips_vector_set_enabled(val)"}},{"html_id":"vector?-class-method","name":"vector?","doc":"Returns if SIMD and the run-time compiler is enabled or not","summary":"

    Returns if SIMD and the run-time compiler is enabled or not

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":75,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L75"},"def":{"name":"vector?","visibility":"Public","body":"LibVips.vips_vector_isenabled == 1"}},{"html_id":"version(flag:Int)-class-method","name":"version","doc":"Get the major, minor or patch version number of the libvips library.\nPass 0 to get the major version number\n1 to get minor, 2 to get patch.","summary":"

    Get the major, minor or patch version number of the libvips library.

    ","abstract":false,"args":[{"name":"flag","external_name":"flag","restriction":"Int"}],"args_string":"(flag : Int)","args_html":"(flag : Int)","location":{"filename":"src/vips/vips.cr","line_number":48,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L48"},"def":{"name":"version","args":[{"name":"flag","external_name":"flag","restriction":"Int"}],"visibility":"Public","body":"if (0..2).includes?(flag)\nelse\n raise(ArgumentError.new(\"Flag must be in the range of 0 to 2\"))\nend\n(LibVips.vips_version(flag)).tap do |v|\n if v < 0\n raise(VipsException.new(\"Unable to get library version\"))\n end\nend\n"}},{"html_id":"version-class-method","name":"version","doc":"Returns version of libvips in 3-byte integer","summary":"

    Returns version of libvips in 3-byte integer

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":56,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L56"},"def":{"name":"version","visibility":"Public","body":"if initialized\nelse\n raise(VipsException.new(\"Unable to initialize libvips\"))\nend\nvalue = 0\n0.upto(2) do |flag|\n if flag == 0\n value = version(flag)\n else\n value = (value << 8) + (version(flag))\n end\nend\nvalue\n"}},{"html_id":"version_string-class-method","name":"version_string","doc":"Returns version string of libvips","summary":"

    Returns version string of libvips

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":70,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L70"},"def":{"name":"version_string","visibility":"Public","body":"String.new(LibVips.vips_version_string)"}}],"types":[{"html_id":"vips/Vips/Cache","path":"Vips/Cache.html","kind":"module","full_name":"Vips::Cache","name":"Cache","abstract":false,"locations":[{"filename":"src/vips/cache.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L1"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"class_methods":[{"html_id":"max:Int32-class-method","name":"max","doc":"Gets the maximum number of operations libvips keep in cache","summary":"

    Gets the maximum number of operations libvips keep in cache

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L3"},"def":{"name":"max","return_type":"Int32","visibility":"Public","body":"LibVips.vips_cache_get_max"}},{"html_id":"max=(value:Int32)-class-method","name":"max=","doc":"Sets the maximum number of operations libvips keep in cache","summary":"

    Sets the maximum number of operations libvips keep in cache

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32"}],"args_string":"(value : Int32)","args_html":"(value : Int32)","location":{"filename":"src/vips/cache.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L8"},"def":{"name":"max=","args":[{"name":"value","external_name":"value","restriction":"Int32"}],"visibility":"Public","body":"LibVips.vips_cache_set_max(value)"}},{"html_id":"max_files-class-method","name":"max_files","doc":"Gets the maximum amount of tracked files allowed.","summary":"

    Gets the maximum amount of tracked files allowed.

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":23,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L23"},"def":{"name":"max_files","visibility":"Public","body":"LibVips.vips_cache_get_max_files"}},{"html_id":"max_files=(value:Int32)-class-method","name":"max_files=","doc":"Sets the maximum amount of tracked files allowed.","summary":"

    Sets the maximum amount of tracked files allowed.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32"}],"args_string":"(value : Int32)","args_html":"(value : Int32)","location":{"filename":"src/vips/cache.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L28"},"def":{"name":"max_files=","args":[{"name":"value","external_name":"value","restriction":"Int32"}],"visibility":"Public","body":"LibVips.vips_cache_set_max_files(value)"}},{"html_id":"max_mem-class-method","name":"max_mem","doc":"Gets the maximum amount of tracked memory allowed.","summary":"

    Gets the maximum amount of tracked memory allowed.

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":13,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L13"},"def":{"name":"max_mem","visibility":"Public","body":"LibVips.vips_cache_get_max_mem"}},{"html_id":"max_mem=(value:LibC::SizeT)-class-method","name":"max_mem=","doc":"Sets the maximum amount of tracked memory allowed.","summary":"

    Sets the maximum amount of tracked memory allowed.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"LibC::SizeT"}],"args_string":"(value : LibC::SizeT)","args_html":"(value : LibC::SizeT)","location":{"filename":"src/vips/cache.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L18"},"def":{"name":"max_mem=","args":[{"name":"value","external_name":"value","restriction":"LibC::SizeT"}],"visibility":"Public","body":"LibVips.vips_cache_set_max_mem(value)"}},{"html_id":"size-class-method","name":"size","doc":"Gets the current number of operations in cache.","summary":"

    Gets the current number of operations in cache.

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":33,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L33"},"def":{"name":"size","visibility":"Public","body":"LibVips.vips_cache_get_size"}},{"html_id":"trace=(value:Bool)-class-method","name":"trace=","doc":"Enable or disable libvips cache tracing.","summary":"

    Enable or disable libvips cache tracing.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool)","args_html":"(value : Bool)","location":{"filename":"src/vips/cache.cr","line_number":38,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/cache.cr#L38"},"def":{"name":"trace=","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"visibility":"Public","body":"LibVips.vips_cache_set_trace(value)"}}]},{"html_id":"vips/Vips/Connection","path":"Vips/Connection.html","kind":"class","full_name":"Vips::Connection","name":"Connection","abstract":true,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/connection.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/connection.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"filename:String|Nil-instance-method","name":"filename","doc":"Get the filename associated with a connection or nil if there is no associated file","summary":"

    Get the filename associated with a connection or nil if there is no associated file

    ","abstract":false,"location":{"filename":"src/vips/connection.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/connection.cr#L8"},"def":{"name":"filename","return_type":"String | ::Nil","visibility":"Public","body":"ptr = LibVips.vips_connection_filename(@chandle)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"nick:String|Nil-instance-method","name":"nick","doc":"Make a human-readable name for a connection suitable for error messages","summary":"

    Make a human-readable name for a connection suitable for error messages

    ","abstract":false,"location":{"filename":"src/vips/connection.cr","line_number":14,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/connection.cr#L14"},"def":{"name":"nick","return_type":"String | ::Nil","visibility":"Public","body":"ptr = LibVips.vips_connection_nick(@chandle)\nptr.null? ? nil : String.new(ptr)\n"}}]},{"html_id":"vips/Vips/Enums","path":"Vips/Enums.html","kind":"module","full_name":"Vips::Enums","name":"Enums","abstract":false,"locations":[{"filename":"src/vips/enums.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L1"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"types":[{"html_id":"vips/Vips/Enums/Access","path":"Vips/Enums/Access.html","kind":"enum","full_name":"Vips::Enums::Access","name":"Access","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L2"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Random","name":"Random","value":"0","doc":"Requests can come in any order","summary":"

    Requests can come in any order

    "},{"id":"Sequential","name":"Sequential","value":"1","doc":"Means requests will be top-to-bottom, but with some\namount of buffering behind the read point for small non-local\naccesses.","summary":"

    Means requests will be top-to-bottom, but with some amount of buffering behind the read point for small non-local accesses.

    "},{"id":"SequentialUnbuffered","name":"SequentialUnbuffered","value":"2","doc":"Top-to-bottom without a buffer.","summary":"

    Top-to-bottom without a buffer.

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"random?-instance-method","name":"random?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":4,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L4"},"def":{"name":"random?","visibility":"Public","body":"self == Random"}},{"html_id":"sequential?-instance-method","name":"sequential?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L9"},"def":{"name":"sequential?","visibility":"Public","body":"self == Sequential"}},{"html_id":"sequential_unbuffered?-instance-method","name":"sequential_unbuffered?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L12"},"def":{"name":"sequential_unbuffered?","visibility":"Public","body":"self == SequentialUnbuffered"}}]},{"html_id":"vips/Vips/Enums/Align","path":"Vips/Enums/Align.html","kind":"enum","full_name":"Vips::Enums::Align","name":"Align","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":16,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L16"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Low","name":"Low","value":"0","doc":"Align on the low coordinate edge","summary":"

    Align on the low coordinate edge

    "},{"id":"Centre","name":"Centre","value":"1","doc":"Align on the centre.","summary":"

    Align on the centre.

    "},{"id":"High","name":"High","value":"2","doc":"Align on the high coordinate edge","summary":"

    Align on the high coordinate edge

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"doc":"Various types of alignment.","summary":"

    Various types of alignment.

    ","instance_methods":[{"html_id":"centre?-instance-method","name":"centre?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":21,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L21"},"def":{"name":"centre?","visibility":"Public","body":"self == Centre"}},{"html_id":"high?-instance-method","name":"high?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":24,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L24"},"def":{"name":"high?","visibility":"Public","body":"self == High"}},{"html_id":"low?-instance-method","name":"low?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L18"},"def":{"name":"low?","visibility":"Public","body":"self == Low"}}]},{"html_id":"vips/Vips/Enums/Angle","path":"Vips/Enums/Angle.html","kind":"enum","full_name":"Vips::Enums::Angle","name":"Angle","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L27"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"D0","name":"D0","value":"0"},{"id":"D90","name":"D90","value":"1"},{"id":"D180","name":"D180","value":"2"},{"id":"D270","name":"D270","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"d0?-instance-method","name":"d0?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L28"},"def":{"name":"d0?","visibility":"Public","body":"self == D0"}},{"html_id":"d180?-instance-method","name":"d180?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":30,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L30"},"def":{"name":"d180?","visibility":"Public","body":"self == D180"}},{"html_id":"d270?-instance-method","name":"d270?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":31,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L31"},"def":{"name":"d270?","visibility":"Public","body":"self == D270"}},{"html_id":"d90?-instance-method","name":"d90?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":29,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L29"},"def":{"name":"d90?","visibility":"Public","body":"self == D90"}}]},{"html_id":"vips/Vips/Enums/Angle45","path":"Vips/Enums/Angle45.html","kind":"enum","full_name":"Vips::Enums::Angle45","name":"Angle45","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":34,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L34"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"D0","name":"D0","value":"0"},{"id":"D45","name":"D45","value":"1"},{"id":"D90","name":"D90","value":"2"},{"id":"D135","name":"D135","value":"3"},{"id":"D180","name":"D180","value":"4"},{"id":"D225","name":"D225","value":"5"},{"id":"D270","name":"D270","value":"6"},{"id":"D315","name":"D315","value":"7"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"d0?-instance-method","name":"d0?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L35"},"def":{"name":"d0?","visibility":"Public","body":"self == D0"}},{"html_id":"d135?-instance-method","name":"d135?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":38,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L38"},"def":{"name":"d135?","visibility":"Public","body":"self == D135"}},{"html_id":"d180?-instance-method","name":"d180?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":39,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L39"},"def":{"name":"d180?","visibility":"Public","body":"self == D180"}},{"html_id":"d225?-instance-method","name":"d225?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":40,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L40"},"def":{"name":"d225?","visibility":"Public","body":"self == D225"}},{"html_id":"d270?-instance-method","name":"d270?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":41,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L41"},"def":{"name":"d270?","visibility":"Public","body":"self == D270"}},{"html_id":"d315?-instance-method","name":"d315?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":42,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L42"},"def":{"name":"d315?","visibility":"Public","body":"self == D315"}},{"html_id":"d45?-instance-method","name":"d45?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":36,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L36"},"def":{"name":"d45?","visibility":"Public","body":"self == D45"}},{"html_id":"d90?-instance-method","name":"d90?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":37,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L37"},"def":{"name":"d90?","visibility":"Public","body":"self == D90"}}]},{"html_id":"vips/Vips/Enums/BandFormat","path":"Vips/Enums/BandFormat.html","kind":"enum","full_name":"Vips::Enums::BandFormat","name":"BandFormat","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":45,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L45"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Notset","name":"Notset","value":"-1"},{"id":"Uchar","name":"Uchar","value":"0"},{"id":"Char","name":"Char","value":"1"},{"id":"Ushort","name":"Ushort","value":"2"},{"id":"Short","name":"Short","value":"3"},{"id":"Uint","name":"Uint","value":"4"},{"id":"Int","name":"Int","value":"5"},{"id":"Float","name":"Float","value":"6"},{"id":"Complex","name":"Complex","value":"7"},{"id":"Double","name":"Double","value":"8"},{"id":"Dpcomplex","name":"Dpcomplex","value":"9"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"char?-instance-method","name":"char?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":48,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L48"},"def":{"name":"char?","visibility":"Public","body":"self == Char"}},{"html_id":"complex?-instance-method","name":"complex?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":54,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L54"},"def":{"name":"complex?","visibility":"Public","body":"self == Complex"}},{"html_id":"double?-instance-method","name":"double?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":55,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L55"},"def":{"name":"double?","visibility":"Public","body":"self == Double"}},{"html_id":"dpcomplex?-instance-method","name":"dpcomplex?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":56,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L56"},"def":{"name":"dpcomplex?","visibility":"Public","body":"self == Dpcomplex"}},{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":53,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L53"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"int?-instance-method","name":"int?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":52,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L52"},"def":{"name":"int?","visibility":"Public","body":"self == Int"}},{"html_id":"notset?-instance-method","name":"notset?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":46,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L46"},"def":{"name":"notset?","visibility":"Public","body":"self == Notset"}},{"html_id":"short?-instance-method","name":"short?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":50,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L50"},"def":{"name":"short?","visibility":"Public","body":"self == Short"}},{"html_id":"uchar?-instance-method","name":"uchar?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L47"},"def":{"name":"uchar?","visibility":"Public","body":"self == Uchar"}},{"html_id":"uint?-instance-method","name":"uint?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":51,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L51"},"def":{"name":"uint?","visibility":"Public","body":"self == Uint"}},{"html_id":"ushort?-instance-method","name":"ushort?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":49,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L49"},"def":{"name":"ushort?","visibility":"Public","body":"self == Ushort"}}]},{"html_id":"vips/Vips/Enums/BlendMode","path":"Vips/Enums/BlendMode.html","kind":"enum","full_name":"Vips::Enums::BlendMode","name":"BlendMode","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":59,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L59"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Clear","name":"Clear","value":"0"},{"id":"Source","name":"Source","value":"1"},{"id":"Over","name":"Over","value":"2"},{"id":"In","name":"In","value":"3"},{"id":"Out","name":"Out","value":"4"},{"id":"Atop","name":"Atop","value":"5"},{"id":"Dest","name":"Dest","value":"6"},{"id":"DestOver","name":"DestOver","value":"7"},{"id":"DestIn","name":"DestIn","value":"8"},{"id":"DestOut","name":"DestOut","value":"9"},{"id":"DestAtop","name":"DestAtop","value":"10"},{"id":"Xor","name":"Xor","value":"11"},{"id":"Add","name":"Add","value":"12"},{"id":"Saturate","name":"Saturate","value":"13"},{"id":"Multiply","name":"Multiply","value":"14"},{"id":"Screen","name":"Screen","value":"15"},{"id":"Overlay","name":"Overlay","value":"16"},{"id":"Darken","name":"Darken","value":"17"},{"id":"Lighten","name":"Lighten","value":"18"},{"id":"ColourDodge","name":"ColourDodge","value":"19"},{"id":"ColourBurn","name":"ColourBurn","value":"20"},{"id":"HardLight","name":"HardLight","value":"21"},{"id":"SoftLight","name":"SoftLight","value":"22"},{"id":"Difference","name":"Difference","value":"23"},{"id":"Exclusion","name":"Exclusion","value":"24"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"add?-instance-method","name":"add?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":72,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L72"},"def":{"name":"add?","visibility":"Public","body":"self == Add"}},{"html_id":"atop?-instance-method","name":"atop?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L65"},"def":{"name":"atop?","visibility":"Public","body":"self == Atop"}},{"html_id":"clear?-instance-method","name":"clear?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":60,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L60"},"def":{"name":"clear?","visibility":"Public","body":"self == Clear"}},{"html_id":"colour_burn?-instance-method","name":"colour_burn?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":80,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L80"},"def":{"name":"colour_burn?","visibility":"Public","body":"self == ColourBurn"}},{"html_id":"colour_dodge?-instance-method","name":"colour_dodge?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L79"},"def":{"name":"colour_dodge?","visibility":"Public","body":"self == ColourDodge"}},{"html_id":"darken?-instance-method","name":"darken?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":77,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L77"},"def":{"name":"darken?","visibility":"Public","body":"self == Darken"}},{"html_id":"dest?-instance-method","name":"dest?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":66,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L66"},"def":{"name":"dest?","visibility":"Public","body":"self == Dest"}},{"html_id":"dest_atop?-instance-method","name":"dest_atop?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":70,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L70"},"def":{"name":"dest_atop?","visibility":"Public","body":"self == DestAtop"}},{"html_id":"dest_in?-instance-method","name":"dest_in?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":68,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L68"},"def":{"name":"dest_in?","visibility":"Public","body":"self == DestIn"}},{"html_id":"dest_out?-instance-method","name":"dest_out?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":69,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L69"},"def":{"name":"dest_out?","visibility":"Public","body":"self == DestOut"}},{"html_id":"dest_over?-instance-method","name":"dest_over?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":67,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L67"},"def":{"name":"dest_over?","visibility":"Public","body":"self == DestOver"}},{"html_id":"difference?-instance-method","name":"difference?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":83,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L83"},"def":{"name":"difference?","visibility":"Public","body":"self == Difference"}},{"html_id":"exclusion?-instance-method","name":"exclusion?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":84,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L84"},"def":{"name":"exclusion?","visibility":"Public","body":"self == Exclusion"}},{"html_id":"hard_light?-instance-method","name":"hard_light?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":81,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L81"},"def":{"name":"hard_light?","visibility":"Public","body":"self == HardLight"}},{"html_id":"in?-instance-method","name":"in?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":63,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L63"},"def":{"name":"in?","visibility":"Public","body":"self == In"}},{"html_id":"lighten?-instance-method","name":"lighten?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":78,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L78"},"def":{"name":"lighten?","visibility":"Public","body":"self == Lighten"}},{"html_id":"multiply?-instance-method","name":"multiply?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":74,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L74"},"def":{"name":"multiply?","visibility":"Public","body":"self == Multiply"}},{"html_id":"out?-instance-method","name":"out?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":64,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L64"},"def":{"name":"out?","visibility":"Public","body":"self == Out"}},{"html_id":"over?-instance-method","name":"over?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":62,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L62"},"def":{"name":"over?","visibility":"Public","body":"self == Over"}},{"html_id":"overlay?-instance-method","name":"overlay?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":76,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L76"},"def":{"name":"overlay?","visibility":"Public","body":"self == Overlay"}},{"html_id":"saturate?-instance-method","name":"saturate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":73,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L73"},"def":{"name":"saturate?","visibility":"Public","body":"self == Saturate"}},{"html_id":"screen?-instance-method","name":"screen?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":75,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L75"},"def":{"name":"screen?","visibility":"Public","body":"self == Screen"}},{"html_id":"soft_light?-instance-method","name":"soft_light?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":82,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L82"},"def":{"name":"soft_light?","visibility":"Public","body":"self == SoftLight"}},{"html_id":"source?-instance-method","name":"source?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":61,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L61"},"def":{"name":"source?","visibility":"Public","body":"self == Source"}},{"html_id":"xor?-instance-method","name":"xor?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":71,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L71"},"def":{"name":"xor?","visibility":"Public","body":"self == Xor"}}]},{"html_id":"vips/Vips/Enums/Coding","path":"Vips/Enums/Coding.html","kind":"enum","full_name":"Vips::Enums::Coding","name":"Coding","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":87,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L87"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"None","name":"None","value":"0"},{"id":"Labq","name":"Labq","value":"2"},{"id":"Rad","name":"Rad","value":"6"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":88,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L88"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"labq?-instance-method","name":"labq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":90,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L90"},"def":{"name":"labq?","visibility":"Public","body":"self == Labq"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":89,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L89"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"rad?-instance-method","name":"rad?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":91,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L91"},"def":{"name":"rad?","visibility":"Public","body":"self == Rad"}}]},{"html_id":"vips/Vips/Enums/Combine","path":"Vips/Enums/Combine.html","kind":"enum","full_name":"Vips::Enums::Combine","name":"Combine","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":94,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L94"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Max","name":"Max","value":"0"},{"id":"Sum","name":"Sum","value":"1"},{"id":"Min","name":"Min","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"max?-instance-method","name":"max?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":95,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L95"},"def":{"name":"max?","visibility":"Public","body":"self == Max"}},{"html_id":"min?-instance-method","name":"min?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":97,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L97"},"def":{"name":"min?","visibility":"Public","body":"self == Min"}},{"html_id":"sum?-instance-method","name":"sum?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":96,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L96"},"def":{"name":"sum?","visibility":"Public","body":"self == Sum"}}]},{"html_id":"vips/Vips/Enums/CombineMode","path":"Vips/Enums/CombineMode.html","kind":"enum","full_name":"Vips::Enums::CombineMode","name":"CombineMode","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":100,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L100"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Set","name":"Set","value":"0"},{"id":"Add","name":"Add","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"add?-instance-method","name":"add?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":102,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L102"},"def":{"name":"add?","visibility":"Public","body":"self == Add"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":101,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L101"},"def":{"name":"set?","visibility":"Public","body":"self == Set"}}]},{"html_id":"vips/Vips/Enums/CompassDirection","path":"Vips/Enums/CompassDirection.html","kind":"enum","full_name":"Vips::Enums::CompassDirection","name":"CompassDirection","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":105,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L105"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Centre","name":"Centre","value":"0"},{"id":"North","name":"North","value":"1"},{"id":"East","name":"East","value":"2"},{"id":"South","name":"South","value":"3"},{"id":"West","name":"West","value":"4"},{"id":"NorthEast","name":"NorthEast","value":"5"},{"id":"SouthEast","name":"SouthEast","value":"6"},{"id":"SouthWest","name":"SouthWest","value":"7"},{"id":"NorthWest","name":"NorthWest","value":"8"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"centre?-instance-method","name":"centre?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":106,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L106"},"def":{"name":"centre?","visibility":"Public","body":"self == Centre"}},{"html_id":"east?-instance-method","name":"east?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":108,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L108"},"def":{"name":"east?","visibility":"Public","body":"self == East"}},{"html_id":"north?-instance-method","name":"north?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":107,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L107"},"def":{"name":"north?","visibility":"Public","body":"self == North"}},{"html_id":"north_east?-instance-method","name":"north_east?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":111,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L111"},"def":{"name":"north_east?","visibility":"Public","body":"self == NorthEast"}},{"html_id":"north_west?-instance-method","name":"north_west?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":114,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L114"},"def":{"name":"north_west?","visibility":"Public","body":"self == NorthWest"}},{"html_id":"south?-instance-method","name":"south?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":109,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L109"},"def":{"name":"south?","visibility":"Public","body":"self == South"}},{"html_id":"south_east?-instance-method","name":"south_east?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":112,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L112"},"def":{"name":"south_east?","visibility":"Public","body":"self == SouthEast"}},{"html_id":"south_west?-instance-method","name":"south_west?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":113,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L113"},"def":{"name":"south_west?","visibility":"Public","body":"self == SouthWest"}},{"html_id":"west?-instance-method","name":"west?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":110,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L110"},"def":{"name":"west?","visibility":"Public","body":"self == West"}}]},{"html_id":"vips/Vips/Enums/DemandStyle","path":"Vips/Enums/DemandStyle.html","kind":"enum","full_name":"Vips::Enums::DemandStyle","name":"DemandStyle","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":117,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L117"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"Smalltile","name":"Smalltile","value":"0"},{"id":"Fatstrip","name":"Fatstrip","value":"1"},{"id":"Thinstrip","name":"Thinstrip","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":118,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L118"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"fatstrip?-instance-method","name":"fatstrip?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":120,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L120"},"def":{"name":"fatstrip?","visibility":"Public","body":"self == Fatstrip"}},{"html_id":"smalltile?-instance-method","name":"smalltile?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":119,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L119"},"def":{"name":"smalltile?","visibility":"Public","body":"self == Smalltile"}},{"html_id":"thinstrip?-instance-method","name":"thinstrip?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":121,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L121"},"def":{"name":"thinstrip?","visibility":"Public","body":"self == Thinstrip"}}]},{"html_id":"vips/Vips/Enums/Direction","path":"Vips/Enums/Direction.html","kind":"enum","full_name":"Vips::Enums::Direction","name":"Direction","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":124,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L124"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Horizontal","name":"Horizontal","value":"0"},{"id":"Vertical","name":"Vertical","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"horizontal?-instance-method","name":"horizontal?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":125,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L125"},"def":{"name":"horizontal?","visibility":"Public","body":"self == Horizontal"}},{"html_id":"vertical?-instance-method","name":"vertical?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":126,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L126"},"def":{"name":"vertical?","visibility":"Public","body":"self == Vertical"}}]},{"html_id":"vips/Vips/Enums/Extend","path":"Vips/Enums/Extend.html","kind":"enum","full_name":"Vips::Enums::Extend","name":"Extend","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":129,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L129"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Black","name":"Black","value":"0"},{"id":"Copy","name":"Copy","value":"1"},{"id":"Repeat","name":"Repeat","value":"2"},{"id":"Mirror","name":"Mirror","value":"3"},{"id":"White","name":"White","value":"4"},{"id":"Background","name":"Background","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"background?-instance-method","name":"background?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":135,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L135"},"def":{"name":"background?","visibility":"Public","body":"self == Background"}},{"html_id":"black?-instance-method","name":"black?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":130,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L130"},"def":{"name":"black?","visibility":"Public","body":"self == Black"}},{"html_id":"copy?-instance-method","name":"copy?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":131,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L131"},"def":{"name":"copy?","visibility":"Public","body":"self == Copy"}},{"html_id":"mirror?-instance-method","name":"mirror?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":133,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L133"},"def":{"name":"mirror?","visibility":"Public","body":"self == Mirror"}},{"html_id":"repeat?-instance-method","name":"repeat?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":132,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L132"},"def":{"name":"repeat?","visibility":"Public","body":"self == Repeat"}},{"html_id":"white?-instance-method","name":"white?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":134,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L134"},"def":{"name":"white?","visibility":"Public","body":"self == White"}}]},{"html_id":"vips/Vips/Enums/FailOn","path":"Vips/Enums/FailOn.html","kind":"enum","full_name":"Vips::Enums::FailOn","name":"FailOn","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":142,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L142"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0","doc":"Never stop","summary":"

    Never stop

    "},{"id":"Truncated","name":"Truncated","value":"1","doc":"Stop on image truncated, nothing else","summary":"

    Stop on image truncated, nothing else

    "},{"id":"Error","name":"Error","value":"2","doc":"Stop on serious error or truncation","summary":"

    Stop on serious error or truncation

    "},{"id":"Warning","name":"Warning","value":"3","doc":"Stop on anything, even warnings","summary":"

    Stop on anything, even warnings

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"doc":"How sensitive loaders are to errors, from never stop (very insensitive), to\nstop on the smallest warning (very sensitive).\n\nEach one implies the ones before it, so `Error` implies `Truncated`","summary":"

    How sensitive loaders are to errors, from never stop (very insensitive), to stop on the smallest warning (very sensitive).

    ","instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":150,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L150"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":144,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L144"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"truncated?-instance-method","name":"truncated?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":147,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L147"},"def":{"name":"truncated?","visibility":"Public","body":"self == Truncated"}},{"html_id":"warning?-instance-method","name":"warning?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":153,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L153"},"def":{"name":"warning?","visibility":"Public","body":"self == Warning"}}]},{"html_id":"vips/Vips/Enums/ForeignDzContainer","path":"Vips/Enums/ForeignDzContainer.html","kind":"enum","full_name":"Vips::Enums::ForeignDzContainer","name":"ForeignDzContainer","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":156,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L156"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Fs","name":"Fs","value":"0"},{"id":"Zip","name":"Zip","value":"1"},{"id":"Szi","name":"Szi","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"fs?-instance-method","name":"fs?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":157,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L157"},"def":{"name":"fs?","visibility":"Public","body":"self == Fs"}},{"html_id":"szi?-instance-method","name":"szi?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":159,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L159"},"def":{"name":"szi?","visibility":"Public","body":"self == Szi"}},{"html_id":"zip?-instance-method","name":"zip?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":158,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L158"},"def":{"name":"zip?","visibility":"Public","body":"self == Zip"}}]},{"html_id":"vips/Vips/Enums/ForeignDzDepth","path":"Vips/Enums/ForeignDzDepth.html","kind":"enum","full_name":"Vips::Enums::ForeignDzDepth","name":"ForeignDzDepth","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":162,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L162"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Onepixel","name":"Onepixel","value":"0"},{"id":"Onetile","name":"Onetile","value":"1"},{"id":"One","name":"One","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"one?-instance-method","name":"one?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":165,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L165"},"def":{"name":"one?","visibility":"Public","body":"self == One"}},{"html_id":"onepixel?-instance-method","name":"onepixel?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":163,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L163"},"def":{"name":"onepixel?","visibility":"Public","body":"self == Onepixel"}},{"html_id":"onetile?-instance-method","name":"onetile?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":164,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L164"},"def":{"name":"onetile?","visibility":"Public","body":"self == Onetile"}}]},{"html_id":"vips/Vips/Enums/ForeignDzLayout","path":"Vips/Enums/ForeignDzLayout.html","kind":"enum","full_name":"Vips::Enums::ForeignDzLayout","name":"ForeignDzLayout","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":168,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L168"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Dz","name":"Dz","value":"0"},{"id":"Zoomify","name":"Zoomify","value":"1"},{"id":"Google","name":"Google","value":"2"},{"id":"Iiif","name":"Iiif","value":"3"},{"id":"Iiif3","name":"Iiif3","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"dz?-instance-method","name":"dz?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":169,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L169"},"def":{"name":"dz?","visibility":"Public","body":"self == Dz"}},{"html_id":"google?-instance-method","name":"google?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":171,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L171"},"def":{"name":"google?","visibility":"Public","body":"self == Google"}},{"html_id":"iiif3?-instance-method","name":"iiif3?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":173,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L173"},"def":{"name":"iiif3?","visibility":"Public","body":"self == Iiif3"}},{"html_id":"iiif?-instance-method","name":"iiif?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":172,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L172"},"def":{"name":"iiif?","visibility":"Public","body":"self == Iiif"}},{"html_id":"zoomify?-instance-method","name":"zoomify?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":170,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L170"},"def":{"name":"zoomify?","visibility":"Public","body":"self == Zoomify"}}]},{"html_id":"vips/Vips/Enums/ForeignFlags","path":"Vips/Enums/ForeignFlags.html","kind":"enum","full_name":"Vips::Enums::ForeignFlags","name":"ForeignFlags","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":413,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L413"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Partial","name":"Partial","value":"1"},{"id":"Bigendian","name":"Bigendian","value":"2"},{"id":"Sequential","name":"Sequential","value":"4"},{"id":"All","name":"All","value":"7"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":418,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L418"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"bigendian?-instance-method","name":"bigendian?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":416,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L416"},"def":{"name":"bigendian?","visibility":"Public","body":"self == Bigendian"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":414,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L414"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"partial?-instance-method","name":"partial?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":415,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L415"},"def":{"name":"partial?","visibility":"Public","body":"self == Partial"}},{"html_id":"sequential?-instance-method","name":"sequential?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":417,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L417"},"def":{"name":"sequential?","visibility":"Public","body":"self == Sequential"}}]},{"html_id":"vips/Vips/Enums/ForeignHeifCompression","path":"Vips/Enums/ForeignHeifCompression.html","kind":"enum","full_name":"Vips::Enums::ForeignHeifCompression","name":"ForeignHeifCompression","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":176,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L176"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Hevc","name":"Hevc","value":"1"},{"id":"Avc","name":"Avc","value":"2"},{"id":"Jpeg","name":"Jpeg","value":"3"},{"id":"Av1","name":"Av1","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"av1?-instance-method","name":"av1?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":180,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L180"},"def":{"name":"av1?","visibility":"Public","body":"self == Av1"}},{"html_id":"avc?-instance-method","name":"avc?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":178,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L178"},"def":{"name":"avc?","visibility":"Public","body":"self == Avc"}},{"html_id":"hevc?-instance-method","name":"hevc?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":177,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L177"},"def":{"name":"hevc?","visibility":"Public","body":"self == Hevc"}},{"html_id":"jpeg?-instance-method","name":"jpeg?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":179,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L179"},"def":{"name":"jpeg?","visibility":"Public","body":"self == Jpeg"}}]},{"html_id":"vips/Vips/Enums/ForeignJpegSubsample","path":"Vips/Enums/ForeignJpegSubsample.html","kind":"enum","full_name":"Vips::Enums::ForeignJpegSubsample","name":"ForeignJpegSubsample","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":183,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L183"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"On","name":"On","value":"1"},{"id":"Off","name":"Off","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":184,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L184"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":186,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L186"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":185,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L185"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"vips/Vips/Enums/ForeignPpmFormat","path":"Vips/Enums/ForeignPpmFormat.html","kind":"enum","full_name":"Vips::Enums::ForeignPpmFormat","name":"ForeignPpmFormat","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":189,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L189"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pbm","name":"Pbm","value":"0"},{"id":"Pgm","name":"Pgm","value":"1"},{"id":"Ppm","name":"Ppm","value":"2"},{"id":"Pfm","name":"Pfm","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"pbm?-instance-method","name":"pbm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":190,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L190"},"def":{"name":"pbm?","visibility":"Public","body":"self == Pbm"}},{"html_id":"pfm?-instance-method","name":"pfm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":193,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L193"},"def":{"name":"pfm?","visibility":"Public","body":"self == Pfm"}},{"html_id":"pgm?-instance-method","name":"pgm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":191,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L191"},"def":{"name":"pgm?","visibility":"Public","body":"self == Pgm"}},{"html_id":"ppm?-instance-method","name":"ppm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":192,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L192"},"def":{"name":"ppm?","visibility":"Public","body":"self == Ppm"}}]},{"html_id":"vips/Vips/Enums/ForeignSubsample","path":"Vips/Enums/ForeignSubsample.html","kind":"enum","full_name":"Vips::Enums::ForeignSubsample","name":"ForeignSubsample","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":196,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L196"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"On","name":"On","value":"1"},{"id":"Off","name":"Off","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":197,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L197"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":199,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L199"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":198,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L198"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"vips/Vips/Enums/ForeignTiffCompression","path":"Vips/Enums/ForeignTiffCompression.html","kind":"enum","full_name":"Vips::Enums::ForeignTiffCompression","name":"ForeignTiffCompression","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":202,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L202"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Jpeg","name":"Jpeg","value":"1"},{"id":"Deflate","name":"Deflate","value":"2"},{"id":"Packbits","name":"Packbits","value":"3"},{"id":"Ccittfax4","name":"Ccittfax4","value":"4"},{"id":"Lzw","name":"Lzw","value":"5"},{"id":"Webp","name":"Webp","value":"6"},{"id":"Zstd","name":"Zstd","value":"7"},{"id":"Jp2k","name":"Jp2k","value":"8"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"ccittfax4?-instance-method","name":"ccittfax4?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":207,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L207"},"def":{"name":"ccittfax4?","visibility":"Public","body":"self == Ccittfax4"}},{"html_id":"deflate?-instance-method","name":"deflate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":205,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L205"},"def":{"name":"deflate?","visibility":"Public","body":"self == Deflate"}},{"html_id":"jp2k?-instance-method","name":"jp2k?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":211,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L211"},"def":{"name":"jp2k?","visibility":"Public","body":"self == Jp2k"}},{"html_id":"jpeg?-instance-method","name":"jpeg?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":204,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L204"},"def":{"name":"jpeg?","visibility":"Public","body":"self == Jpeg"}},{"html_id":"lzw?-instance-method","name":"lzw?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":208,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L208"},"def":{"name":"lzw?","visibility":"Public","body":"self == Lzw"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":203,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L203"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"packbits?-instance-method","name":"packbits?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":206,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L206"},"def":{"name":"packbits?","visibility":"Public","body":"self == Packbits"}},{"html_id":"webp?-instance-method","name":"webp?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":209,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L209"},"def":{"name":"webp?","visibility":"Public","body":"self == Webp"}},{"html_id":"zstd?-instance-method","name":"zstd?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":210,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L210"},"def":{"name":"zstd?","visibility":"Public","body":"self == Zstd"}}]},{"html_id":"vips/Vips/Enums/ForeignTiffPredictor","path":"Vips/Enums/ForeignTiffPredictor.html","kind":"enum","full_name":"Vips::Enums::ForeignTiffPredictor","name":"ForeignTiffPredictor","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":214,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L214"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"1"},{"id":"Horizontal","name":"Horizontal","value":"2"},{"id":"Float","name":"Float","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":217,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L217"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"horizontal?-instance-method","name":"horizontal?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":216,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L216"},"def":{"name":"horizontal?","visibility":"Public","body":"self == Horizontal"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":215,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L215"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"vips/Vips/Enums/ForeignTiffResunit","path":"Vips/Enums/ForeignTiffResunit.html","kind":"enum","full_name":"Vips::Enums::ForeignTiffResunit","name":"ForeignTiffResunit","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":220,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L220"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Cm","name":"Cm","value":"0"},{"id":"Inch","name":"Inch","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"cm?-instance-method","name":"cm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":221,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L221"},"def":{"name":"cm?","visibility":"Public","body":"self == Cm"}},{"html_id":"inch?-instance-method","name":"inch?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":222,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L222"},"def":{"name":"inch?","visibility":"Public","body":"self == Inch"}}]},{"html_id":"vips/Vips/Enums/ForeignWebpPreset","path":"Vips/Enums/ForeignWebpPreset.html","kind":"enum","full_name":"Vips::Enums::ForeignWebpPreset","name":"ForeignWebpPreset","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":225,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L225"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Default","name":"Default","value":"0"},{"id":"Picture","name":"Picture","value":"1"},{"id":"Photo","name":"Photo","value":"2"},{"id":"Drawing","name":"Drawing","value":"3"},{"id":"Icon","name":"Icon","value":"4"},{"id":"Text","name":"Text","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"default?-instance-method","name":"default?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":226,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L226"},"def":{"name":"default?","visibility":"Public","body":"self == Default"}},{"html_id":"drawing?-instance-method","name":"drawing?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":229,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L229"},"def":{"name":"drawing?","visibility":"Public","body":"self == Drawing"}},{"html_id":"icon?-instance-method","name":"icon?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":230,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L230"},"def":{"name":"icon?","visibility":"Public","body":"self == Icon"}},{"html_id":"photo?-instance-method","name":"photo?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":228,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L228"},"def":{"name":"photo?","visibility":"Public","body":"self == Photo"}},{"html_id":"picture?-instance-method","name":"picture?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":227,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L227"},"def":{"name":"picture?","visibility":"Public","body":"self == Picture"}},{"html_id":"text?-instance-method","name":"text?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":231,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L231"},"def":{"name":"text?","visibility":"Public","body":"self == Text"}}]},{"html_id":"vips/Vips/Enums/ImageType","path":"Vips/Enums/ImageType.html","kind":"enum","full_name":"Vips::Enums::ImageType","name":"ImageType","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":234,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L234"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"None","name":"None","value":"0"},{"id":"Setbuf","name":"Setbuf","value":"1"},{"id":"SetbufForeign","name":"SetbufForeign","value":"2"},{"id":"Openin","name":"Openin","value":"3"},{"id":"Mmapin","name":"Mmapin","value":"4"},{"id":"Mmapinrw","name":"Mmapinrw","value":"5"},{"id":"Openout","name":"Openout","value":"6"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":235,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L235"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"mmapin?-instance-method","name":"mmapin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":240,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L240"},"def":{"name":"mmapin?","visibility":"Public","body":"self == Mmapin"}},{"html_id":"mmapinrw?-instance-method","name":"mmapinrw?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":241,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L241"},"def":{"name":"mmapinrw?","visibility":"Public","body":"self == Mmapinrw"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":236,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L236"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"openin?-instance-method","name":"openin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":239,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L239"},"def":{"name":"openin?","visibility":"Public","body":"self == Openin"}},{"html_id":"openout?-instance-method","name":"openout?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":242,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L242"},"def":{"name":"openout?","visibility":"Public","body":"self == Openout"}},{"html_id":"setbuf?-instance-method","name":"setbuf?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":237,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L237"},"def":{"name":"setbuf?","visibility":"Public","body":"self == Setbuf"}},{"html_id":"setbuf_foreign?-instance-method","name":"setbuf_foreign?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":238,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L238"},"def":{"name":"setbuf_foreign?","visibility":"Public","body":"self == SetbufForeign"}}]},{"html_id":"vips/Vips/Enums/Intent","path":"Vips/Enums/Intent.html","kind":"enum","full_name":"Vips::Enums::Intent","name":"Intent","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":245,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L245"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Perceptual","name":"Perceptual","value":"0"},{"id":"Relative","name":"Relative","value":"1"},{"id":"Saturation","name":"Saturation","value":"2"},{"id":"Absolute","name":"Absolute","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"absolute?-instance-method","name":"absolute?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":249,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L249"},"def":{"name":"absolute?","visibility":"Public","body":"self == Absolute"}},{"html_id":"perceptual?-instance-method","name":"perceptual?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":246,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L246"},"def":{"name":"perceptual?","visibility":"Public","body":"self == Perceptual"}},{"html_id":"relative?-instance-method","name":"relative?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":247,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L247"},"def":{"name":"relative?","visibility":"Public","body":"self == Relative"}},{"html_id":"saturation?-instance-method","name":"saturation?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":248,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L248"},"def":{"name":"saturation?","visibility":"Public","body":"self == Saturation"}}]},{"html_id":"vips/Vips/Enums/Interesting","path":"Vips/Enums/Interesting.html","kind":"enum","full_name":"Vips::Enums::Interesting","name":"Interesting","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":252,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L252"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Centre","name":"Centre","value":"1"},{"id":"Entropy","name":"Entropy","value":"2"},{"id":"Attention","name":"Attention","value":"3"},{"id":"Low","name":"Low","value":"4"},{"id":"High","name":"High","value":"5"},{"id":"All","name":"All","value":"6"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":259,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L259"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"attention?-instance-method","name":"attention?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":256,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L256"},"def":{"name":"attention?","visibility":"Public","body":"self == Attention"}},{"html_id":"centre?-instance-method","name":"centre?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":254,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L254"},"def":{"name":"centre?","visibility":"Public","body":"self == Centre"}},{"html_id":"entropy?-instance-method","name":"entropy?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":255,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L255"},"def":{"name":"entropy?","visibility":"Public","body":"self == Entropy"}},{"html_id":"high?-instance-method","name":"high?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":258,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L258"},"def":{"name":"high?","visibility":"Public","body":"self == High"}},{"html_id":"low?-instance-method","name":"low?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":257,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L257"},"def":{"name":"low?","visibility":"Public","body":"self == Low"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":253,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L253"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"vips/Vips/Enums/Interpretation","path":"Vips/Enums/Interpretation.html","kind":"enum","full_name":"Vips::Enums::Interpretation","name":"Interpretation","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":262,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L262"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"Multiband","name":"Multiband","value":"0"},{"id":"Bw","name":"Bw","value":"1"},{"id":"Histogram","name":"Histogram","value":"10"},{"id":"Xyz","name":"Xyz","value":"12"},{"id":"Lab","name":"Lab","value":"13"},{"id":"Cmyk","name":"Cmyk","value":"15"},{"id":"Labq","name":"Labq","value":"16"},{"id":"Rgb","name":"Rgb","value":"17"},{"id":"Cmc","name":"Cmc","value":"18"},{"id":"Lch","name":"Lch","value":"19"},{"id":"Labs","name":"Labs","value":"21"},{"id":"Srgb","name":"Srgb","value":"22"},{"id":"Yxy","name":"Yxy","value":"23"},{"id":"Fourier","name":"Fourier","value":"24"},{"id":"Rgb16","name":"Rgb16","value":"25"},{"id":"Grey16","name":"Grey16","value":"26"},{"id":"Matrix","name":"Matrix","value":"27"},{"id":"Scrgb","name":"Scrgb","value":"28"},{"id":"Hsv","name":"Hsv","value":"29"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"bw?-instance-method","name":"bw?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":265,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L265"},"def":{"name":"bw?","visibility":"Public","body":"self == Bw"}},{"html_id":"cmc?-instance-method","name":"cmc?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":272,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L272"},"def":{"name":"cmc?","visibility":"Public","body":"self == Cmc"}},{"html_id":"cmyk?-instance-method","name":"cmyk?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":269,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L269"},"def":{"name":"cmyk?","visibility":"Public","body":"self == Cmyk"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":263,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L263"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"fourier?-instance-method","name":"fourier?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":277,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L277"},"def":{"name":"fourier?","visibility":"Public","body":"self == Fourier"}},{"html_id":"grey16?-instance-method","name":"grey16?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":279,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L279"},"def":{"name":"grey16?","visibility":"Public","body":"self == Grey16"}},{"html_id":"histogram?-instance-method","name":"histogram?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":266,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L266"},"def":{"name":"histogram?","visibility":"Public","body":"self == Histogram"}},{"html_id":"hsv?-instance-method","name":"hsv?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":282,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L282"},"def":{"name":"hsv?","visibility":"Public","body":"self == Hsv"}},{"html_id":"lab?-instance-method","name":"lab?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":268,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L268"},"def":{"name":"lab?","visibility":"Public","body":"self == Lab"}},{"html_id":"labq?-instance-method","name":"labq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":270,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L270"},"def":{"name":"labq?","visibility":"Public","body":"self == Labq"}},{"html_id":"labs?-instance-method","name":"labs?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":274,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L274"},"def":{"name":"labs?","visibility":"Public","body":"self == Labs"}},{"html_id":"lch?-instance-method","name":"lch?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":273,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L273"},"def":{"name":"lch?","visibility":"Public","body":"self == Lch"}},{"html_id":"matrix?-instance-method","name":"matrix?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":280,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L280"},"def":{"name":"matrix?","visibility":"Public","body":"self == Matrix"}},{"html_id":"multiband?-instance-method","name":"multiband?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":264,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L264"},"def":{"name":"multiband?","visibility":"Public","body":"self == Multiband"}},{"html_id":"rgb16?-instance-method","name":"rgb16?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":278,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L278"},"def":{"name":"rgb16?","visibility":"Public","body":"self == Rgb16"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":271,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L271"},"def":{"name":"rgb?","visibility":"Public","body":"self == Rgb"}},{"html_id":"scrgb?-instance-method","name":"scrgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":281,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L281"},"def":{"name":"scrgb?","visibility":"Public","body":"self == Scrgb"}},{"html_id":"srgb?-instance-method","name":"srgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":275,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L275"},"def":{"name":"srgb?","visibility":"Public","body":"self == Srgb"}},{"html_id":"xyz?-instance-method","name":"xyz?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":267,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L267"},"def":{"name":"xyz?","visibility":"Public","body":"self == Xyz"}},{"html_id":"yxy?-instance-method","name":"yxy?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":276,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L276"},"def":{"name":"yxy?","visibility":"Public","body":"self == Yxy"}}]},{"html_id":"vips/Vips/Enums/Kernel","path":"Vips/Enums/Kernel.html","kind":"enum","full_name":"Vips::Enums::Kernel","name":"Kernel","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":285,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L285"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Nearest","name":"Nearest","value":"0"},{"id":"Linear","name":"Linear","value":"1"},{"id":"Cubic","name":"Cubic","value":"2"},{"id":"Mitchell","name":"Mitchell","value":"3"},{"id":"Lanczos2","name":"Lanczos2","value":"4"},{"id":"Lanczos3","name":"Lanczos3","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"cubic?-instance-method","name":"cubic?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":288,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L288"},"def":{"name":"cubic?","visibility":"Public","body":"self == Cubic"}},{"html_id":"lanczos2?-instance-method","name":"lanczos2?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":290,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L290"},"def":{"name":"lanczos2?","visibility":"Public","body":"self == Lanczos2"}},{"html_id":"lanczos3?-instance-method","name":"lanczos3?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":291,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L291"},"def":{"name":"lanczos3?","visibility":"Public","body":"self == Lanczos3"}},{"html_id":"linear?-instance-method","name":"linear?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":287,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L287"},"def":{"name":"linear?","visibility":"Public","body":"self == Linear"}},{"html_id":"mitchell?-instance-method","name":"mitchell?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":289,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L289"},"def":{"name":"mitchell?","visibility":"Public","body":"self == Mitchell"}},{"html_id":"nearest?-instance-method","name":"nearest?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":286,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L286"},"def":{"name":"nearest?","visibility":"Public","body":"self == Nearest"}}]},{"html_id":"vips/Vips/Enums/OperationBoolean","path":"Vips/Enums/OperationBoolean.html","kind":"enum","full_name":"Vips::Enums::OperationBoolean","name":"OperationBoolean","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":294,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L294"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"And","name":"And","value":"0"},{"id":"Or","name":"Or","value":"1"},{"id":"Eor","name":"Eor","value":"2"},{"id":"Lshift","name":"Lshift","value":"3"},{"id":"Rshift","name":"Rshift","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"and?-instance-method","name":"and?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":295,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L295"},"def":{"name":"and?","visibility":"Public","body":"self == And"}},{"html_id":"eor?-instance-method","name":"eor?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":297,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L297"},"def":{"name":"eor?","visibility":"Public","body":"self == Eor"}},{"html_id":"lshift?-instance-method","name":"lshift?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":298,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L298"},"def":{"name":"lshift?","visibility":"Public","body":"self == Lshift"}},{"html_id":"or?-instance-method","name":"or?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":296,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L296"},"def":{"name":"or?","visibility":"Public","body":"self == Or"}},{"html_id":"rshift?-instance-method","name":"rshift?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":299,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L299"},"def":{"name":"rshift?","visibility":"Public","body":"self == Rshift"}}]},{"html_id":"vips/Vips/Enums/OperationComplex","path":"Vips/Enums/OperationComplex.html","kind":"enum","full_name":"Vips::Enums::OperationComplex","name":"OperationComplex","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":302,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L302"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Polar","name":"Polar","value":"0"},{"id":"Rect","name":"Rect","value":"1"},{"id":"Conj","name":"Conj","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"conj?-instance-method","name":"conj?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":305,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L305"},"def":{"name":"conj?","visibility":"Public","body":"self == Conj"}},{"html_id":"polar?-instance-method","name":"polar?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":303,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L303"},"def":{"name":"polar?","visibility":"Public","body":"self == Polar"}},{"html_id":"rect?-instance-method","name":"rect?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":304,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L304"},"def":{"name":"rect?","visibility":"Public","body":"self == Rect"}}]},{"html_id":"vips/Vips/Enums/OperationComplex2","path":"Vips/Enums/OperationComplex2.html","kind":"enum","full_name":"Vips::Enums::OperationComplex2","name":"OperationComplex2","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":308,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L308"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"CrossPhase","name":"CrossPhase","value":"0"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"cross_phase?-instance-method","name":"cross_phase?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":309,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L309"},"def":{"name":"cross_phase?","visibility":"Public","body":"self == CrossPhase"}}]},{"html_id":"vips/Vips/Enums/OperationComplexget","path":"Vips/Enums/OperationComplexget.html","kind":"enum","full_name":"Vips::Enums::OperationComplexget","name":"OperationComplexget","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":312,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L312"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Real","name":"Real","value":"0"},{"id":"Imag","name":"Imag","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"imag?-instance-method","name":"imag?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":314,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L314"},"def":{"name":"imag?","visibility":"Public","body":"self == Imag"}},{"html_id":"real?-instance-method","name":"real?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":313,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L313"},"def":{"name":"real?","visibility":"Public","body":"self == Real"}}]},{"html_id":"vips/Vips/Enums/OperationFlags","path":"Vips/Enums/OperationFlags.html","kind":"enum","full_name":"Vips::Enums::OperationFlags","name":"OperationFlags","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":405,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L405"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Sequential","name":"Sequential","value":"1"},{"id":"SequentialUnbuffered","name":"SequentialUnbuffered","value":"2"},{"id":"Nocache","name":"Nocache","value":"4"},{"id":"Deprecated","name":"Deprecated","value":"8"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"deprecated?-instance-method","name":"deprecated?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":410,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L410"},"def":{"name":"deprecated?","visibility":"Public","body":"self == Deprecated"}},{"html_id":"nocache?-instance-method","name":"nocache?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":409,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L409"},"def":{"name":"nocache?","visibility":"Public","body":"self == Nocache"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":406,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L406"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"sequential?-instance-method","name":"sequential?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":407,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L407"},"def":{"name":"sequential?","visibility":"Public","body":"self == Sequential"}},{"html_id":"sequential_unbuffered?-instance-method","name":"sequential_unbuffered?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":408,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L408"},"def":{"name":"sequential_unbuffered?","visibility":"Public","body":"self == SequentialUnbuffered"}}]},{"html_id":"vips/Vips/Enums/OperationMath","path":"Vips/Enums/OperationMath.html","kind":"enum","full_name":"Vips::Enums::OperationMath","name":"OperationMath","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":317,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L317"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Sin","name":"Sin","value":"0"},{"id":"Cos","name":"Cos","value":"1"},{"id":"Tan","name":"Tan","value":"2"},{"id":"Asin","name":"Asin","value":"3"},{"id":"Acos","name":"Acos","value":"4"},{"id":"Atan","name":"Atan","value":"5"},{"id":"Log","name":"Log","value":"6"},{"id":"Log10","name":"Log10","value":"7"},{"id":"Exp","name":"Exp","value":"8"},{"id":"Exp10","name":"Exp10","value":"9"},{"id":"Sinh","name":"Sinh","value":"10"},{"id":"Cosh","name":"Cosh","value":"11"},{"id":"Tanh","name":"Tanh","value":"12"},{"id":"Asinh","name":"Asinh","value":"13"},{"id":"Acosh","name":"Acosh","value":"14"},{"id":"Atanh","name":"Atanh","value":"15"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"acos?-instance-method","name":"acos?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":322,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L322"},"def":{"name":"acos?","visibility":"Public","body":"self == Acos"}},{"html_id":"acosh?-instance-method","name":"acosh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":332,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L332"},"def":{"name":"acosh?","visibility":"Public","body":"self == Acosh"}},{"html_id":"asin?-instance-method","name":"asin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":321,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L321"},"def":{"name":"asin?","visibility":"Public","body":"self == Asin"}},{"html_id":"asinh?-instance-method","name":"asinh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":331,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L331"},"def":{"name":"asinh?","visibility":"Public","body":"self == Asinh"}},{"html_id":"atan?-instance-method","name":"atan?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":323,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L323"},"def":{"name":"atan?","visibility":"Public","body":"self == Atan"}},{"html_id":"atanh?-instance-method","name":"atanh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":333,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L333"},"def":{"name":"atanh?","visibility":"Public","body":"self == Atanh"}},{"html_id":"cos?-instance-method","name":"cos?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":319,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L319"},"def":{"name":"cos?","visibility":"Public","body":"self == Cos"}},{"html_id":"cosh?-instance-method","name":"cosh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":329,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L329"},"def":{"name":"cosh?","visibility":"Public","body":"self == Cosh"}},{"html_id":"exp10?-instance-method","name":"exp10?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":327,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L327"},"def":{"name":"exp10?","visibility":"Public","body":"self == Exp10"}},{"html_id":"exp?-instance-method","name":"exp?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":326,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L326"},"def":{"name":"exp?","visibility":"Public","body":"self == Exp"}},{"html_id":"log10?-instance-method","name":"log10?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":325,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L325"},"def":{"name":"log10?","visibility":"Public","body":"self == Log10"}},{"html_id":"log?-instance-method","name":"log?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":324,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L324"},"def":{"name":"log?","visibility":"Public","body":"self == Log"}},{"html_id":"sin?-instance-method","name":"sin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":318,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L318"},"def":{"name":"sin?","visibility":"Public","body":"self == Sin"}},{"html_id":"sinh?-instance-method","name":"sinh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":328,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L328"},"def":{"name":"sinh?","visibility":"Public","body":"self == Sinh"}},{"html_id":"tan?-instance-method","name":"tan?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":320,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L320"},"def":{"name":"tan?","visibility":"Public","body":"self == Tan"}},{"html_id":"tanh?-instance-method","name":"tanh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":330,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L330"},"def":{"name":"tanh?","visibility":"Public","body":"self == Tanh"}}]},{"html_id":"vips/Vips/Enums/OperationMath2","path":"Vips/Enums/OperationMath2.html","kind":"enum","full_name":"Vips::Enums::OperationMath2","name":"OperationMath2","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":336,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L336"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pow","name":"Pow","value":"0"},{"id":"Wop","name":"Wop","value":"1"},{"id":"Atan2","name":"Atan2","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"atan2?-instance-method","name":"atan2?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":339,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L339"},"def":{"name":"atan2?","visibility":"Public","body":"self == Atan2"}},{"html_id":"pow?-instance-method","name":"pow?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":337,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L337"},"def":{"name":"pow?","visibility":"Public","body":"self == Pow"}},{"html_id":"wop?-instance-method","name":"wop?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":338,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L338"},"def":{"name":"wop?","visibility":"Public","body":"self == Wop"}}]},{"html_id":"vips/Vips/Enums/OperationMorphology","path":"Vips/Enums/OperationMorphology.html","kind":"enum","full_name":"Vips::Enums::OperationMorphology","name":"OperationMorphology","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":342,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L342"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Erode","name":"Erode","value":"0"},{"id":"Dilate","name":"Dilate","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"dilate?-instance-method","name":"dilate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":344,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L344"},"def":{"name":"dilate?","visibility":"Public","body":"self == Dilate"}},{"html_id":"erode?-instance-method","name":"erode?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":343,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L343"},"def":{"name":"erode?","visibility":"Public","body":"self == Erode"}}]},{"html_id":"vips/Vips/Enums/OperationRelational","path":"Vips/Enums/OperationRelational.html","kind":"enum","full_name":"Vips::Enums::OperationRelational","name":"OperationRelational","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":347,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L347"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Equal","name":"Equal","value":"0"},{"id":"Noteq","name":"Noteq","value":"1"},{"id":"Less","name":"Less","value":"2"},{"id":"Lesseq","name":"Lesseq","value":"3"},{"id":"More","name":"More","value":"4"},{"id":"Moreeq","name":"Moreeq","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":348,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L348"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"less?-instance-method","name":"less?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":350,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L350"},"def":{"name":"less?","visibility":"Public","body":"self == Less"}},{"html_id":"lesseq?-instance-method","name":"lesseq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":351,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L351"},"def":{"name":"lesseq?","visibility":"Public","body":"self == Lesseq"}},{"html_id":"more?-instance-method","name":"more?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":352,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L352"},"def":{"name":"more?","visibility":"Public","body":"self == More"}},{"html_id":"moreeq?-instance-method","name":"moreeq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":353,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L353"},"def":{"name":"moreeq?","visibility":"Public","body":"self == Moreeq"}},{"html_id":"noteq?-instance-method","name":"noteq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":349,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L349"},"def":{"name":"noteq?","visibility":"Public","body":"self == Noteq"}}]},{"html_id":"vips/Vips/Enums/OperationRound","path":"Vips/Enums/OperationRound.html","kind":"enum","full_name":"Vips::Enums::OperationRound","name":"OperationRound","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":356,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L356"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Rint","name":"Rint","value":"0"},{"id":"Ceil","name":"Ceil","value":"1"},{"id":"Floor","name":"Floor","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"ceil?-instance-method","name":"ceil?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":358,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L358"},"def":{"name":"ceil?","visibility":"Public","body":"self == Ceil"}},{"html_id":"floor?-instance-method","name":"floor?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":359,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L359"},"def":{"name":"floor?","visibility":"Public","body":"self == Floor"}},{"html_id":"rint?-instance-method","name":"rint?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":357,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L357"},"def":{"name":"rint?","visibility":"Public","body":"self == Rint"}}]},{"html_id":"vips/Vips/Enums/PCS","path":"Vips/Enums/PCS.html","kind":"enum","full_name":"Vips::Enums::PCS","name":"PCS","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":362,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L362"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Lab","name":"Lab","value":"0"},{"id":"Xyz","name":"Xyz","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"lab?-instance-method","name":"lab?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":363,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L363"},"def":{"name":"lab?","visibility":"Public","body":"self == Lab"}},{"html_id":"xyz?-instance-method","name":"xyz?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":364,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L364"},"def":{"name":"xyz?","visibility":"Public","body":"self == Xyz"}}]},{"html_id":"vips/Vips/Enums/Precision","path":"Vips/Enums/Precision.html","kind":"enum","full_name":"Vips::Enums::Precision","name":"Precision","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":367,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L367"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Integer","name":"Integer","value":"0"},{"id":"Float","name":"Float","value":"1"},{"id":"Approximate","name":"Approximate","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"approximate?-instance-method","name":"approximate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":370,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L370"},"def":{"name":"approximate?","visibility":"Public","body":"self == Approximate"}},{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":369,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L369"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"integer?-instance-method","name":"integer?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":368,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L368"},"def":{"name":"integer?","visibility":"Public","body":"self == Integer"}}]},{"html_id":"vips/Vips/Enums/RegionShrink","path":"Vips/Enums/RegionShrink.html","kind":"enum","full_name":"Vips::Enums::RegionShrink","name":"RegionShrink","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":373,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L373"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Mean","name":"Mean","value":"0"},{"id":"Median","name":"Median","value":"1"},{"id":"Mode","name":"Mode","value":"2"},{"id":"Max","name":"Max","value":"3"},{"id":"Min","name":"Min","value":"4"},{"id":"Nearest","name":"Nearest","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"max?-instance-method","name":"max?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":377,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L377"},"def":{"name":"max?","visibility":"Public","body":"self == Max"}},{"html_id":"mean?-instance-method","name":"mean?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":374,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L374"},"def":{"name":"mean?","visibility":"Public","body":"self == Mean"}},{"html_id":"median?-instance-method","name":"median?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":375,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L375"},"def":{"name":"median?","visibility":"Public","body":"self == Median"}},{"html_id":"min?-instance-method","name":"min?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":378,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L378"},"def":{"name":"min?","visibility":"Public","body":"self == Min"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":376,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L376"},"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"nearest?-instance-method","name":"nearest?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":379,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L379"},"def":{"name":"nearest?","visibility":"Public","body":"self == Nearest"}}]},{"html_id":"vips/Vips/Enums/Saveable","path":"Vips/Enums/Saveable.html","kind":"enum","full_name":"Vips::Enums::Saveable","name":"Saveable","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":382,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L382"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Mono","name":"Mono","value":"0"},{"id":"Rgb","name":"Rgb","value":"1"},{"id":"Rgba","name":"Rgba","value":"2"},{"id":"RgbaOnly","name":"RgbaOnly","value":"3"},{"id":"RgbCmyk","name":"RgbCmyk","value":"4"},{"id":"Any","name":"Any","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"any?-instance-method","name":"any?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":388,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L388"},"def":{"name":"any?","visibility":"Public","body":"self == Any"}},{"html_id":"mono?-instance-method","name":"mono?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":383,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L383"},"def":{"name":"mono?","visibility":"Public","body":"self == Mono"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":384,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L384"},"def":{"name":"rgb?","visibility":"Public","body":"self == Rgb"}},{"html_id":"rgb_cmyk?-instance-method","name":"rgb_cmyk?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":387,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L387"},"def":{"name":"rgb_cmyk?","visibility":"Public","body":"self == RgbCmyk"}},{"html_id":"rgba?-instance-method","name":"rgba?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":385,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L385"},"def":{"name":"rgba?","visibility":"Public","body":"self == Rgba"}},{"html_id":"rgba_only?-instance-method","name":"rgba_only?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":386,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L386"},"def":{"name":"rgba_only?","visibility":"Public","body":"self == RgbaOnly"}}]},{"html_id":"vips/Vips/Enums/Signal","path":"Vips/Enums/Signal.html","kind":"enum","full_name":"Vips::Enums::Signal","name":"Signal","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":422,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L422"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PreEval","name":"PreEval","value":"0","doc":"Evaluation is starting\nThe preeval signal is emitted once before computation of `Image` starts.\nIt's a good place to set up evaluation feedback.","summary":"

    Evaluation is starting The preeval signal is emitted once before computation of Image starts.

    "},{"id":"Eval","name":"Eval","value":"1","doc":"The eval signal is emitted once per work unit (typically a 128 x 128 are of pixels)\nduring image computation\n\nYou can use this signal to update user-interfaces with progress feedback.\nBeware of updating too frequently: you will usually need some throttling mechanism","summary":"

    The eval signal is emitted once per work unit (typically a 128 x 128 are of pixels) during image computation

    "},{"id":"PostEval","name":"PostEval","value":"2","doc":"Ealuation is ending\nThe posteval signal is emitted once at the end of the computation of `Image`.\nIt's a good place to shut down evaluation feedback.","summary":"

    Ealuation is ending The posteval signal is emitted once at the end of the computation of Image.

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"doc":"Signals that can be used on an `Image`. See `GObject#signal_connect`","summary":"

    Signals that can be used on an Image.

    ","instance_methods":[{"html_id":"eval?-instance-method","name":"eval?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":433,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L433"},"def":{"name":"eval?","visibility":"Public","body":"self == Eval"}},{"html_id":"post_eval?-instance-method","name":"post_eval?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":438,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L438"},"def":{"name":"post_eval?","visibility":"Public","body":"self == PostEval"}},{"html_id":"pre_eval?-instance-method","name":"pre_eval?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":426,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L426"},"def":{"name":"pre_eval?","visibility":"Public","body":"self == PreEval"}}]},{"html_id":"vips/Vips/Enums/Size","path":"Vips/Enums/Size.html","kind":"enum","full_name":"Vips::Enums::Size","name":"Size","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":391,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L391"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Both","name":"Both","value":"0"},{"id":"Up","name":"Up","value":"1"},{"id":"Down","name":"Down","value":"2"},{"id":"Force","name":"Force","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"both?-instance-method","name":"both?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":392,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L392"},"def":{"name":"both?","visibility":"Public","body":"self == Both"}},{"html_id":"down?-instance-method","name":"down?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":394,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L394"},"def":{"name":"down?","visibility":"Public","body":"self == Down"}},{"html_id":"force?-instance-method","name":"force?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":395,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L395"},"def":{"name":"force?","visibility":"Public","body":"self == Force"}},{"html_id":"up?-instance-method","name":"up?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":393,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L393"},"def":{"name":"up?","visibility":"Public","body":"self == Up"}}]},{"html_id":"vips/Vips/Enums/Token","path":"Vips/Enums/Token.html","kind":"enum","full_name":"Vips::Enums::Token","name":"Token","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":398,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L398"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Left","name":"Left","value":"1"},{"id":"Right","name":"Right","value":"2"},{"id":"String","name":"String","value":"3"},{"id":"Equals","name":"Equals","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"equals?-instance-method","name":"equals?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":402,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L402"},"def":{"name":"equals?","visibility":"Public","body":"self == Equals"}},{"html_id":"left?-instance-method","name":"left?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":399,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L399"},"def":{"name":"left?","visibility":"Public","body":"self == Left"}},{"html_id":"right?-instance-method","name":"right?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":400,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L400"},"def":{"name":"right?","visibility":"Public","body":"self == Right"}},{"html_id":"string?-instance-method","name":"string?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":401,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/enums.cr#L401"},"def":{"name":"string?","visibility":"Public","body":"self == String"}}]}]},{"html_id":"vips/Vips/GObject","path":"Vips/GObject.html","kind":"class","full_name":"Vips::GObject","name":"GObject","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/gobject.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"finalize-instance-method","name":"finalize","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L79"},"def":{"name":"finalize","visibility":"Public","body":"LibVips.g_object_unref(@handle)"}},{"html_id":"get(name:String,gval:GValue)-instance-method","name":"get","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"args_string":"(name : String, gval : GValue)","args_html":"(name : String, gval : GValue)","location":{"filename":"src/vips/gobject.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L65"},"def":{"name":"get","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"visibility":"Public","body":"LibVips.g_object_get_property(@handle, name, gval)\ngval.get\n"}},{"html_id":"object_ref-instance-method","name":"object_ref","doc":"Increases the reference count of object","summary":"

    Increases the reference count of object

    ","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":56,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L56"},"def":{"name":"object_ref","visibility":"Public","body":"LibVips.g_object_ref(@handle)"}},{"html_id":"ref_count-instance-method","name":"ref_count","doc":"Get the reference count of object.","summary":"

    Get the reference count of object.

    ","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":61,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L61"},"def":{"name":"ref_count","visibility":"Public","body":"@handle.value.ref_count"}},{"html_id":"release_handle-instance-method","name":"release_handle","doc":"Decreases the reference count of object.\nWhen its reference count drops to 0, its memory is freed.","summary":"

    Decreases the reference count of object.

    ","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":50,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L50"},"def":{"name":"release_handle","visibility":"Public","body":"if @handle.null?\nelse\n LibVips.g_object_unref(@handle)\nend\ntrue\n"}},{"html_id":"set(name:String,gval:GValue)-instance-method","name":"set","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"args_string":"(name : String, gval : GValue)","args_html":"(name : String, gval : GValue)","location":{"filename":"src/vips/gobject.cr","line_number":70,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L70"},"def":{"name":"set","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"visibility":"Public","body":"LibVips.g_object_set_property(@handle, name, gval)"}},{"html_id":"signal_connect(signal:String,callback:Proc,data:Pointer(Void)=Pointer(Void).null):LibVips::Gulong-instance-method","name":"signal_connect","doc":"Connects a `callback` to a signal on this object.\nThe callback will be triggered every time this signal is issued on this instance.","summary":"

    Connects a callback to a signal on this object.

    ","abstract":false,"args":[{"name":"signal","external_name":"signal","restriction":"String"},{"name":"callback","external_name":"callback","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"args_string":"(signal : String, callback : Proc, data : Pointer(Void) = Pointer(Void).null) : LibVips::Gulong","args_html":"(signal : String, callback : Proc, data : Pointer(Void) = Pointer(Void).null) : LibVips::Gulong","location":{"filename":"src/vips/gobject.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L8"},"def":{"name":"signal_connect","args":[{"name":"signal","external_name":"signal","restriction":"String"},{"name":"callback","external_name":"callback","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"return_type":"LibVips::Gulong","visibility":"Public","body":"if (cb = callback.as?(Image::EvalProc))\n em = LibVips::EvalSignal.new do |imgptr, progressptr, data|\n if imgptr.null? || progressptr.null?\n next\n end\n img = Image.new(imgptr)\n progress = progressptr.value\n cb.call(img, progress)\n end\n callback = em\nend\n(LibVips.g_signal_connect_data(@handle, signal, callback.pointer, data, nil, LibVips::GConnectFlags::GConnectAfter)).tap do |ret|\n if ret == 0\n raise(VipsException.new(\"Couldn't connect signal #{signal}\"))\n end\nend\n"}},{"html_id":"signal_disconnect(handler_id:LibVips::Gulong)-instance-method","name":"signal_disconnect","doc":"Disconnects a handler from this object","summary":"

    Disconnects a handler from this object

    ","abstract":false,"args":[{"name":"handler_id","external_name":"handler_id","restriction":"LibVips::Gulong"}],"args_string":"(handler_id : LibVips::Gulong)","args_html":"(handler_id : LibVips::Gulong)","location":{"filename":"src/vips/gobject.cr","line_number":29,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L29"},"def":{"name":"signal_disconnect","args":[{"name":"handler_id","external_name":"handler_id","restriction":"LibVips::Gulong"}],"visibility":"Public","body":"if handler_id == 0\nelse\n LibVips.g_signal_handler_disconnect(@handle, handler_id)\nend"}},{"html_id":"signal_disconnect(func:Proc,data:Pointer(Void)=Pointer(Void).null)-instance-method","name":"signal_disconnect","doc":"Disconnects all handlers from this object that match `func` and `data`","summary":"

    Disconnects all handlers from this object that match func and data

    ","abstract":false,"args":[{"name":"func","external_name":"func","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"::Pointer(Void)"}],"args_string":"(func : Proc, data : Pointer(Void) = Pointer(Void).null)","args_html":"(func : Proc, data : Pointer(Void) = Pointer(Void).null)","location":{"filename":"src/vips/gobject.cr","line_number":34,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L34"},"def":{"name":"signal_disconnect","args":[{"name":"func","external_name":"func","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"::Pointer(Void)"}],"visibility":"Public","body":"LibVips.g_signal_handlers_disconnect_matched(@handle, LibVips::GSignalMatchType::GSignalMatchFunc | LibVips::GSignalMatchType::GSignalMatchData, 0, 0, Pointer(LibVips::GClosure).null, nil, data)"}},{"html_id":"signal_disconnect(data:LibVips::Gpointer)-instance-method","name":"signal_disconnect","doc":"Disconnects all handlers from this object that match","summary":"

    Disconnects all handlers from this object that match

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"LibVips::Gpointer"}],"args_string":"(data : LibVips::Gpointer)","args_html":"(data : LibVips::Gpointer)","location":{"filename":"src/vips/gobject.cr","line_number":42,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gobject.cr#L42"},"def":{"name":"signal_disconnect","args":[{"name":"data","external_name":"data","restriction":"LibVips::Gpointer"}],"visibility":"Public","body":"LibVips.g_signal_handlers_disconnect_matched(@handle, LibVips::GSignalMatchType::GSignalMatchData, 0, 0, Pointer(LibVips::GClosure).null, nil, data)"}}]},{"html_id":"vips/Vips/GValue","path":"Vips/GValue.html","kind":"class","full_name":"Vips::GValue","name":"GValue","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/gvalue.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L8"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"GBool","name":"GBool","value":"Vips.type_from_name(\"gboolean\")","doc":"The fundamental type corresponding to gboolean","summary":"

    The fundamental type corresponding to gboolean

    "},{"id":"GDouble","name":"GDouble","value":"Vips.type_from_name(\"gdouble\")","doc":"The fundamental type corresponding to gdouble","summary":"

    The fundamental type corresponding to gdouble

    "},{"id":"GEnum","name":"GEnum","value":"Vips.type_from_name(\"GEnum\")","doc":"The fundamental type from which all enumeration types are derived","summary":"

    The fundamental type from which all enumeration types are derived

    "},{"id":"GFlags","name":"GFlags","value":"Vips.type_from_name(\"GFlags\")","doc":"The fundamental type from which all flags types are derived","summary":"

    The fundamental type from which all flags types are derived

    "},{"id":"GInt","name":"GInt","value":"Vips.type_from_name(\"gint\")","doc":"The fundamental type corresponding to gint","summary":"

    The fundamental type corresponding to gint

    "},{"id":"GObject","name":"GObject","value":"Vips.type_from_name(\"GObject\")","doc":"The fundamental type for GObject","summary":"

    The fundamental type for GObject

    "},{"id":"GString","name":"GString","value":"Vips.type_from_name(\"gchararray\")","doc":"The fundamental type corresponding to null-terminated C strings.","summary":"

    The fundamental type corresponding to null-terminated C strings.

    "},{"id":"GUint64","name":"GUint64","value":"Vips.type_from_name(\"guint64\")","doc":"The fundamental type corresponding to guint64","summary":"

    The fundamental type corresponding to guint64

    "},{"id":"VArrayDouble","name":"VArrayDouble","value":"Vips.type_from_name(\"VipsArrayDouble\")","doc":"The fundamental type for VipsArrayDouble","summary":"

    The fundamental type for VipsArrayDouble

    "},{"id":"VArrayImage","name":"VArrayImage","value":"Vips.type_from_name(\"VipsArrayImage\")","doc":"The fundamental type for VipsArrayImage","summary":"

    The fundamental type for VipsArrayImage

    "},{"id":"VArrayInt","name":"VArrayInt","value":"Vips.type_from_name(\"VipsArrayInt\")","doc":"The fundamental type for VipsArrayInt","summary":"

    The fundamental type for VipsArrayInt

    "},{"id":"VBandFormat","name":"VBandFormat","value":"LibVips.vips_band_format_get_type","doc":"The fundamental type for VipsBandFormat","summary":"

    The fundamental type for VipsBandFormat

    "},{"id":"VBlendMode","name":"VBlendMode","value":"Vips.at_least_libvips?(8, 6) ? LibVips.vips_blend_mode_get_type : 0","doc":"The fundamental type for VipsBlendMode","summary":"

    The fundamental type for VipsBlendMode

    "},{"id":"VBlob","name":"VBlob","value":"Vips.type_from_name(\"VipsBlob\")","doc":"The fundamental type for VipsBlob","summary":"

    The fundamental type for VipsBlob

    "},{"id":"VImageType","name":"VImageType","value":"Vips.type_from_name(\"VipsImage\")","doc":"The fundamental type for VipsImage","summary":"

    The fundamental type for VipsImage

    "},{"id":"VRefStr","name":"VRefStr","value":"Vips.type_from_name(\"VipsRefString\")","doc":"The fundamental type for VipsRefString","summary":"

    The fundamental type for VipsRefString

    "},{"id":"VSource","name":"VSource","value":"Vips.at_least_libvips?(8, 9) ? Vips.type_from_name(\"VipsSource\") : 0","doc":"The fundamental type for VipsSource","summary":"

    The fundamental type for VipsSource

    "},{"id":"VTarget","name":"VTarget","value":"Vips.at_least_libvips?(8, 9) ? Vips.type_from_name(\"VipsTarget\") : 0","doc":"The fundamental type for VipsTarget","summary":"

    The fundamental type for VipsTarget

    "}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Class to wrap `LibVips::GValue` in a Crystal class.\nThis class wraps `LibVips::GValue` in a convenient interface. You can use\ninstances of this class to get and set `GObject` properties.\nOn construction, `LibVips::GValue` is all zero (empty). You can pass it to\na get function to have it filled by `GObject`, or use `initialize(gvalue)` to\nset a type, `set` to set a value, then use it to set an object property.","summary":"

    Class to wrap LibVips::GValue in a Crystal class.

    ","constructors":[{"html_id":"new(value:GValue)-class-method","name":"new","doc":"Initialize new instance with specified `GValue`","summary":"

    Initialize new instance with specified GValue

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"GValue"}],"args_string":"(value : GValue)","args_html":"(value : GValue)","location":{"filename":"src/vips/gvalue.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L18"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"GValue"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new-class-method","name":"new","doc":"Initialize new instance of `GValue`","summary":"

    Initialize new instance of GValue

    ","abstract":false,"location":{"filename":"src/vips/gvalue.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L12"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"get:Type-instance-method","name":"get","doc":"Get the contents of a GValue\nThe contents of the GValue are read out as a Crystal type","summary":"

    Get the contents of a GValue The contents of the GValue are read out as a Crystal type

    ","abstract":false,"location":{"filename":"src/vips/gvalue.cr","line_number":113,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L113"},"def":{"name":"get","return_type":"Type","visibility":"Public","body":"gtype = get_type\nfundamental = Vips.fundamental_type(gtype)\nresult = if gtype == GBool\n LibVips.g_value_get_boolean(self)\nelse\n if gtype == GInt\n LibVips.g_value_get_int(self)\n else\n if gtype == GUint64\n LibVips.g_value_get_uint64(self)\n else\n if gtype == GDouble\n LibVips.g_value_get_double(self)\n else\n if fundamental == GEnum\n LibVips.g_value_get_enum(self)\n else\n if fundamental == GFlags\n LibVips.g_value_get_flags(self)\n else\n if gtype == GString\n String.new((LibVips.g_value_get_string(self)) || Bytes.empty)\n else\n if gtype == VRefStr\n res = LibVips.vips_value_get_ref_string(self, out size)\n String.new(res, size)\n else\n if gtype == VImageType\n vi = LibVips.g_value_get_object(self)\n image = Image.new(vi.as(::Pointer(LibVips::VipsImage)))\n image.object_ref\n image\n else\n if gtype == VArrayInt\n ptr = LibVips.vips_value_get_array_int(self, out vsize)\n Array(Int32).new(vsize) do |i|\n ptr[i]\n end\n else\n if gtype == VArrayDouble\n ptr = LibVips.vips_value_get_array_double(self, out dsize)\n Array(Float64).new(dsize) do |i|\n ptr[i]\n end\n else\n if gtype == VArrayImage\n ptr = LibVips.vips_value_get_array_image(self, out isize)\n Array(Image).new(isize) do |i|\n image = Image.new(ptr[i])\n image.object_ref\n image\n end\n else\n if gtype == VBlob\n ptr = LibVips.vips_value_get_blob(self, out bsize)\n res = Bytes.new(bsize)\n res.to_unsafe.copy_from(ptr.as(::Pointer(UInt8)), bsize.to_i)\n res\n else\n raise(VipsException.new(\"unsupported gtype for get #{Vips.typename(gtype)}, fundamental #{Vips.typename(fundamental)}\"))\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\nend\nType.new(result)\n"}},{"html_id":"get_type-instance-method","name":"get_type","doc":"Get the GType of this GValue","summary":"

    Get the GType of this GValue

    ","abstract":false,"location":{"filename":"src/vips/gvalue.cr","line_number":170,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L170"},"def":{"name":"get_type","visibility":"Public","body":"@value.g_type"}},{"html_id":"set(value)-instance-method","name":"set","doc":"Set a GValue\nThe value is converted to the type of the GValue, if possible, and assigned","summary":"

    Set a GValue The value is converted to the type of the GValue, if possible, and assigned

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""}],"args_string":"(value)","args_html":"(value)","location":{"filename":"src/vips/gvalue.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L35"},"def":{"name":"set","args":[{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gtype = get_type\nfundamental = Vips.fundamental_type(gtype)\nif value.is_a?(Type)\n value = value.value\nend\nif gtype == GBool\n LibVips.g_value_set_boolean(self, ( value ? 1 : 0))\nelse\n if gtype == GInt\n LibVips.g_value_set_int(self, Converter.to_i32(value))\n else\n if gtype == GUint64\n LibVips.g_value_set_uint64(self, Converter.to_u64(value))\n else\n if gtype == GDouble\n LibVips.g_value_set_double(self, Converter.to_double(value))\n else\n if fundamental == GEnum\n LibVips.g_value_set_enum(self, Converter.to_i32(value))\n else\n if fundamental == GFlags\n LibVips.g_value_set_flags(self, Converter.to_u32(value))\n else\n if gtype == GString\n LibVips.g_value_set_string(self, Converter.to_string(value))\n else\n if gtype == VRefStr\n LibVips.vips_value_set_ref_string(self, Converter.to_string(value))\n else\n if (fundamental == GObject) && (obj = value.as?(Vips::GObject))\n LibVips.g_value_set_object(self, obj.handle)\n else\n if gtype == VArrayInt\n aval = value.is_a?(Array) ? value : [value]\n intarr = case aval\n when Array(Int32)\n aval\n when Array\n Array(Int32).new(aval.size) do |i|\n Converter.to_i32(aval[i])\n end\n else\n raise(VipsException.new(\"unsuported value type #{typeof(value)} for gtype #{Vips.typename(gtype)} \"))\n end\n LibVips.vips_value_set_array_int(self, intarr, intarr.size)\n else\n if gtype == VArrayDouble\n aval = value.is_a?(Array) ? value : [value]\n intarr = case aval\n when Array(Float64)\n aval\n when Array\n Array(Float64).new(aval.size) do |i|\n Converter.to_double(aval[i])\n end\n else\n raise(VipsException.new(\"unsuported value type #{typeof(value)} for gtype #{Vips.typename(gtype)} \"))\n end\n LibVips.vips_value_set_array_double(self, intarr, intarr.size)\n else\n if (gtype == VArrayImage) && (images = value.as?(Array(Image)))\n size = images.size\n LibVips.vips_value_set_array_image(self, size)\n ptr = LibVips.vips_value_get_array_image(self, out _)\n ptr.map_with_index!(size) do |_, i|\n images[i].object_ref.as(::Pointer(LibVips::VipsImage))\n end\n else\n if (gtype == VBlob) && (blob = value.as?(VipsBlob))\n LibVips.g_value_set_boxed(self, blob)\n else\n if gtype == VBlob\n mem = case value\n when String\n value.to_slice\n when Array(Char)\n (String.new(value)).to_slice\n when Bytes\n value\n else\n raise(VipsException.new(\"unsuported value type #{typeof(value)} for gtype #{Vips.typename(gtype)} \"))\n end\n ptr = LibVips.g_malloc(mem.size)\n ptr.copy_from(mem.to_unsafe.as(::Pointer(Void)), mem.size)\n if Vips.at_least_libvips?(8, 6)\n LibVips.vips_value_set_blob_free(self, ptr, mem.size)\n else\n free = LibVips::VipsCallbackFn.new do |a, b|\n LibVips.g_free(a)\n 0\n end\n LibVips.vips_value_set_blob(self, free, ptr, mem.size)\n end\n else\n raise(VipsException.new(\"unsupported gtype for set #{Vips.typename(gtype)}, fundamental #{Vips.typename(fundamental)}, value type #{typeof(value)}\"))\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\nend\n"}},{"html_id":"set_type(type):Nil-instance-method","name":"set_type","doc":"Set the type of a GValue\nGValues have a set type, fixed at creation time. Use this method to set\nthe type of GValue before assiging to it.\n\nGTypes are 32 or 64-bit integers (depending on platform).","summary":"

    Set the type of a GValue GValues have a set type, fixed at creation time.

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":""}],"args_string":"(type) : Nil","args_html":"(type) : Nil","location":{"filename":"src/vips/gvalue.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/gvalue.cr#L28"},"def":{"name":"set_type","args":[{"name":"type","external_name":"type","restriction":""}],"return_type":"Nil","visibility":"Public","body":"LibVips.g_value_init(self, type)\n@initialized = true\n"}}]},{"html_id":"vips/Vips/Image","path":"Vips/Image.html","kind":"class","full_name":"Vips::Image","name":"Image","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/ext/image.cr","line_number":13,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L13"},{"filename":"src/vips/image.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/MutableImage","kind":"class","full_name":"Vips::MutableImage","name":"MutableImage"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"class_methods":[{"html_id":"analyzeload(filename:String,**kwargs)-class-method","name":"analyzeload","doc":"Load an analyze6 image\n\n```\n# out_, flags = Vips::Image.analyzeload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load an analyze6 image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":125,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L125"},"def":{"name":"analyzeload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"analyzeload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"arrayjoin(in_:Array(Image),**kwargs)-class-method","name":"arrayjoin","doc":"Join an array of images\n\n```\n# out_ = Vips::Image.arrayjoin(in_, {across: Int32, shim: Int32, background: Array(Float64), halign: Enums::Align, valign: Enums::Align, hspacing: Int32, vspacing: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*in* : Array(Image) - Array of input images\n\n_Optionals_\n\n*across* : Int32 - Number of images across grid\n\n*shim* : Int32 - Pixels between images\n\n*background* : Array(Float64) - Colour for new pixels\n\n*halign* : Enums::Align - Align on the left, centre or right\n\n*valign* : Enums::Align - Align on the top, centre or bottom\n\n*hspacing* : Int32 - Horizontal spacing between images\n\n*vspacing* : Int32 - Vertical spacing between images\n\n\n**Returns**\n\nOutput image\n","summary":"

    Join an array of images

    ","abstract":false,"args":[{"name":"in_","external_name":"in_","restriction":"Array(Image)"}],"args_string":"(in_ : Array(Image), **kwargs)","args_html":"(in_ : Array(Image), **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":172,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L172"},"def":{"name":"arrayjoin","args":[{"name":"in_","external_name":"in_","restriction":"Array(Image)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"arrayjoin\", options, in_)).as(Type)).as_image\n"}},{"html_id":"black(width:Int32,height:Int32,**kwargs)-class-method","name":"black","doc":"Make a black image\n\n```\n# out_ = Vips::Image.black(width, height, {bands: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*bands* : Int32 - Number of bands in image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a black image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":354,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L354"},"def":{"name":"black","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"black\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"csvload(filename:String,**kwargs)-class-method","name":"csvload","doc":"Load csv\n\n```\n# out_, flags = Vips::Image.csvload(filename, {skip: Int32, lines: Int32, whitespace: String, separator: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*skip* : Int32 - Skip this many lines at the start of the file\n\n*lines* : Int32 - Read this many lines from the file\n\n*whitespace* : String - Set of whitespace characters\n\n*separator* : String - Set of separator characters\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load csv

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1010,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1010"},"def":{"name":"csvload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"csvload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"csvload_source(source:Source,**kwargs)-class-method","name":"csvload_source","doc":"Load csv\n\n```\n# out_, flags = Vips::Image.csvload_source(source, {skip: Int32, lines: Int32, whitespace: String, separator: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*skip* : Int32 - Skip this many lines at the start of the file\n\n*lines* : Int32 - Read this many lines from the file\n\n*whitespace* : String - Set of whitespace characters\n\n*separator* : String - Set of separator characters\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load csv

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1061,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1061"},"def":{"name":"csvload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"csvload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"csvload_stream(stream:IO,**kwargs)-class-method","name":"csvload_stream","doc":"Load csv\n\n```\n# out_, flags = Vips::Image.csvload_stream(stream, {skip: Int32, lines: Int32, whitespace: String, separator: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*skip* : Int32 - Skip this many lines at the start of the file\n\n*lines* : Int32 - Read this many lines from the file\n\n*whitespace* : String - Set of whitespace characters\n\n*separator* : String - Set of separator characters\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load csv

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1107,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1107"},"def":{"name":"csvload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\ncsvload_source(source, **kwargs)\n"}},{"html_id":"eye(width:Int32,height:Int32,**kwargs)-class-method","name":"eye","doc":"Make an image showing the eye's spatial response\n\n```\n# out_ = Vips::Image.eye(width, height, {uchar: Bool, factor: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*factor* : Float64 - Maximum spatial frequency\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an image showing the eye's spatial response

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1635,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1635"},"def":{"name":"eye","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"eye\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"find_load(filename:String)-class-method","name":"find_load","doc":"Find the name of the load operation vips will use to load a file.\nFor example \"VipsForeignLoadJpegFile\". You can use this to work out what\noptions to pass to `new_from_file`","summary":"

    Find the name of the load operation vips will use to load a file.

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String)","args_html":"(filename : String)","location":{"filename":"src/vips/image.cr","line_number":58,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L58"},"def":{"name":"find_load","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"visibility":"Public","body":"ptr = LibVips.vips_foreign_find_load(filename)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"find_load_buffer(data:Bytes)-class-method","name":"find_load_buffer","doc":"Find the name of the load operation vips will use to load a buffer.\nFor example \"VipsForeignLoadJpegBuffer\". You can use this to work out what\noptions to pass to `new_from_buffer`","summary":"

    Find the name of the load operation vips will use to load a buffer.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/vips/image.cr","line_number":66,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L66"},"def":{"name":"find_load_buffer","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"ptr = LibVips.vips_foreign_find_load_buffer(Box.box(data), data.size)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"find_load_buffer(data:String)-class-method","name":"find_load_buffer","doc":"Find the name of the load operation vips will use to load a buffer.\nFor example \"VipsForeignLoadJpegBuffer\". You can use this to work out what\noptions to pass to `new_from_buffer`","summary":"

    Find the name of the load operation vips will use to load a buffer.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/vips/image.cr","line_number":74,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L74"},"def":{"name":"find_load_buffer","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"find_load_buffer(data.to_slice)"}},{"html_id":"find_load_source(source:Source)-class-method","name":"find_load_source","doc":" Find the name of the load operation vips will use to load a source.\nFor example \"VipsForeignLoadJpegSource\". You can use this to work out what\noptions to pass to `new_from_source`","summary":"

    Find the name of the load operation vips will use to load a source.

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source)","args_html":"(source : Source)","location":{"filename":"src/vips/image.cr","line_number":81,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L81"},"def":{"name":"find_load_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"visibility":"Public","body":"ptr = LibVips.vips_foreign_find_load_source(source)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"find_load_stream(stream:Stream)-class-method","name":"find_load_stream","doc":"Find the name of the load operation vips will use to load a stream.\nFor example \"VipsForeignLoadJpegSource\". You can use this to work out what\noptions to pass to `new_from_stream`","summary":"

    Find the name of the load operation vips will use to load a stream.

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"Stream"}],"args_string":"(stream : Stream)","args_html":"(stream : Stream)","location":{"filename":"src/vips/image.cr","line_number":89,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L89"},"def":{"name":"find_load_stream","args":[{"name":"stream","external_name":"stream","restriction":"Stream"}],"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nfind_load_source(source)\n"}},{"html_id":"fitsload(filename:String,**kwargs)-class-method","name":"fitsload","doc":"Load a fits image\n\n```\n# out_, flags = Vips::Image.fitsload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a fits image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1769,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1769"},"def":{"name":"fitsload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"fitsload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"fitsload_source(source:Source,**kwargs)-class-method","name":"fitsload_source","doc":"Load fits from a source\n\n```\n# out_, flags = Vips::Image.fitsload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load fits from a source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1812,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1812"},"def":{"name":"fitsload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"fitsload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"fitsload_stream(stream:IO,**kwargs)-class-method","name":"fitsload_stream","doc":"Load fits from a stream\n\n```\n# out_, flags = Vips::Image.fitsload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load fits from a stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1850,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1850"},"def":{"name":"fitsload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nfitsload_source(source, **kwargs)\n"}},{"html_id":"fractsurf(width:Int32,height:Int32,fractal_dimension:Float64)-class-method","name":"fractsurf","doc":"Make a fractal surface\n\n```\n# out_ = Vips::Image.fractsurf(width, height, fractal_dimension)\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*fractal_dimension* : Float64 - Fractal dimension\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a fractal surface

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, fractal_dimension : Float64)","args_html":"(width : Int32, height : Int32, fractal_dimension : Float64)","location":{"filename":"src/vips/ext/image.cr","line_number":1967,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1967"},"def":{"name":"fractsurf","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"visibility":"Public","body":"((Operation.call(\"fractsurf\", width, height, fractal_dimension)).as(Type)).as_image"}},{"html_id":"gaussmat(sigma:Float64,min_ampl:Float64,**kwargs)-class-method","name":"gaussmat","doc":"Make a gaussian image\n\n```\n# out_ = Vips::Image.gaussmat(sigma, min_ampl, {separable: Bool, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sigma* : Float64 - Sigma of Gaussian\n\n*min_ampl* : Float64 - Minimum amplitude of Gaussian\n\n_Optionals_\n\n*separable* : Bool - Generate separable Gaussian\n\n*precision* : Enums::Precision - Generate with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian image

    ","abstract":false,"args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"args_string":"(sigma : Float64, min_ampl : Float64, **kwargs)","args_html":"(sigma : Float64, min_ampl : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2088,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2088"},"def":{"name":"gaussmat","args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"gaussmat\", options, sigma, min_ampl)).as(Type)).as_image\n"}},{"html_id":"gaussnoise(width:Int32,height:Int32,**kwargs)-class-method","name":"gaussnoise","doc":"Make a gaussnoise image\n\n```\n# out_ = Vips::Image.gaussnoise(width, height, {sigma: Float64, mean: Float64, seed: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*sigma* : Float64 - Standard deviation of pixels in generated image\n\n*mean* : Float64 - Mean of pixels in generated image\n\n*seed* : Int32 - Random number seed\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussnoise image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2122,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2122"},"def":{"name":"gaussnoise","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"gaussnoise\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"gifload(filename:String,**kwargs)-class-method","name":"gifload","doc":"Load gif with libnsgif\n\n```\n# out_, flags = Vips::Image.gifload(filename, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load gif with libnsgif

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2186,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2186"},"def":{"name":"gifload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"gifload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"gifload_buffer(buffer:Bytes,**kwargs)-class-method","name":"gifload_buffer","doc":"Load gif with libnsgif\n\n```\n# out_, flags = Vips::Image.gifload_buffer(buffer, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load gif with libnsgif

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2233,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2233"},"def":{"name":"gifload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"gifload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"gifload_source(source:Source,**kwargs)-class-method","name":"gifload_source","doc":"Load gif from source\n\n```\n# out_, flags = Vips::Image.gifload_source(source, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load gif from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2280,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2280"},"def":{"name":"gifload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"gifload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"gifload_stream(stream:IO,**kwargs)-class-method","name":"gifload_stream","doc":"Load gif from stream\n\n```\n# out_, flags = Vips::Image.gifload_stream(stream, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load gif from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2322,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2322"},"def":{"name":"gifload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\ngifload_source(source, **kwargs)\n"}},{"html_id":"grey(width:Int32,height:Int32,**kwargs)-class-method","name":"grey","doc":"Make a grey ramp image\n\n```\n# out_ = Vips::Image.grey(width, height, {uchar: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a grey ramp image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2573,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2573"},"def":{"name":"grey","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"grey\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"heifload(filename:String,**kwargs)-class-method","name":"heifload","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload(filename, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2643,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2643"},"def":{"name":"heifload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"heifload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"heifload_buffer(buffer:Bytes,**kwargs)-class-method","name":"heifload_buffer","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload_buffer(buffer, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2694,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2694"},"def":{"name":"heifload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"heifload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"heifload_source(source:Source,**kwargs)-class-method","name":"heifload_source","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload_source(source, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2745,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2745"},"def":{"name":"heifload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"heifload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"heifload_stream(stream:IO,**kwargs)-class-method","name":"heifload_stream","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload_stream(stream, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2791,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2791"},"def":{"name":"heifload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nheifload_source(source, **kwargs)\n"}},{"html_id":"identity(**kwargs)-class-method","name":"identity","doc":"Make a 1d image where pixel values are indexes\n\n```\n# out_ = Vips::Image.identity({bands: Int32, ushort: Bool, size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*bands* : Int32 - Number of bands in LUT\n\n*ushort* : Bool - Create a 16-bit LUT\n\n*size* : Int32 - Size of 16-bit LUT\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a 1d image where pixel values are indexes

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3216,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3216"},"def":{"name":"identity","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"identity\", options)).as(Type)).as_image\n"}},{"html_id":"jp2kload(filename:String,**kwargs)-class-method","name":"jp2kload","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload(filename, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3387,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3387"},"def":{"name":"jp2kload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jp2kload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jp2kload_buffer(buffer:Bytes,**kwargs)-class-method","name":"jp2kload_buffer","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload_buffer(buffer, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3432,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3432"},"def":{"name":"jp2kload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jp2kload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jp2kload_source(source:Source,**kwargs)-class-method","name":"jp2kload_source","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload_source(source, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3477,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3477"},"def":{"name":"jp2kload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jp2kload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jp2kload_stream(stream:IO,**kwargs)-class-method","name":"jp2kload_stream","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload_stream(stream, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3517,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3517"},"def":{"name":"jp2kload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\njp2kload_source(source, **kwargs)\n"}},{"html_id":"jpegload(filename:String,**kwargs)-class-method","name":"jpegload","doc":"Load jpeg from file\n\n```\n# out_, flags = Vips::Image.jpegload(filename, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3704,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3704"},"def":{"name":"jpegload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jpegload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jpegload_buffer(buffer:Bytes,**kwargs)-class-method","name":"jpegload_buffer","doc":"Load jpeg from buffer\n\n```\n# out_, flags = Vips::Image.jpegload_buffer(buffer, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3753,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3753"},"def":{"name":"jpegload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jpegload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jpegload_source(source:Source,**kwargs)-class-method","name":"jpegload_source","doc":"Load image from jpeg source\n\n```\n# out_, flags = Vips::Image.jpegload_source(source, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load image from jpeg source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3802,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3802"},"def":{"name":"jpegload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jpegload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jpegload_stream(stream:IO,**kwargs)-class-method","name":"jpegload_stream","doc":"Load image from jpeg stream\n\n```\n# out_, flags = Vips::Image.jpegload_stream(stream, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load image from jpeg stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3846,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3846"},"def":{"name":"jpegload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\njpegload_source(source, **kwargs)\n"}},{"html_id":"jxlload(filename:String,**kwargs)-class-method","name":"jxlload","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4110,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4110"},"def":{"name":"jxlload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jxlload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jxlload_buffer(buffer:Bytes,**kwargs)-class-method","name":"jxlload_buffer","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload_buffer(buffer, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4153,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4153"},"def":{"name":"jxlload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jxlload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jxlload_source(source:Source,**kwargs)-class-method","name":"jxlload_source","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4196,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4196"},"def":{"name":"jxlload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jxlload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jxlload_stream(stream:IO,**kwargs)-class-method","name":"jxlload_stream","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4234,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4234"},"def":{"name":"jxlload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\njxlload_source(source, **kwargs)\n"}},{"html_id":"logmat(sigma:Float64,min_ampl:Float64,**kwargs)-class-method","name":"logmat","doc":"Make a laplacian of gaussian image\n\n```\n# out_ = Vips::Image.logmat(sigma, min_ampl, {separable: Bool, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sigma* : Float64 - Radius of Gaussian\n\n*min_ampl* : Float64 - Minimum amplitude of Gaussian\n\n_Optionals_\n\n*separable* : Bool - Generate separable Gaussian\n\n*precision* : Enums::Precision - Generate with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a laplacian of gaussian image

    ","abstract":false,"args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"args_string":"(sigma : Float64, min_ampl : Float64, **kwargs)","args_html":"(sigma : Float64, min_ampl : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4672,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4672"},"def":{"name":"logmat","args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"logmat\", options, sigma, min_ampl)).as(Type)).as_image\n"}},{"html_id":"magickload(filename:String,**kwargs)-class-method","name":"magickload","doc":"Load file with imagemagick7\n\n```\n# out_, flags = Vips::Image.magickload(filename, {density: String, page: Int32, n: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*density* : String - Canvas resolution for rendering vector formats like SVG\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load file with imagemagick7

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4714,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4714"},"def":{"name":"magickload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"magickload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"magickload_buffer(buffer:Bytes,**kwargs)-class-method","name":"magickload_buffer","doc":"Load buffer with imagemagick7\n\n```\n# out_, flags = Vips::Image.magickload_buffer(buffer, {density: String, page: Int32, n: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*density* : String - Canvas resolution for rendering vector formats like SVG\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load buffer with imagemagick7

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4763,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4763"},"def":{"name":"magickload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"magickload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"mask_butterworth(width:Int32,height:Int32,order:Float64,frequency_cutoff:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_butterworth","doc":"Make a butterworth filter\n\n```\n# out_ = Vips::Image.mask_butterworth(width, height, order, frequency_cutoff, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*order* : Float64 - Filter order\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a butterworth filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5024,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5024"},"def":{"name":"mask_butterworth","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_butterworth\", options, width, height, order, frequency_cutoff, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_butterworth_band(width:Int32,height:Int32,order:Float64,frequency_cutoff_x:Float64,frequency_cutoff_y:Float64,radius:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_butterworth_band","doc":"Make a butterworth_band filter\n\n```\n# out_ = Vips::Image.mask_butterworth_band(width, height, order, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*order* : Float64 - Filter order\n\n*frequency_cutoff_x* : Float64 - Frequency cutoff x\n\n*frequency_cutoff_y* : Float64 - Frequency cutoff y\n\n*radius* : Float64 - Radius of circle\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a butterworth_band filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, order : Float64, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, order : Float64, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5070,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5070"},"def":{"name":"mask_butterworth_band","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_butterworth_band\", options, width, height, order, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_butterworth_ring(width:Int32,height:Int32,order:Float64,frequency_cutoff:Float64,amplitude_cutoff:Float64,ringwidth:Float64,**kwargs)-class-method","name":"mask_butterworth_ring","doc":"Make a butterworth ring filter\n\n```\n# out_ = Vips::Image.mask_butterworth_ring(width, height, order, frequency_cutoff, amplitude_cutoff, ringwidth, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*order* : Float64 - Filter order\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n*ringwidth* : Float64 - Ringwidth\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a butterworth ring filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5114,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5114"},"def":{"name":"mask_butterworth_ring","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_butterworth_ring\", options, width, height, order, frequency_cutoff, amplitude_cutoff, ringwidth)).as(Type)).as_image\n"}},{"html_id":"mask_fractal(width:Int32,height:Int32,fractal_dimension:Float64,**kwargs)-class-method","name":"mask_fractal","doc":"Make fractal filter\n\n```\n# out_ = Vips::Image.mask_fractal(width, height, fractal_dimension, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*fractal_dimension* : Float64 - Fractal dimension\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make fractal filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, fractal_dimension : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, fractal_dimension : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5152,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5152"},"def":{"name":"mask_fractal","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_fractal\", options, width, height, fractal_dimension)).as(Type)).as_image\n"}},{"html_id":"mask_gaussian(width:Int32,height:Int32,frequency_cutoff:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_gaussian","doc":"Make a gaussian filter\n\n```\n# out_ = Vips::Image.mask_gaussian(width, height, frequency_cutoff, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5192,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5192"},"def":{"name":"mask_gaussian","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_gaussian\", options, width, height, frequency_cutoff, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_gaussian_band(width:Int32,height:Int32,frequency_cutoff_x:Float64,frequency_cutoff_y:Float64,radius:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_gaussian_band","doc":"Make a gaussian filter\n\n```\n# out_ = Vips::Image.mask_gaussian_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff_x* : Float64 - Frequency cutoff x\n\n*frequency_cutoff_y* : Float64 - Frequency cutoff y\n\n*radius* : Float64 - Radius of circle\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5236,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5236"},"def":{"name":"mask_gaussian_band","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_gaussian_band\", options, width, height, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_gaussian_ring(width:Int32,height:Int32,frequency_cutoff:Float64,amplitude_cutoff:Float64,ringwidth:Float64,**kwargs)-class-method","name":"mask_gaussian_ring","doc":"Make a gaussian ring filter\n\n```\n# out_ = Vips::Image.mask_gaussian_ring(width, height, frequency_cutoff, amplitude_cutoff, ringwidth, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n*ringwidth* : Float64 - Ringwidth\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian ring filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5278,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5278"},"def":{"name":"mask_gaussian_ring","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_gaussian_ring\", options, width, height, frequency_cutoff, amplitude_cutoff, ringwidth)).as(Type)).as_image\n"}},{"html_id":"mask_ideal(width:Int32,height:Int32,frequency_cutoff:Float64,**kwargs)-class-method","name":"mask_ideal","doc":"Make an ideal filter\n\n```\n# out_ = Vips::Image.mask_ideal(width, height, frequency_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an ideal filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5316,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5316"},"def":{"name":"mask_ideal","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_ideal\", options, width, height, frequency_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_ideal_band(width:Int32,height:Int32,frequency_cutoff_x:Float64,frequency_cutoff_y:Float64,radius:Float64,**kwargs)-class-method","name":"mask_ideal_band","doc":"Make an ideal band filter\n\n```\n# out_ = Vips::Image.mask_ideal_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff_x* : Float64 - Frequency cutoff x\n\n*frequency_cutoff_y* : Float64 - Frequency cutoff y\n\n*radius* : Float64 - Radius of circle\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an ideal band filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5358,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5358"},"def":{"name":"mask_ideal_band","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_ideal_band\", options, width, height, frequency_cutoff_x, frequency_cutoff_y, radius)).as(Type)).as_image\n"}},{"html_id":"mask_ideal_ring(width:Int32,height:Int32,frequency_cutoff:Float64,ringwidth:Float64,**kwargs)-class-method","name":"mask_ideal_ring","doc":"Make an ideal ring filter\n\n```\n# out_ = Vips::Image.mask_ideal_ring(width, height, frequency_cutoff, ringwidth, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*ringwidth* : Float64 - Ringwidth\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an ideal ring filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, ringwidth : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, ringwidth : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5398,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5398"},"def":{"name":"mask_ideal_ring","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_ideal_ring\", options, width, height, frequency_cutoff, ringwidth)).as(Type)).as_image\n"}},{"html_id":"matload(filename:String,**kwargs)-class-method","name":"matload","doc":"Load mat from file\n\n```\n# out_, flags = Vips::Image.matload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load mat from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5554,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5554"},"def":{"name":"matload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"matload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"matrixload(filename:String,**kwargs)-class-method","name":"matrixload","doc":"Load matrix\n\n```\n# out_, flags = Vips::Image.matrixload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load matrix

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5612,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5612"},"def":{"name":"matrixload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"matrixload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"matrixload_source(source:Source,**kwargs)-class-method","name":"matrixload_source","doc":"Load matrix\n\n```\n# out_, flags = Vips::Image.matrixload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load matrix

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5655,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5655"},"def":{"name":"matrixload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"matrixload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"matrixload_stream(stream:IO,**kwargs)-class-method","name":"matrixload_stream","doc":"Load matrix\n\n```\n# out_, flags = Vips::Image.matrixload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load matrix

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5693,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5693"},"def":{"name":"matrixload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nmatrixload_source(source, **kwargs)\n"}},{"html_id":"openexrload(filename:String,**kwargs)-class-method","name":"openexrload","doc":"Load an openexr image\n\n```\n# out_, flags = Vips::Image.openexrload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load an openexr image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6200,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6200"},"def":{"name":"openexrload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"openexrload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"openslideload(filename:String,**kwargs)-class-method","name":"openslideload","doc":"Load file with openslide\n\n```\n# out_, flags = Vips::Image.openslideload(filename, {level: Int32, autocrop: Bool, associated: String, attach_associated: Bool, rgb: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*level* : Int32 - Load this level from the file\n\n*autocrop* : Bool - Crop to image bounds\n\n*associated* : String - Load this associated image\n\n*attach_associated* : Bool - Attach all associated images\n\n*rgb* : Bool - Output RGB (not RGBA)\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load file with openslide

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6253,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6253"},"def":{"name":"openslideload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"openslideload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"openslideload_source(source:Source,**kwargs)-class-method","name":"openslideload_source","doc":"Load source with openslide\n\n```\n# out_, flags = Vips::Image.openslideload_source(source, {level: Int32, autocrop: Bool, associated: String, attach_associated: Bool, rgb: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*level* : Int32 - Load this level from the file\n\n*autocrop* : Bool - Crop to image bounds\n\n*associated* : String - Load this associated image\n\n*attach_associated* : Bool - Attach all associated images\n\n*rgb* : Bool - Output RGB (not RGBA)\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load source with openslide

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6306,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6306"},"def":{"name":"openslideload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"openslideload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"openslideload_stream(stream:IO,**kwargs)-class-method","name":"openslideload_stream","doc":"Load stream with openslide\n\n```\n# out_, flags = Vips::Image.openslideload_stream(stream, {level: Int32, autocrop: Bool, associated: String, attach_associated: Bool, rgb: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*level* : Int32 - Load this level from the file\n\n*autocrop* : Bool - Crop to image bounds\n\n*associated* : String - Load this associated image\n\n*attach_associated* : Bool - Attach all associated images\n\n*rgb* : Bool - Output RGB (not RGBA)\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load stream with openslide

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6354,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6354"},"def":{"name":"openslideload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nopenslideload_source(source, **kwargs)\n"}},{"html_id":"pdfload(filename:String,**kwargs)-class-method","name":"pdfload","doc":"Load pdf from file\n\n```\n# out_, flags = Vips::Image.pdfload(filename, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load pdf from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6464,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6464"},"def":{"name":"pdfload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pdfload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pdfload_buffer(buffer:Bytes,**kwargs)-class-method","name":"pdfload_buffer","doc":"Load pdf from buffer\n\n```\n# out_, flags = Vips::Image.pdfload_buffer(buffer, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load pdf from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6519,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6519"},"def":{"name":"pdfload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pdfload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pdfload_source(source:Source,**kwargs)-class-method","name":"pdfload_source","doc":"Load pdf from source\n\n```\n# out_, flags = Vips::Image.pdfload_source(source, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load pdf from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6574,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6574"},"def":{"name":"pdfload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pdfload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pdfload_stream(stream:IO,**kwargs)-class-method","name":"pdfload_stream","doc":"Load pdf from stream\n\n```\n# out_, flags = Vips::Image.pdfload_stream(stream, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load pdf from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6624,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6624"},"def":{"name":"pdfload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\npdfload_source(source, **kwargs)\n"}},{"html_id":"perlin(width:Int32,height:Int32,**kwargs)-class-method","name":"perlin","doc":"Make a perlin noise image\n\n```\n# out_ = Vips::Image.perlin(width, height, {cell_size: Int32, uchar: Bool, seed: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*cell_size* : Int32 - Size of Perlin cells\n\n*uchar* : Bool - Output an unsigned char image\n\n*seed* : Int32 - Random number seed\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a perlin noise image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6679,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6679"},"def":{"name":"perlin","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"perlin\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"pngload(filename:String,**kwargs)-class-method","name":"pngload","doc":"Load png from file\n\n```\n# out_, flags = Vips::Image.pngload(filename, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load png from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6865,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6865"},"def":{"name":"pngload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pngload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pngload_buffer(buffer:Bytes,**kwargs)-class-method","name":"pngload_buffer","doc":"Load png from buffer\n\n```\n# out_, flags = Vips::Image.pngload_buffer(buffer, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load png from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6910,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6910"},"def":{"name":"pngload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pngload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pngload_source(source:Source,**kwargs)-class-method","name":"pngload_source","doc":"Load png from source\n\n```\n# out_, flags = Vips::Image.pngload_source(source, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load png from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6955,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6955"},"def":{"name":"pngload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pngload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pngload_stream(stream:IO,**kwargs)-class-method","name":"pngload_stream","doc":"Load png from stream\n\n```\n# out_, flags = Vips::Image.pngload_stream(stream, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load png from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6995,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6995"},"def":{"name":"pngload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\npngload_source(source, **kwargs)\n"}},{"html_id":"ppmload(filename:String,**kwargs)-class-method","name":"ppmload","doc":"Load ppm from file\n\n```\n# out_, flags = Vips::Image.ppmload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load ppm from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7271,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7271"},"def":{"name":"ppmload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"ppmload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"ppmload_source(source:Source,**kwargs)-class-method","name":"ppmload_source","doc":"Load ppm base class\n\n```\n# out_, flags = Vips::Image.ppmload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load ppm base class

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7314,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7314"},"def":{"name":"ppmload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"ppmload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"ppmload_stream(stream:IO,**kwargs)-class-method","name":"ppmload_stream","doc":"Load ppm base class\n\n```\n# out_, flags = Vips::Image.ppmload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load ppm base class

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7352,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7352"},"def":{"name":"ppmload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nppmload_source(source, **kwargs)\n"}},{"html_id":"profile_load(name:String)-class-method","name":"profile_load","doc":"Load named icc profile\n\n```\n# profile = Vips::Image.profile_load(name)\n```\n\n\nInput Parameters\n\n**Required**\n\n*name* : String - Profile name\n\n\n**Returns**\n\nLoaded profile\n","summary":"

    Load named icc profile

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/ext/image.cr","line_number":7514,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7514"},"def":{"name":"profile_load","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"((Operation.call(\"profile_load\", name)).as(Type)).as_bytes"}},{"html_id":"radload(filename:String,**kwargs)-class-method","name":"radload","doc":"Load a radiance image from a file\n\n```\n# out_, flags = Vips::Image.radload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a radiance image from a file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7610,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7610"},"def":{"name":"radload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"radload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"radload_buffer(buffer:Bytes,**kwargs)-class-method","name":"radload_buffer","doc":"Load rad from buffer\n\n```\n# out_, flags = Vips::Image.radload_buffer(buffer, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load rad from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7653,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7653"},"def":{"name":"radload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"radload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"radload_source(source:Source,**kwargs)-class-method","name":"radload_source","doc":"Load rad from source\n\n```\n# out_, flags = Vips::Image.radload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load rad from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7696,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7696"},"def":{"name":"radload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"radload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"radload_stream(stream:IO,**kwargs)-class-method","name":"radload_stream","doc":"Load rad from stream\n\n```\n# out_, flags = Vips::Image.radload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load rad from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7734,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7734"},"def":{"name":"radload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nradload_source(source, **kwargs)\n"}},{"html_id":"rawload(filename:String,width:Int32,height:Int32,bands:Int32,**kwargs)-class-method","name":"rawload","doc":"Load raw data from a file\n\n```\n# out_, flags = Vips::Image.rawload(filename, width, height, bands, {offset: UInt32, format: Enums::BandFormat, interpretation: Enums::Interpretation, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*bands* : Int32 - Number of bands in image\n\n_Optionals_\n\n*offset* : UInt32 - Offset in bytes from start of file\n\n*format* : Enums::BandFormat - Pixel format in image\n\n*interpretation* : Enums::Interpretation - Pixel interpretation\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load raw data from a file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"}],"args_string":"(filename : String, width : Int32, height : Int32, bands : Int32, **kwargs)","args_html":"(filename : String, width : Int32, height : Int32, bands : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7913,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7913"},"def":{"name":"rawload","args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"rawload\", options, filename, width, height, bands)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"run_cmplx(image:Image,&block:Image->Image)-class-method","name":"run_cmplx","doc":"run a complex operation on a complex image, or an image with an even\nnumber of bands ... handy for things like running .polar on .index\nimages","summary":"

    run a complex operation on a complex image, or an image with an even number of bands ...

    ","abstract":false,"args":[{"name":"image","external_name":"image","restriction":"Image"}],"args_string":"(image : Image, &block : Image -> Image)","args_html":"(image : Image, &block : Image -> Image)","location":{"filename":"src/vips/image.cr","line_number":15,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L15"},"def":{"name":"run_cmplx","args":[{"name":"image","external_name":"image","restriction":"Image"}],"yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Image -> Image)"},"visibility":"Public","body":"original_format = image.format\nif ((image.format != Enums::BandFormat::Complex) && (image.format != Enums::BandFormat::Dpcomplex))\n if (image.bands % 2) != 0\n raise(VipsException.new(\"not an even number of bands\"))\n end\n if ( (image.format != Enums::BandFormat::Float) && (image.format != Enums::BandFormat::Double))\n image = image.cast(Enums::BandFormat::Float)\n end\n new_format = image.format == Enums::BandFormat::Double ? Enums::BandFormat::Dpcomplex : Enums::BandFormat::Complex\n image = image.copy(format: new_format, bands: image.bands / 2)\nend\nimage = block.call(image)\nif ((original_format != Enums::BandFormat::Complex) && (original_format != Enums::BandFormat::Dpcomplex))\n new_format = image.format == Enums::BandFormat::Dpcomplex ? Enums::BandFormat::Double : Enums::BandFormat::Float\n image = image.copy(format: new_format, bands: image.bands * 2)\nend\nimage\n"}},{"html_id":"sines(width:Int32,height:Int32,**kwargs)-class-method","name":"sines","doc":"Make a 2d sine wave\n\n```\n# out_ = Vips::Image.sines(width, height, {uchar: Bool, hfreq: Float64, vfreq: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*hfreq* : Float64 - Horizontal spatial frequency\n\n*vfreq* : Float64 - Vertical spatial frequency\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a 2d sine wave

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8636,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8636"},"def":{"name":"sines","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"sines\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"sum(*in_:Image)-class-method","name":"sum","doc":"Sum an array of images\n\n```\n# out_ = Vips::Image.sum(in_)\n```\n\n\nInput Parameters\n\n**Required**\n\n*in* : Array(Image) - Array of input images\n\n\n**Returns**\n\nOutput image\n","summary":"

    Sum an array of images

    ","abstract":false,"args":[{"name":"in_","external_name":"in_","restriction":"Image"}],"args_string":"(*in_ : Image)","args_html":"(*in_ : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8890,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8890"},"def":{"name":"sum","args":[{"name":"in_","external_name":"in_","restriction":"Image"}],"splat_index":0,"visibility":"Public","body":"((Operation.call(\"sum\", in_)).as(Type)).as_image"}},{"html_id":"svgload(filename:String,**kwargs)-class-method","name":"svgload","doc":"Load svg with rsvg\n\n```\n# out_, flags = Vips::Image.svgload(filename, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load svg with rsvg

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8930,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8930"},"def":{"name":"svgload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"svgload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"svgload_buffer(buffer:Bytes,**kwargs)-class-method","name":"svgload_buffer","doc":"Load svg with rsvg\n\n```\n# out_, flags = Vips::Image.svgload_buffer(buffer, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load svg with rsvg

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8979,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8979"},"def":{"name":"svgload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"svgload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"svgload_source(source:Source,**kwargs)-class-method","name":"svgload_source","doc":"Load svg from source\n\n```\n# out_, flags = Vips::Image.svgload_source(source, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load svg from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9028,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9028"},"def":{"name":"svgload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"svgload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"svgload_stream(stream:IO,**kwargs)-class-method","name":"svgload_stream","doc":"Load svg from stream\n\n```\n# out_, flags = Vips::Image.svgload_stream(stream, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load svg from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9072,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9072"},"def":{"name":"svgload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nsvgload_source(source, **kwargs)\n"}},{"html_id":"switch(*tests:Image)-class-method","name":"switch","doc":"Find the index of the first non-zero pixel in tests\n\n```\n# out_ = Vips::Image.switch(tests)\n```\n\n\nInput Parameters\n\n**Required**\n\n*tests* : Array(Image) - Table of images to test\n\n\n**Returns**\n\nOutput image\n","summary":"

    Find the index of the first non-zero pixel in tests

    ","abstract":false,"args":[{"name":"tests","external_name":"tests","restriction":"Image"}],"args_string":"(*tests : Image)","args_html":"(*tests : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":9095,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9095"},"def":{"name":"switch","args":[{"name":"tests","external_name":"tests","restriction":"Image"}],"splat_index":0,"visibility":"Public","body":"((Operation.call(\"switch\", tests)).as(Type)).as_image"}},{"html_id":"system(cmd_format:String,**kwargs)-class-method","name":"system","doc":"Run an external command\n\n```\n, out_, log = Vips::Image.system(cmd_format, {in_: Array(Image), out_format: String, in_format: String})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*cmd_format* : String - Command to run\n\n_Optionals_\n\n*in* : Array(Image) - Array of input images\n\n*out_format* : String - Format for output filename\n\n*in_format* : String - Format for input filename\n\n\n**Returns**\n\n_Optionals_\n\n*out* : Image? - Output image\n\n*log* : String? - Command log\n","summary":"

    Run an external command

    ","abstract":false,"args":[{"name":"cmd_format","external_name":"cmd_format","restriction":"String"}],"args_string":"(cmd_format : String, **kwargs)","args_html":"(cmd_format : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9130,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9130"},"def":{"name":"system","args":[{"name":"cmd_format","external_name":"cmd_format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"out\"] = true\noptions[\"log\"] = true\n((optsOperation.call(\"system\", options, cmd_format)).as(Type)).as_h\n"}},{"html_id":"thumbnail(filename:String,width:Int32,**kwargs)-class-method","name":"thumbnail","doc":"Generate thumbnail from file\n\n```\n# out_ = Vips::Image.thumbnail(filename, width, {height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to read from\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(filename : String, width : Int32, **kwargs)","args_html":"(filename : String, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9178,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9178"},"def":{"name":"thumbnail","args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"thumbnail\", options, filename, width)).as(Type)).as_image\n"}},{"html_id":"thumbnail_buffer(buffer:Bytes,width:Int32,**kwargs)-class-method","name":"thumbnail_buffer","doc":"Generate thumbnail from buffer\n\n```\n# out_ = Vips::Image.thumbnail_buffer(buffer, width, {option_string: String, height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*option_string* : String - Options that are passed on to the underlying loader\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(buffer : Bytes, width : Int32, **kwargs)","args_html":"(buffer : Bytes, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9226,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9226"},"def":{"name":"thumbnail_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"thumbnail_buffer\", options, buffer, width)).as(Type)).as_image\n"}},{"html_id":"thumbnail_source(source:Source,width:Int32,**kwargs)-class-method","name":"thumbnail_source","doc":"Generate thumbnail from source\n\n```\n# out_ = Vips::Image.thumbnail_source(source, width, {option_string: String, height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*option_string* : String - Options that are passed on to the underlying loader\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(source : Source, width : Int32, **kwargs)","args_html":"(source : Source, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9318,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9318"},"def":{"name":"thumbnail_source","args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"thumbnail_source\", options, source, width)).as(Type)).as_image\n"}},{"html_id":"thumbnail_stream(stream:IO,width:Int32,**kwargs)-class-method","name":"thumbnail_stream","doc":"Generate thumbnail from stream\n\n```\n# out_ = Vips::Image.thumbnail_stream(stream, width, {option_string: String, height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n\n*width : Int32* - Size to this width\n_Optionals_\n\n*option_string* : String - Options that are passed on to the underlying loader\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_","summary":"

    Generate thumbnail from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(stream : IO, width : Int32, **kwargs)","args_html":"(stream : IO, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9363,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9363"},"def":{"name":"thumbnail_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nthumbnail_source(source, width, **kwargs)\n"}},{"html_id":"tiffload(filename:String,**kwargs)-class-method","name":"tiffload","doc":"Load tiff from file\n\n```\n# out_, flags = Vips::Image.tiffload(filename, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load tiff from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9406,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9406"},"def":{"name":"tiffload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"tiffload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"tiffload_buffer(buffer:Bytes,**kwargs)-class-method","name":"tiffload_buffer","doc":"Load tiff from buffer\n\n```\n# out_, flags = Vips::Image.tiffload_buffer(buffer, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load tiff from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9457,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9457"},"def":{"name":"tiffload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"tiffload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"tiffload_source(source:Source,**kwargs)-class-method","name":"tiffload_source","doc":"Load tiff from source\n\n```\n# out_, flags = Vips::Image.tiffload_source(source, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load tiff from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9508,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9508"},"def":{"name":"tiffload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"tiffload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"tiffload_stream(stream:IO,**kwargs)-class-method","name":"tiffload_stream","doc":"Load tiff from stream\n\n```\n# out_, flags = Vips::Image.tiffload_stream(stream, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load tiff from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9554,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9554"},"def":{"name":"tiffload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\ntiffload_source(source, **kwargs)\n"}},{"html_id":"tonelut(**kwargs)-class-method","name":"tonelut","doc":"Build a look-up table\n\n```\n# out_ = Vips::Image.tonelut({in_max: Int32, out_max: Int32, lb: Float64, lw: Float64, ps: Float64, pm: Float64, ph: Float64, s: Float64, m: Float64, h: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*in_max* : Int32 - Size of LUT to build\n\n*out_max* : Int32 - Maximum value in output LUT\n\n*lb* : Float64 - Lowest value in output\n\n*lw* : Float64 - Highest value in output\n\n*ps* : Float64 - Position of shadow\n\n*pm* : Float64 - Position of mid-tones\n\n*ph* : Float64 - Position of highlights\n\n*s* : Float64 - Adjust shadows by this much\n\n*m* : Float64 - Adjust mid-tones by this much\n\n*h* : Float64 - Adjust highlights by this much\n\n\n**Returns**\n\nOutput image\n","summary":"

    Build a look-up table

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9903,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9903"},"def":{"name":"tonelut","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"tonelut\", options)).as(Type)).as_image\n"}},{"html_id":"vipsload(filename:String,**kwargs)-class-method","name":"vipsload","doc":"Load vips from file\n\n```\n# out_, flags = Vips::Image.vipsload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load vips from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9989,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9989"},"def":{"name":"vipsload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"vipsload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"vipsload_source(source:Source,**kwargs)-class-method","name":"vipsload_source","doc":"Load vips from source\n\n```\n# out_, flags = Vips::Image.vipsload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load vips from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10032,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10032"},"def":{"name":"vipsload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"vipsload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"vipsload_stream(stream:IO,**kwargs)-class-method","name":"vipsload_stream","doc":"Load vips from stream\n\n```\n# out_, flags = Vips::Image.vipsload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load vips from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10070,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10070"},"def":{"name":"vipsload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nvipsload_source(source, **kwargs)\n"}},{"html_id":"webpload(filename:String,**kwargs)-class-method","name":"webpload","doc":"Load webp from file\n\n```\n# out_, flags = Vips::Image.webpload(filename, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load webp from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10189,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10189"},"def":{"name":"webpload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"webpload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"webpload_buffer(buffer:Bytes,**kwargs)-class-method","name":"webpload_buffer","doc":"Load webp from buffer\n\n```\n# out_, flags = Vips::Image.webpload_buffer(buffer, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load webp from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10238,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10238"},"def":{"name":"webpload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"webpload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"webpload_source(source:Source,**kwargs)-class-method","name":"webpload_source","doc":"Load webp from source\n\n```\n# out_, flags = Vips::Image.webpload_source(source, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load webp from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10287,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10287"},"def":{"name":"webpload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"webpload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"webpload_stream(stream:IO,**kwargs)-class-method","name":"webpload_stream","doc":"Load webp from stream\n\n```\n# out_, flags = Vips::Image.webpload_stream(stream, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load webp from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10331,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10331"},"def":{"name":"webpload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nwebpload_source(source, **kwargs)\n"}},{"html_id":"worley(width:Int32,height:Int32,**kwargs)-class-method","name":"worley","doc":"Make a worley noise image\n\n```\n# out_ = Vips::Image.worley(width, height, {cell_size: Int32, seed: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*cell_size* : Int32 - Size of Worley cells\n\n*seed* : Int32 - Random number seed\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a worley noise image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10611,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10611"},"def":{"name":"worley","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"worley\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"xyz(width:Int32,height:Int32,**kwargs)-class-method","name":"xyz","doc":"Make an image where pixel values are coordinates\n\n```\n# out_ = Vips::Image.xyz(width, height, {csize: Int32, dsize: Int32, esize: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*csize* : Int32 - Size of third dimension\n\n*dsize* : Int32 - Size of fourth dimension\n\n*esize* : Int32 - Size of fifth dimension\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an image where pixel values are coordinates

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10671,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10671"},"def":{"name":"xyz","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"xyz\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"zone(width:Int32,height:Int32,**kwargs)-class-method","name":"zone","doc":"Make a zone plate\n\n```\n# out_ = Vips::Image.zone(width, height, {uchar: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a zone plate

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10785,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10785"},"def":{"name":"zone","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"zone\", options, width, height)).as(Type)).as_image\n"}}],"constructors":[{"html_id":"imageize(match_image:Image,value):Image-class-method","name":"imageize","doc":"expand a constant into an image","summary":"

    expand a constant into an image

    ","abstract":false,"args":[{"name":"match_image","external_name":"match_image","restriction":"Image"},{"name":"value","external_name":"value","restriction":""}],"args_string":"(match_image : Image, value) : Image","args_html":"(match_image : Image, value) : Image","location":{"filename":"src/vips/image.cr","line_number":41,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L41"},"def":{"name":"imageize","args":[{"name":"match_image","external_name":"match_image","restriction":"Image"},{"name":"value","external_name":"value","restriction":""}],"return_type":"Image","visibility":"Public","body":"case value\nwhen Image\n value\nwhen Array(Array(Float64))\n new_from_array(value)\nwhen Array(Array(Int32))\n new_from_array(value)\nwhen Array(Float64)\n match_image.new_from_image(value)\nwhen Array(Int32)\n match_image.new_from_image(value)\nwhen Float64\n match_image.new_from_image(value)\nwhen Int32\n match_image.new_from_image(value)\nelse\n raise(VipsException.new(\"unsupported value type #{typeof(value)} for imageize\"))\nend"}},{"html_id":"new_from_array(array:Array,scale=1.0,offset=0.0):Image-class-method","name":"new_from_array","doc":"Create a new Image from a 1D or 2D array. A 1D array becomes an\nimage with height 1. Use `scale` and `offset` to set the scale and\noffset fields in the header. These are useful for integer\nconvolutions.\n\nFor example:\n\n```\nimage = Vips::Image.new_from_array [1, 2, 3]\n```\n\nor\n\n```\nimage = Vips::Image.new_from_array [\n [-1, -1, -1],\n [-1, 16, -1],\n [-1, -1, -1],\n], 8\n```\n\nfor a simple sharpening mask.","summary":"

    Create a new Image from a 1D or 2D array.

    ","abstract":false,"args":[{"name":"array","external_name":"array","restriction":"Array"},{"name":"scale","default_value":"1.0","external_name":"scale","restriction":""},{"name":"offset","default_value":"0.0","external_name":"offset","restriction":""}],"args_string":"(array : Array, scale = 1.0, offset = 0.0) : Image","args_html":"(array : Array, scale = 1.0, offset = 0.0) : Image","location":{"filename":"src/vips/image.cr","line_number":279,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L279"},"def":{"name":"new_from_array","args":[{"name":"array","external_name":"array","restriction":"Array"},{"name":"scale","default_value":"1.0","external_name":"scale","restriction":""},{"name":"offset","default_value":"0.0","external_name":"offset","restriction":""}],"return_type":"Image","visibility":"Public","body":"if (darr = array[0].as?(Array))\n height = array.size\n width = darr.size\n if array.all? do |x|\n x.is_a?(Array)\n end\n else\n raise(VipsException.new(\"Not a 2D array.\"))\n end\n if array.all? do |x|\n (x.as?(Array)).try(&.size) == width\n end\n else\n raise(VipsException.new(\"Array not rectangular.\"))\n end\n array = array.flatten\nelse\n height = 1\n width = array.size\nend\nif array.size == (width * height)\nelse\n raise(VipsException.new(\"Bad array dimensions.\"))\nend\nif array.all? do |x|\n x.is_a?(Number)\nend\nelse\n raise(VipsException.new(\"Not all array elements are Numeric.\"))\nend\ndblarr = Array(Float64).new(array.size) do |i|\n (array[i].as(Number)).to_f\nend\nvi = LibVips.vips_image_new_matrix_from_array(width, height, dblarr, dblarr.size)\nif vi.null?\n raise(VipsException.new(\"unable to make image from matrix\"))\nend\nimage = new(vi)\nimage.mutate do |mutable|\n mutable.set(GValue::GDouble, \"scale\", scale)\n mutable.set(GValue::GDouble, \"offset\", offset)\nend\n"}},{"html_id":"new_from_buffer(data:String|Bytes|IO,option_string:String=\"\",access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_buffer","doc":"Create a new `Image` for an image encoded in a format such as\nJPEG in a binary `String`, `Bytes` or `IO`. Load options may be passed as\nstrings or appended as a keyword arguments. For example:\n\n```\nimage = Vips::Image.new_from_buffer memory_buffer, \"shrink=2\"\n```\n\nor alternatively:\n\n```\nimage = Vips::Image.new_from_buffer memory_buffer, \"\", shrink: 2\n```\n\nThe options available depend on the file format. Try something like:\n\n```\n$ vips jpegload_buffer\n```\n\nat the command-line to see the available options. Not all loaders\nsupport load from buffer, but at least JPEG, PNG and\nTIFF images will work.\n\n**Loading is fast**: only enough of the image is loaded to be able to fill\nout the header. Pixels will only be decompressed when they are needed.","summary":"

    Create a new Image for an image encoded in a format such as JPEG in a binary String, Bytes or IO.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(data : String | Bytes | IO, option_string : String = \"\", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(data : String | Bytes | IO, option_string : String = "", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":165,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L165"},"def":{"name":"new_from_buffer","args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"buffer = case data\nwhen String\n data.to_slice\nwhen IO\n data.gets_to_end.to_slice\nelse\n data\nend\nloader = String.new((LibVips.vips_foreign_find_load_buffer(buffer, buffer.bytesize)) || Bytes.empty)\nif loader.blank?\n raise(VipsException.new(\"Unable to load from buffer\"))\nend\noptions = Optional.new(**opts)\nif access.nil?\nelse\n options[\"access\"] = access.value\nend\nEnums.add_failon(options, failon)\noptions[\"string_options\"] = option_string\n((Operation.call(loader, options, buffer)).as(Type)).as_image\n"}},{"html_id":"new_from_file(name:String,memory:Bool|Nil=nil,access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_file","doc":"Return a new `Image` for a file on disc. This method can load\nimages in any format supported by vips. The filename can include\nload options, for example:\n\n```\nimage = Vips::Image.new_from_file \"fred.jpg[shrink=2]\"\n```\n\nYou can also supply options as keyword arguments (NamedTuple), for example:\n\n```\nimage = Vips::Image.new_from_file \"fred.jpg\", shrink: 2\n```\n\nThe full set of options available depend upon the load operation that\nwill be executed. Try something like:\n\n```\n$ vips jpegload\n```\n\nat the command-line to see a summary of the available options for the\nJPEG loader.\n\n**Loading is fast**: only enough of the image is loaded to be able to fill\nout the header. Pixels will only be decompressed when they are needed.","summary":"

    Return a new Image for a file on disc.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"memory","default_value":"nil","external_name":"memory","restriction":"Bool | ::Nil"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(name : String, memory : Bool | Nil = nil, access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(name : String, memory : Bool | Nil = nil, access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":120,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L120"},"def":{"name":"new_from_file","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"memory","default_value":"nil","external_name":"memory","restriction":"Bool | ::Nil"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"filename = String.new(LibVips.vips_filename_get_filename(name))\nfile_options = String.new(LibVips.vips_filename_get_options(name))\nloader = String.new((LibVips.vips_foreign_find_load(filename)) || Bytes.empty)\nif loader.blank?\n raise(VipsException.new(\"Unable to load from #{filename}\"))\nend\noptions = Optional.new(**opts)\nif memory.nil?\nelse\n options[\"memory\"] = memory\nend\nif access.nil?\nelse\n options[\"access\"] = access.value\nend\nEnums.add_failon(options, failon)\noptions[\"string_options\"] = file_options\n((Operation.call(loader, options, filename)).as(Type)).as_image\n"}},{"html_id":"new_from_memory(data:Bytes,width:Int32,height:Int32,bands:Int32,format:Enums::BandFormat):Image-class-method","name":"new_from_memory","doc":"Wraps an Image around an area of memory containing a C-style array. For\nexample, if the `data` memory array contains four bytes with the\nvalues 1, 2, 3, 4, you can make a one-band, 2x2 uchar image from\nit like this:\n```\nimage = Image.new_from_memory(data, 2, 2, 1, Enums::BandFormat::Uchar)\n```\n\nA reference is kept to the data object, so it will not be\ngarbage-collected until the returned image is garbage-collected.\n\nThis method is useful for efficiently transferring images from GDI+\ninto libvips.","summary":"

    Wraps an Image around an area of memory containing a C-style array.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"args_string":"(data : Bytes, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","args_html":"(data : Bytes, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","location":{"filename":"src/vips/image.cr","line_number":330,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L330"},"def":{"name":"new_from_memory","args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"return_type":"Image","visibility":"Public","body":"vi = LibVips.vips_image_new_from_memory(Box.box(data), data.size, width, height, bands, LibVips::VipsBandFormat.from_value(format.value))\nif vi.null?\n raise(VipsException.new(\"unable to make image from memory\"))\nend\nimage = new(vi)\n(image.@references) << data\nimage\n"}},{"html_id":"new_from_memory_copy(data:Pointer(Void),size:UInt64,width:Int32,height:Int32,bands:Int32,format:Enums::BandFormat):Image-class-method","name":"new_from_memory_copy","doc":"Create a new `Image` from memory and copies the memory area. See\n`new_from_memory` for a version of this method which does not copy the\nmemory area.","summary":"

    Create a new Image from memory and copies the memory area.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"::Pointer(Void)"},{"name":"size","external_name":"size","restriction":"UInt64"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"args_string":"(data : Pointer(Void), size : UInt64, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","args_html":"(data : Pointer(Void), size : UInt64, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","location":{"filename":"src/vips/image.cr","line_number":345,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L345"},"def":{"name":"new_from_memory_copy","args":[{"name":"data","external_name":"data","restriction":"::Pointer(Void)"},{"name":"size","external_name":"size","restriction":"UInt64"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"return_type":"Image","visibility":"Public","body":"vi = LibVips.vips_image_new_from_memory_copy(data, size, width, height, bands, LibVips::VipsBandFormat.from_value(format.value))\nif vi.null?\n raise(VipsException.new(\"unable to make image from memory\"))\nend\nnew(vi)\n"}},{"html_id":"new_from_source(source:Source,option_string:String=\"\",access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_source","doc":"Create a new `Image` from a source. Load options may be passed as\nstrings or appended as a hash. For example:\n\n```\nsource = Vips::Source.new_from_file(\"k2.jpg\")\nimage = Vips::Image.new_from_source source, \"shrink=2\"\n```\n\nor alternatively:\n\n```\nimage = Vips::Image.new_from_source source, shrink: 2\n```\n\nThe options available depend on the file format. Try something like:\n\n```\n$ vips jpegload_source\n```\n\nat the command-line to see the available options. Not all loaders\nsupport load from source, but at least JPEG, PNG and\nTIFF images will work.\n\n**Loading is fast**: only enough data is read to be able to fill\nout the header. Pixels will only be read and decompressed when they are\nneeded.","summary":"

    Create a new Image from a source.

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(source : Source, option_string : String = \"\", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(source : Source, option_string : String = "", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":212,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L212"},"def":{"name":"new_from_source","args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"LibVips.vips_error_freeze\nopname = find_load_source(source)\nLibVips.vips_error_thaw\noptions = Optional.new(**opts)\nif access.nil?\nelse\n options[\"access\"] = access.value\nend\nEnums.add_failon(options, failon)\noptions[\"string_options\"] = option_string\nif opname.nil?\nelse\n return ((Operation.call(opname, options, source)).as(Type)).as_image\nend\nif (filename = source.filename)\n opname = find_load(filename)\n if opname.nil?\n raise(VipsException.new(\"unable to load from source\"))\n end\n return ((Operation.call(opname, options, filename)).as(Type)).as_image\nend\nptr = LibVips.vips_source_map_blob(source)\nif ptr.null?\n raise(VipsException.new(\"unable to load from source\"))\nend\nblob = VipsBlob.new(ptr)\nbuff, size = blob.get_data\nopname = LibVips.vips_foreign_find_load_buffer(buff, size)\nif opname.null?\n raise(VipsException.new(\"unable to load from source\"))\nend\nreturn ((Operation.call(String.new(opname), options, blob)).as(Type)).as_image\n"}},{"html_id":"new_from_stream(stream:IO,option_string:String=\"\",access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_stream","doc":"Load a formatted image from a stream\nThis behaves exactly as `new_from_source`, but the image is loaded from a stream rathar than from a source.\nNote: AT least libvips 8.9 is needed","summary":"

    Load a formatted image from a stream This behaves exactly as .new_from_source, but the image is loaded from a stream rathar than from a source.

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(stream : IO, option_string : String = \"\", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(stream : IO, option_string : String = "", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":251,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L251"},"def":{"name":"new_from_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nnew_from_source(source, option_string, access, failon, **opts)\n"}},{"html_id":"new_temp_file(format:String):Image-class-method","name":"new_temp_file","doc":"Make a new temporary image.\nReturns an image backed by a temporary file. When written to with `write`, a temporary\nfile will be created on disc in the specified format. When the image is closed, the file will be deleted\nautomatically.\n\nThe file is created in the temporary directory. This is set with the environment variable `TMPDIR`.\nIf this is not set, then on Unix systems, vips will default to `/tmp`. On Windows, vips uses\n`GetTempPath()` to find the temporary director.\n\nvips uses `g_mkstemp()` to make the temporary filename. They generally look something like `vips-12-EJKFGH.v`\n*format* is the format for the temp file, for example `%s.v` for a vips format file. The `%s` is\nsubsituted by the file path.\n\nNote: `VipsException` is raised, if unable to make temp file from *format*","summary":"

    Make a new temporary image.

    ","abstract":false,"args":[{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(format : String) : Image","args_html":"(format : String) : Image","location":{"filename":"src/vips/image.cr","line_number":365,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L365"},"def":{"name":"new_temp_file","args":[{"name":"format","external_name":"format","restriction":"String"}],"return_type":"Image","visibility":"Public","body":"vi = LibVips.vips_image_new_temp_file(format)\nif vi.null?\n raise(VipsException.new(\"unable to make temp file\"))\nend\nnew(vi)\n"}}],"instance_methods":[{"html_id":"!=(other)-instance-method","name":"!=","doc":"Returns `true` if this object is not equal to *other*.\n\nBy default this method is implemented as `!(self == other)`\nso there's no need to override this unless there's a more efficient\nway to do it.","summary":"

    Returns true if this object is not equal to other.

    ","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1148,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1148"},"def":{"name":"!=","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Noteq)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Noteq, other)).as(Type)).as_image\nend"}},{"html_id":"%(other)-instance-method","name":"%","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1092,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1092"},"def":{"name":"%","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n remainder(other)\nelse\n ((call(\"remainder_const\", other)).as(Type)).as_image\nend"}},{"html_id":"&(other)-instance-method","name":"&","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1100,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1100"},"def":{"name":"&","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::And)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::And, other)).as(Type)).as_image\nend"}},{"html_id":"*(other)-instance-method","name":"*","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1076,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1076"},"def":{"name":"*","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n subtract(other)\nelse\n ((call(\"linear\", convert(other, \"multiplication\") do |x|\n x.to_f\n end, 0.0)).as(Type)).as_image\nend"}},{"html_id":"**(exp:Image)-instance-method","name":"**","doc":"Raise to the power of an image","summary":"

    Raise to the power of an image

    ","abstract":false,"args":[{"name":"exp","external_name":"exp","restriction":"Image"}],"args_string":"(exp : Image)","args_html":"(exp : Image)","location":{"filename":"src/vips/image.cr","line_number":953,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L953"},"def":{"name":"**","args":[{"name":"exp","external_name":"exp","restriction":"Image"}],"visibility":"Public","body":"self.math2(exp, Enums::OperationMath2::Pow)"}},{"html_id":"**(exp:Array(Number))-instance-method","name":"**","doc":"Raise to the power of a constant or an array of constants","summary":"

    Raise to the power of a constant or an array of constants

    ","abstract":false,"args":[{"name":"exp","external_name":"exp","restriction":"Array(Number)"}],"args_string":"(exp : Array(Number))","args_html":"(exp : Array(Number))","location":{"filename":"src/vips/image.cr","line_number":963,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L963"},"def":{"name":"**","args":[{"name":"exp","external_name":"exp","restriction":"Array(Number)"}],"visibility":"Public","body":"self.math2_const(Enums::OperationMath2::Pow, exp.map(&.to_f))"}},{"html_id":"**(*exp:Number)-instance-method","name":"**","doc":"Arc tangent of a constant or an array of constants in degrees","summary":"

    Arc tangent of a constant or an array of constants in degrees

    ","abstract":false,"args":[{"name":"exp","external_name":"exp","restriction":"Number"}],"args_string":"(*exp : Number)","args_html":"(*exp : Number)","location":{"filename":"src/vips/image.cr","line_number":973,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L973"},"def":{"name":"**","args":[{"name":"exp","external_name":"exp","restriction":"Number"}],"splat_index":0,"visibility":"Public","body":"self.math2_const(Enums::OperationMath2::Atan2, exp.map(&.to_f).to_a)"}},{"html_id":"+(other)-instance-method","name":"+","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1060,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1060"},"def":{"name":"+","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n add(other)\nelse\n ((call(\"linear\", 1.0, convert(other, \"addition\") do |x|\n x.to_f\n end)).as(Type)).as_image\nend"}},{"html_id":"-(other)-instance-method","name":"-","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1068,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1068"},"def":{"name":"-","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n subtract(other)\nelse\n ((call(\"linear\", 1.0, convert(other, \"subtraction\") do |x|\n x.to_f * -1\n end)).as(Type)).as_image\nend"}},{"html_id":"/(other)-instance-method","name":"/","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1084,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1084"},"def":{"name":"/","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n subtract(other)\nelse\n ((call(\"linear\", convert(other, \"division\") do |x|\n 1.0 / x\n end, 0.0)).as(Type)).as_image\nend"}},{"html_id":"<(other)-instance-method","name":"<","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1156,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1156"},"def":{"name":"<","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Less)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Less, other)).as(Type)).as_image\nend"}},{"html_id":"<<(other)-instance-method","name":"<<","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1124,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1124"},"def":{"name":"<<","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Lshift)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Lshift, other)).as(Type)).as_image\nend"}},{"html_id":"<=(other)-instance-method","name":"<=","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1172,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1172"},"def":{"name":"<=","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Lesseq)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Lesseq, other)).as(Type)).as_image\nend"}},{"html_id":"==(other)-instance-method","name":"==","doc":"Returns `false` (other can only be a `Value` here).","summary":"

    Returns false (other can only be a Value here).

    ","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1140,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1140"},"def":{"name":"==","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Equal)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Equal, other)).as(Type)).as_image\nend"}},{"html_id":">(other)-instance-method","name":">","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1164,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1164"},"def":{"name":">","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::More)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::More, other)).as(Type)).as_image\nend"}},{"html_id":">=(other)-instance-method","name":">=","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1180,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1180"},"def":{"name":">=","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Moreeq)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Moreeq, other)).as(Type)).as_image\nend"}},{"html_id":">>(other)-instance-method","name":">>","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1132,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1132"},"def":{"name":">>","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Rshift)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Rshift, other)).as(Type)).as_image\nend"}},{"html_id":"[](x:Int32,y:Int32)-instance-method","name":"[]","doc":"A synonym for `getpoint`","summary":"

    A synonym for #getpoint

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32)","args_html":"(x : Int32, y : Int32)","location":{"filename":"src/vips/image.cr","line_number":1284,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1284"},"def":{"name":"[]","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"getpoint(x, y)"}},{"html_id":"[](i:Int32)-instance-method","name":"[]","doc":"pull out band elements from an image","summary":"

    pull out band elements from an image

    ","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"Int32"}],"args_string":"(i : Int32)","args_html":"(i : Int32)","location":{"filename":"src/vips/image.cr","line_number":1271,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1271"},"def":{"name":"[]","args":[{"name":"i","external_name":"i","restriction":"Int32"}],"visibility":"Public","body":"if band_exists?(i)\nelse\n raise(ArgumentError.new(\"Band index out of bounds\"))\nend\nextract_band(i)\n"}},{"html_id":"[](index:Range)-instance-method","name":"[]","doc":"Fetch bands using a range","summary":"

    Fetch bands using a range

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Range"}],"args_string":"(index : Range)","args_html":"(index : Range)","location":{"filename":"src/vips/image.cr","line_number":1277,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1277"},"def":{"name":"[]","args":[{"name":"index","external_name":"index","restriction":"Range"}],"visibility":"Public","body":"if band_exists?(index.begin)\nelse\n raise(ArgumentError.new(\"Band index out of bounds for range start\"))\nend\nif band_exists?(index.end)\nelse\n raise(ArgumentError.new(\"Band index out of bounds for range start\"))\nend\nextract_band(index.begin, n: index.end)\n"}},{"html_id":"^(other)-instance-method","name":"^","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1116,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1116"},"def":{"name":"^","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Eor)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Eor, other)).as(Type)).as_image\nend"}},{"html_id":"|(other)-instance-method","name":"|","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1108,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1108"},"def":{"name":"|","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Or)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Or, other)).as(Type)).as_image\nend"}},{"html_id":"a_cosh:Image-instance-method","name":"a_cosh","doc":"Return the inverse hyperbolic cosine of an image in degrees.","summary":"

    Return the inverse hyperbolic cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":923,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L923"},"def":{"name":"a_cosh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Acosh)"}},{"html_id":"a_sinh:Image-instance-method","name":"a_sinh","doc":"Return the inverse hyperbolic sine of an image in degrees.","summary":"

    Return the inverse hyperbolic sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":918,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L918"},"def":{"name":"a_sinh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Asinh)"}},{"html_id":"a_tan2(x:Image)-instance-method","name":"a_tan2","doc":"Arc tangent of an image in degrees.","summary":"

    Arc tangent of an image in degrees.

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Image"}],"args_string":"(x : Image)","args_html":"(x : Image)","location":{"filename":"src/vips/image.cr","line_number":968,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L968"},"def":{"name":"a_tan2","args":[{"name":"x","external_name":"x","restriction":"Image"}],"visibility":"Public","body":"self.math2(x, Enums::OperationMath2::Atan2)"}},{"html_id":"a_tanh:Image-instance-method","name":"a_tanh","doc":"Return the inverse hyperbolic tangent of an image in degrees.","summary":"

    Return the inverse hyperbolic tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":928,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L928"},"def":{"name":"a_tanh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Atanh)"}},{"html_id":"abs-instance-method","name":"abs","doc":"Absolute value of an image\n\n```\n# out_ = in.abs()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Absolute value of an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":25,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L25"},"def":{"name":"abs","visibility":"Public","body":"((self.call(\"abs\")).as(Type)).as_image"}},{"html_id":"acos:Image-instance-method","name":"acos","doc":"Return the inverse cosine of an image in degrees.","summary":"

    Return the inverse cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":893,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L893"},"def":{"name":"acos","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Acos)"}},{"html_id":"add(right:Image)-instance-method","name":"add","doc":"Add two images\n\n```\n# out_ = left.add(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Add two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L47"},"def":{"name":"add","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"add\", right)).as(Type)).as_image"}},{"html_id":"add_alpha:Image-instance-method","name":"add_alpha","doc":"Append an alpha channel to an image.","summary":"

    Append an alpha channel to an image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1197,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1197"},"def":{"name":"add_alpha","return_type":"Image","visibility":"Public","body":"if Vips.at_least_libvips?(8, 6)\n (LibVips.vips_addalpha(self, out vi)).tap do |ret|\n if ret == 0\n else\n raise(VipsException.new(\"unable to append alpha channel to image\"))\n end\n end\n return Image.new(vi)\nend\nmax_alpha = [Enums::Interpretation::Grey16, Enums::Interpretation::Rgb16].includes?(interpretation) ? 65535 : 255\nbandjoin(max_alpha)\n"}},{"html_id":"affine(matrix:Array(Float64),**kwargs)-instance-method","name":"affine","doc":"Affine transform of an image\n\n```\n# out_ = in.affine(matrix, {interpolate: Interpolate, oarea: Array(Int32), odx: Float64, ody: Float64, idx: Float64, idy: Float64, background: Array(Float64), premultiplied: Bool, extend: Enums::Extend})\n```\n\n\nInput Parameters\n\n**Required**\n\n*matrix* : Array(Float64) - Transformation matrix\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*oarea* : Array(Int32) - Area of output to generate\n\n*odx* : Float64 - Horizontal output displacement\n\n*ody* : Float64 - Vertical output displacement\n\n*idx* : Float64 - Horizontal input displacement\n\n*idy* : Float64 - Vertical input displacement\n\n*background* : Array(Float64) - Background value\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Affine transform of an image

    ","abstract":false,"args":[{"name":"matrix","external_name":"matrix","restriction":"Array(Float64)"}],"args_string":"(matrix : Array(Float64), **kwargs)","args_html":"(matrix : Array(Float64), **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":89,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L89"},"def":{"name":"affine","args":[{"name":"matrix","external_name":"matrix","restriction":"Array(Float64)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"affine\", options, matrix)).as(Type)).as_image\n"}},{"html_id":"asin:Image-instance-method","name":"asin","doc":"Return the inverse sine of an image in degrees.","summary":"

    Return the inverse sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":888,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L888"},"def":{"name":"asin","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Asin)"}},{"html_id":"atan:Image-instance-method","name":"atan","doc":"Return the inverse tangent of an image in degrees.","summary":"

    Return the inverse tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":898,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L898"},"def":{"name":"atan","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Atan)"}},{"html_id":"autorot-instance-method","name":"autorot","doc":"Autorotate image by exif tag\n\n```\n# out_, angle, flip = in.autorot()\n```\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*angle* : Enums::Angle? - Angle image was rotated by\n\n*flip* : Bool? - Whether the image was flipped or not\n","summary":"

    Autorotate image by exif tag

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":195,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L195"},"def":{"name":"autorot","visibility":"Public","body":"optional_output = Optional.new(**{angle: true, flip: true})\nresults = (self.call(\"autorot\", optional_output)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nangle = ((o = opts) && (val = o[\"angle\"]?)) ? val.as_enum(Enums::Angle) : nil\nflip = ((o = opts) && (val = o[\"flip\"]?)) ? val.as_b : nil\n{final_result, angle, flip}\n"}},{"html_id":"avg-instance-method","name":"avg","doc":"Find image average\n\n```\n# out_ = in.avg()\n```\n\n\n**Returns**\n\nOutput value\n","summary":"

    Find image average

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":219,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L219"},"def":{"name":"avg","visibility":"Public","body":"((self.call(\"avg\")).as(Type)).as_f64"}},{"html_id":"band_exists?(i:Int32)-instance-method","name":"band_exists?","doc":"Does band exist in image.","summary":"

    Does band exist in image.

    ","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"Int32"}],"args_string":"(i : Int32)","args_html":"(i : Int32)","location":{"filename":"src/vips/image.cr","line_number":1266,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1266"},"def":{"name":"band_exists?","args":[{"name":"i","external_name":"i","restriction":"Int32"}],"visibility":"Public","body":"i >= 0 && i <= (bands - 1)"}},{"html_id":"bandand-instance-method","name":"bandand","doc":"AND the bands of an image together","summary":"

    AND the bands of an image together

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1033,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1033"},"def":{"name":"bandand","visibility":"Public","body":"((self.call(\"bandbool\", Enums::OperationBoolean::And)).as(Type)).as_image"}},{"html_id":"bandbool(boolean:Enums::OperationBoolean)-instance-method","name":"bandbool","doc":"Boolean operation across image bands\n\n```\n# out_ = in.bandbool(boolean)\n```\n\n\nInput Parameters\n\n**Required**\n\n*boolean* : Enums::OperationBoolean - Boolean to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Boolean operation across image bands

    ","abstract":false,"args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"args_string":"(boolean : Enums::OperationBoolean)","args_html":"(boolean : Enums::OperationBoolean)","location":{"filename":"src/vips/ext/image.cr","line_number":241,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L241"},"def":{"name":"bandbool","args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"visibility":"Public","body":"((self.call(\"bandbool\", boolean)).as(Type)).as_image"}},{"html_id":"bandeor-instance-method","name":"bandeor","doc":"EOR the bands of an image together","summary":"

    EOR the bands of an image together

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1043,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1043"},"def":{"name":"bandeor","visibility":"Public","body":"((self.call(\"bandbool\", Enums::OperationBoolean::Eor)).as(Type)).as_image"}},{"html_id":"bandfold(**kwargs)-instance-method","name":"bandfold","doc":"Fold up x axis into bands\n\n```\n# out_ = in.bandfold({factor: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*factor* : Int32 - Fold by this factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Fold up x axis into bands

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":263,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L263"},"def":{"name":"bandfold","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"bandfold\", options)).as(Type)).as_image\n"}},{"html_id":"bandjoin(arr:Array(Int32)):Image-instance-method","name":"bandjoin","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(Int32)"}],"args_string":"(arr : Array(Int32)) : Image","args_html":"(arr : Array(Int32)) : Image","location":{"filename":"src/vips/image.cr","line_number":705,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L705"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Array(Int32)"}],"return_type":"Image","visibility":"Public","body":"bandjoin(arr.map(&.to_f))"}},{"html_id":"bandjoin(arr:Array(Float64)):Image-instance-method","name":"bandjoin","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(Float64)"}],"args_string":"(arr : Array(Float64)) : Image","args_html":"(arr : Array(Float64)) : Image","location":{"filename":"src/vips/image.cr","line_number":709,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L709"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Array(Float64)"}],"return_type":"Image","visibility":"Public","body":"bandjoin_const(arr)"}},{"html_id":"bandjoin(arr:Array(Image)):Image-instance-method","name":"bandjoin","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(Image)"}],"args_string":"(arr : Array(Image)) : Image","args_html":"(arr : Array(Image)) : Image","location":{"filename":"src/vips/image.cr","line_number":718,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L718"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Array(Image)"}],"return_type":"Image","visibility":"Public","body":"((call(\"bandjoin\", arr.unshift(self))).as(Type)).as_image"}},{"html_id":"bandjoin(*arr:Float64):Image-instance-method","name":"bandjoin","doc":"Append a set of constants bandwise","summary":"

    Append a set of constants bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Float64"}],"args_string":"(*arr : Float64) : Image","args_html":"(*arr : Float64) : Image","location":{"filename":"src/vips/image.cr","line_number":696,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L696"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Float64"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"bandjoin(arr.to_a)"}},{"html_id":"bandjoin(*arr:Int32):Image-instance-method","name":"bandjoin","doc":"Append a set of constants bandwise","summary":"

    Append a set of constants bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Int32"}],"args_string":"(*arr : Int32) : Image","args_html":"(*arr : Int32) : Image","location":{"filename":"src/vips/image.cr","line_number":701,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L701"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Int32"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"bandjoin(arr.to_a)"}},{"html_id":"bandjoin(*arr:Image):Image-instance-method","name":"bandjoin","doc":"Append a set of images bandwise","summary":"

    Append a set of images bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Image"}],"args_string":"(*arr : Image) : Image","args_html":"(*arr : Image) : Image","location":{"filename":"src/vips/image.cr","line_number":714,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L714"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Image"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"bandjoin(arr.to_a)"}},{"html_id":"bandjoin(*arr:Image|Number):Image-instance-method","name":"bandjoin","doc":"Append a set of mixed images and constants bandwise","summary":"

    Append a set of mixed images and constants bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Image | Number"}],"args_string":"(*arr : Image | Number) : Image","args_html":"(*arr : Image | Number) : Image","location":{"filename":"src/vips/image.cr","line_number":723,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L723"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Image | Number"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"bandjoin\", arr.to_a.unshift(self))).as(Type)).as_image"}},{"html_id":"bandjoin_const(c:Array(Float64))-instance-method","name":"bandjoin_const","doc":"Append a constant band to an image\n\n```\n# out_ = in.bandjoin_const(c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*c* : Array(Float64) - Array of constants to add\n\n\n**Returns**\n\nOutput image\n","summary":"

    Append a constant band to an image

    ","abstract":false,"args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(c : Array(Float64))","args_html":"(c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":287,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L287"},"def":{"name":"bandjoin_const","args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"bandjoin_const\", c)).as(Type)).as_image"}},{"html_id":"bandmean-instance-method","name":"bandmean","doc":"Band-wise average\n\n```\n# out_ = in.bandmean()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Band-wise average

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":302,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L302"},"def":{"name":"bandmean","visibility":"Public","body":"((self.call(\"bandmean\")).as(Type)).as_image"}},{"html_id":"bandor-instance-method","name":"bandor","doc":"OR the bands of an image together","summary":"

    OR the bands of an image together

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1038,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1038"},"def":{"name":"bandor","visibility":"Public","body":"((self.call(\"bandbool\", Enums::OperationBoolean::Or)).as(Type)).as_image"}},{"html_id":"bandrank(*vals:Float64,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of constants.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of constants.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":"Float64"}],"args_string":"(*vals : Float64, **kwargs)","args_html":"(*vals : Float64, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":732,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L732"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"options = Optional.new(**kwargs)\n((call(\"bandrank\", options, vals.to_a)).as(Type)).as_image\n"}},{"html_id":"bandrank(*vals:Int32,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of constants.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of constants.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":"Int32"}],"args_string":"(*vals : Int32, **kwargs)","args_html":"(*vals : Int32, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":742,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L742"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"bandrank(*vals.map(&.to_f), **kwargs)"}},{"html_id":"bandrank(*vals:Image,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of images.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of images.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":"Image"}],"args_string":"(*vals : Image, **kwargs)","args_html":"(*vals : Image, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":751,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L751"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"options = Optional.new(**kwargs)\n((call(\"bandrank\", options, vals.to_a.unshift(self))).as(Type)).as_image\n"}},{"html_id":"bandrank(*vals,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of mixed images and constants.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of mixed images and constants.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":""}],"args_string":"(*vals, **kwargs)","args_html":"(*vals, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":761,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L761"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":""}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"options = Optional.new(**kwargs)\n((call(\"bandrank\", options, vals.to_a.unshift(self))).as(Type)).as_image\n"}},{"html_id":"bands:Int32-instance-method","name":"bands","doc":"Number of bands in image","summary":"

    Number of bands in image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10826,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10826"},"def":{"name":"bands","return_type":"Int32","visibility":"Public","body":"(get(\"bands\")).as_i32"}},{"html_id":"bandsplit:Array(Image)-instance-method","name":"bandsplit","doc":"Split an n-band image into n separate images.","summary":"

    Split an n-band image into n separate images.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1289,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1289"},"def":{"name":"bandsplit","return_type":"Array(Image)","visibility":"Public","body":"(0...bands).map do |i|\n extract_band(i)\nend"}},{"html_id":"bandunfold(**kwargs)-instance-method","name":"bandunfold","doc":"Unfold image bands into x axis\n\n```\n# out_ = in.bandunfold({factor: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*factor* : Int32 - Unfold by this factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unfold image bands into x axis

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":324,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L324"},"def":{"name":"bandunfold","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"bandunfold\", options)).as(Type)).as_image\n"}},{"html_id":"boolean(right:Image,boolean:Enums::OperationBoolean)-instance-method","name":"boolean","doc":"Boolean operation on two images\n\n```\n# out_ = left.boolean(right, boolean)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*boolean* : Enums::OperationBoolean - Boolean to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Boolean operation on two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"args_string":"(right : Image, boolean : Enums::OperationBoolean)","args_html":"(right : Image, boolean : Enums::OperationBoolean)","location":{"filename":"src/vips/ext/image.cr","line_number":380,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L380"},"def":{"name":"boolean","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"visibility":"Public","body":"((self.call(\"boolean\", right, boolean)).as(Type)).as_image"}},{"html_id":"boolean_const(boolean:Enums::OperationBoolean,c:Array(Float64))-instance-method","name":"boolean_const","doc":"Boolean operations against a constant\n\n```\n# out_ = in.boolean_const(boolean, c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*boolean* : Enums::OperationBoolean - Boolean to perform\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Boolean operations against a constant

    ","abstract":false,"args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(boolean : Enums::OperationBoolean, c : Array(Float64))","args_html":"(boolean : Enums::OperationBoolean, c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":404,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L404"},"def":{"name":"boolean_const","args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"boolean_const\", boolean, c)).as(Type)).as_image"}},{"html_id":"buildlut-instance-method","name":"buildlut","doc":"Build a look-up table\n\n```\n# out_ = in.buildlut()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Build a look-up table

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":419,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L419"},"def":{"name":"buildlut","visibility":"Public","body":"((self.call(\"buildlut\")).as(Type)).as_image"}},{"html_id":"byteswap-instance-method","name":"byteswap","doc":"Byteswap an image\n\n```\n# out_ = in.byteswap()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Byteswap an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":434,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L434"},"def":{"name":"byteswap","visibility":"Public","body":"((self.call(\"byteswap\")).as(Type)).as_image"}},{"html_id":"cache(**kwargs)-instance-method","name":"cache","doc":"Cache an image\n\n```\n# out_ = in.cache({max_tiles: Int32, tile_height: Int32, tile_width: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*max_tiles* : Int32 - Maximum number of tiles to cache\n\n*tile_height* : Int32 - Tile height in pixels\n\n*tile_width* : Int32 - Tile width in pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cache an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":460,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L460"},"def":{"name":"cache","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"cache\", options)).as(Type)).as_image\n"}},{"html_id":"canny(**kwargs)-instance-method","name":"canny","doc":"Canny edge detector\n\n```\n# out_ = in.canny({sigma: Float64, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*sigma* : Float64 - Sigma of Gaussian\n\n*precision* : Enums::Precision - Convolve with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Canny edge detector

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":486,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L486"},"def":{"name":"canny","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"canny\", options)).as(Type)).as_image\n"}},{"html_id":"case(*args:Float64):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an array of constants","summary":"

    Use pixel values to pick cases from an array of constants

    ","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Float64"}],"args_string":"(*args : Float64) : Image","args_html":"(*args : Float64) : Image","location":{"filename":"src/vips/image.cr","line_number":676,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L676"},"def":{"name":"case","args":[{"name":"args","external_name":"args","restriction":"Float64"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"case\", args.to_a)).as(Type)).as_image"}},{"html_id":"case(*args:Int32):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an array of constants","summary":"

    Use pixel values to pick cases from an array of constants

    ","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Int32"}],"args_string":"(*args : Int32) : Image","args_html":"(*args : Int32) : Image","location":{"filename":"src/vips/image.cr","line_number":681,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L681"},"def":{"name":"case","args":[{"name":"args","external_name":"args","restriction":"Int32"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"self.case(*args.map(&.to_f))"}},{"html_id":"case(*images:Image):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an array of images.","summary":"

    Use pixel values to pick cases from an array of images.

    ","abstract":false,"args":[{"name":"images","external_name":"images","restriction":"Image"}],"args_string":"(*images : Image) : Image","args_html":"(*images : Image) : Image","location":{"filename":"src/vips/image.cr","line_number":686,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L686"},"def":{"name":"case","args":[{"name":"images","external_name":"images","restriction":"Image"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"case\", images.to_a)).as(Type)).as_image"}},{"html_id":"case(*args):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an a set of mixed images and constants.","summary":"

    Use pixel values to pick cases from an a set of mixed images and constants.

    ","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args) : Image","args_html":"(*args) : Image","location":{"filename":"src/vips/image.cr","line_number":691,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L691"},"def":{"name":"case","args":[{"name":"args","external_name":"args","restriction":""}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"case\", args.to_a)).as(Type)).as_image"}},{"html_id":"cast(format:Enums::BandFormat,**kwargs)-instance-method","name":"cast","doc":"Cast an image\n\n```\n# out_ = in.cast(format, {shift: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*format* : Enums::BandFormat - Format to cast to\n\n_Optionals_\n\n*shift* : Bool - Shift integer values up and down\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cast an image

    ","abstract":false,"args":[{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"args_string":"(format : Enums::BandFormat, **kwargs)","args_html":"(format : Enums::BandFormat, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":514,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L514"},"def":{"name":"cast","args":[{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"cast\", options, format)).as(Type)).as_image\n"}},{"html_id":"ceil:Image-instance-method","name":"ceil","doc":"Return the smallest integral value not less than the argument.","summary":"

    Return the smallest integral value not less than the argument.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1023,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1023"},"def":{"name":"ceil","return_type":"Image","visibility":"Public","body":"((self.call(\"round\", Enums::OperationRound::Ceil)).as(Type)).as_image"}},{"html_id":"cmc2lch-instance-method","name":"cmc2lch","doc":"Transform lch to cmc\n\n```\n# out_ = in.cmc2lch()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lch to cmc

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":531,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L531"},"def":{"name":"cmc2lch","visibility":"Public","body":"((self.call(\"cmc2lch\")).as(Type)).as_image"}},{"html_id":"cmyk2xyz-instance-method","name":"cmyk2xyz","doc":"Transform cmyk to xyz\n\n```\n# out_ = in.cmyk2xyz()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform cmyk to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":546,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L546"},"def":{"name":"cmyk2xyz","visibility":"Public","body":"((self.call(\"cmyk2xyz\")).as(Type)).as_image"}},{"html_id":"coding:Enums::Coding-instance-method","name":"coding","doc":"Pixel coding","summary":"

    Pixel coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10836,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10836"},"def":{"name":"coding","return_type":"Enums::Coding","visibility":"Public","body":"(get(\"coding\")).as_enum(Enums::Coding)"}},{"html_id":"colourspace(space:Enums::Interpretation,**kwargs)-instance-method","name":"colourspace","doc":"Convert to a new colorspace\n\n```\n# out_ = in.colourspace(space, {source_space: Enums::Interpretation})\n```\n\n\nInput Parameters\n\n**Required**\n\n*space* : Enums::Interpretation - Destination color space\n\n_Optionals_\n\n*source_space* : Enums::Interpretation - Source color space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert to a new colorspace

    ","abstract":false,"args":[{"name":"space","external_name":"space","restriction":"Enums::Interpretation"}],"args_string":"(space : Enums::Interpretation, **kwargs)","args_html":"(space : Enums::Interpretation, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":572,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L572"},"def":{"name":"colourspace","args":[{"name":"space","external_name":"space","restriction":"Enums::Interpretation"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"colourspace\", options, space)).as(Type)).as_image\n"}},{"html_id":"compass(mask:Image,**kwargs)-instance-method","name":"compass","doc":"Convolve with rotating mask\n\n```\n# out_ = in.compass(mask, {times: Int32, angle: Enums::Angle45, combine: Enums::Combine, precision: Enums::Precision, layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*times* : Int32 - Rotate and convolve this many times\n\n*angle* : Enums::Angle45 - Rotate mask by this much between convolutions\n\n*combine* : Enums::Combine - Combine convolution results like this\n\n*precision* : Enums::Precision - Convolve with this precision\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convolve with rotating mask

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":610,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L610"},"def":{"name":"compass","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"compass\", options, mask)).as(Type)).as_image\n"}},{"html_id":"complex(cmplx:Enums::OperationComplex)-instance-method","name":"complex","doc":"Perform a complex operation on an image\n\n```\n# out_ = in.complex(cmplx)\n```\n\n\nInput Parameters\n\n**Required**\n\n*cmplx* : Enums::OperationComplex - Complex to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Perform a complex operation on an image

    ","abstract":false,"args":[{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex"}],"args_string":"(cmplx : Enums::OperationComplex)","args_html":"(cmplx : Enums::OperationComplex)","location":{"filename":"src/vips/ext/image.cr","line_number":634,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L634"},"def":{"name":"complex","args":[{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex"}],"visibility":"Public","body":"((self.call(\"complex\", cmplx)).as(Type)).as_image"}},{"html_id":"complex2(right:Image,cmplx:Enums::OperationComplex2)-instance-method","name":"complex2","doc":"Complex binary operations on two images\n\n```\n# out_ = left.complex2(right, cmplx)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*cmplx* : Enums::OperationComplex2 - Binary complex operation to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Complex binary operations on two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex2"}],"args_string":"(right : Image, cmplx : Enums::OperationComplex2)","args_html":"(right : Image, cmplx : Enums::OperationComplex2)","location":{"filename":"src/vips/ext/image.cr","line_number":658,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L658"},"def":{"name":"complex2","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex2"}],"visibility":"Public","body":"((self.call(\"complex2\", right, cmplx)).as(Type)).as_image"}},{"html_id":"complexform(right:Image)-instance-method","name":"complexform","doc":"Form a complex image from two real images\n\n```\n# out_ = left.complexform(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Form a complex image from two real images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":680,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L680"},"def":{"name":"complexform","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"complexform\", right)).as(Type)).as_image"}},{"html_id":"complexget(get:Enums::OperationComplexget)-instance-method","name":"complexget","doc":"Get a component from a complex image\n\n```\n# out_ = in.complexget(get)\n```\n\n\nInput Parameters\n\n**Required**\n\n*get* : Enums::OperationComplexget - Complex to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Get a component from a complex image

    ","abstract":false,"args":[{"name":"get","external_name":"get","restriction":"Enums::OperationComplexget"}],"args_string":"(get : Enums::OperationComplexget)","args_html":"(get : Enums::OperationComplexget)","location":{"filename":"src/vips/ext/image.cr","line_number":702,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L702"},"def":{"name":"complexget","args":[{"name":"get","external_name":"get","restriction":"Enums::OperationComplexget"}],"visibility":"Public","body":"((self.call(\"complexget\", get)).as(Type)).as_image"}},{"html_id":"composite(images:Array(Image),modes:Array(Enums::BlendMode),**kwargs)-instance-method","name":"composite","doc":"Blend an array of images with an array of blend modes\n\n```\n# out_ = Vips::Image.composite(images, modes, {x: Array(Int32), y: Array(Int32), compositing_space: Enums::Interpretation, premultiplied: Bool})\n```\n\nInput Parameters\n\n**Required**\n\n*images* : Array(Image) - Array of input images\n\n*modes* : Array(Enums::BlendMode) - Array of `Enums::BlendMode` to join with\n\n_Optionals_\n\n*x* : Array(Int32) - Array of x coordinates to join at\n\n*y* : Array(Int32) - Array of y coordinates to join at\n\n*compositing_space* : `Enums::Interpretation` - Composite images in this colour space\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n**Returns**\n\nOutput `Image`","summary":"

    Blend an array of images with an array of blend modes

    ","abstract":false,"args":[{"name":"images","external_name":"images","restriction":"Array(Image)"},{"name":"modes","external_name":"modes","restriction":"Array(Enums::BlendMode)"}],"args_string":"(images : Array(Image), modes : Array(Enums::BlendMode), **kwargs)","args_html":"(images : Array(Image), modes : Array(Enums::BlendMode), **kwargs)","location":{"filename":"src/vips/image.cr","line_number":793,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L793"},"def":{"name":"composite","args":[{"name":"images","external_name":"images","restriction":"Array(Image)"},{"name":"modes","external_name":"modes","restriction":"Array(Enums::BlendMode)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"composite\", options, images.unshift(self), modes)).as(Type)).as_image\n"}},{"html_id":"composite(image:Image,mode:Enums::BlendMode,**kwargs)-instance-method","name":"composite","doc":"A synonym for `composite2`\n\n```\n# out_ = Vips::Image.composite(overlay, mode, {x: Array(Int32), y: Array(Int32), compositing_space: Enums::Interpretation, premultiplied: Bool})\n```\n\nInput Parameters\n\n**Required**\n\n*overlay* : Image - Overlay image\n\n*modes : Enums::BlendMode - VipsBlendMode to join with\n\n_Optionals_\n\n*x* : Int32 - x position of overlay\n\n*y* : Int32 - y position of overlay\n\n*compositing_space* : `Enums::Interpretation` - Composite images in this colour space\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n**Returns**\n\nOutput image","summary":"

    A synonym for #composite2

    ","abstract":false,"args":[{"name":"image","external_name":"image","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"args_string":"(image : Image, mode : Enums::BlendMode, **kwargs)","args_html":"(image : Image, mode : Enums::BlendMode, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":826,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L826"},"def":{"name":"composite","args":[{"name":"image","external_name":"image","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"composite2(image, mode, **kwargs)"}},{"html_id":"composite2(overlay:Image,mode:Enums::BlendMode,**kwargs)-instance-method","name":"composite2","doc":"Blend a pair of images with a blend mode\n\n```\n# out_ = base.composite2(overlay, mode, {x: Int32, y: Int32, compositing_space: Enums::Interpretation, premultiplied: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*overlay* : Image - Overlay image\n\n*mode* : Enums::BlendMode - VipsBlendMode to join with\n\n_Optionals_\n\n*x* : Int32 - x position of overlay\n\n*y* : Int32 - y position of overlay\n\n*compositing_space* : Enums::Interpretation - Composite images in this colour space\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n\n**Returns**\n\nOutput image\n","summary":"

    Blend a pair of images with a blend mode

    ","abstract":false,"args":[{"name":"overlay","external_name":"overlay","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"args_string":"(overlay : Image, mode : Enums::BlendMode, **kwargs)","args_html":"(overlay : Image, mode : Enums::BlendMode, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":736,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L736"},"def":{"name":"composite2","args":[{"name":"overlay","external_name":"overlay","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"composite2\", options, overlay, mode)).as(Type)).as_image\n"}},{"html_id":"conj:Image-instance-method","name":"conj","doc":"Return the complex conjugate of an image.","summary":"

    Return the complex conjugate of an image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":868,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L868"},"def":{"name":"conj","return_type":"Image","visibility":"Public","body":"complex(Enums::OperationComplex::Conj)"}},{"html_id":"contains(name:String)-instance-method","name":"contains","doc":"Check if the underlying image contains an property of metadata.","summary":"

    Check if the underlying image contains an property of metadata.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/image.cr","line_number":574,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L574"},"def":{"name":"contains","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"(get_typeof(name)) != 0"}},{"html_id":"conv(mask:Image,**kwargs)-instance-method","name":"conv","doc":"Convolution operation\n\n```\n# out_ = in.conv(mask, {precision: Enums::Precision, layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*precision* : Enums::Precision - Convolve with this precision\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":768,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L768"},"def":{"name":"conv","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"conv\", options, mask)).as(Type)).as_image\n"}},{"html_id":"conva(mask:Image,**kwargs)-instance-method","name":"conva","doc":"Approximate integer convolution\n\n```\n# out_ = in.conva(mask, {layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Approximate integer convolution

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":798,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L798"},"def":{"name":"conva","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"conva\", options, mask)).as(Type)).as_image\n"}},{"html_id":"convasep(mask:Image,**kwargs)-instance-method","name":"convasep","doc":"Approximate separable integer convolution\n\n```\n# out_ = in.convasep(mask, {layers: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*layers* : Int32 - Use this many layers in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Approximate separable integer convolution

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":826,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L826"},"def":{"name":"convasep","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"convasep\", options, mask)).as(Type)).as_image\n"}},{"html_id":"convf(mask:Image)-instance-method","name":"convf","doc":"Float convolution operation\n\n```\n# out_ = in.convf(mask)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Float convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":850,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L850"},"def":{"name":"convf","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"convf\", mask)).as(Type)).as_image"}},{"html_id":"convi(mask:Image)-instance-method","name":"convi","doc":"Int convolution operation\n\n```\n# out_ = in.convi(mask)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Int convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":872,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L872"},"def":{"name":"convi","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"convi\", mask)).as(Type)).as_image"}},{"html_id":"convsep(mask:Image,**kwargs)-instance-method","name":"convsep","doc":"Seperable convolution operation\n\n```\n# out_ = in.convsep(mask, {precision: Enums::Precision, layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*precision* : Enums::Precision - Convolve with this precision\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Seperable convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":902,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L902"},"def":{"name":"convsep","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"convsep\", options, mask)).as(Type)).as_image\n"}},{"html_id":"copy(**kwargs)-instance-method","name":"copy","doc":"Copy an image\n\n```\n# out_ = in.copy({width: Int32, height: Int32, bands: Int32, format: Enums::BandFormat, coding: Enums::Coding, interpretation: Enums::Interpretation, xres: Float64, yres: Float64, xoffset: Int32, yoffset: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*bands* : Int32 - Number of bands in image\n\n*format* : Enums::BandFormat - Pixel format in image\n\n*coding* : Enums::Coding - Pixel coding\n\n*interpretation* : Enums::Interpretation - Pixel interpretation\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*xoffset* : Int32 - Horizontal offset of origin\n\n*yoffset* : Int32 - Vertical offset of origin\n\n\n**Returns**\n\nOutput image\n","summary":"

    Copy an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":944,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L944"},"def":{"name":"copy","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"copy\", options)).as(Type)).as_image\n"}},{"html_id":"copy_memory-instance-method","name":"copy_memory","doc":"Copy an image to a memory area.\n\nThis can be useful for reusing results, but can obviously use a lot of\nmemory for large images. See {Image#tilecache} for a way of caching\nparts of an image.\n\nReturns new memory `Image`","summary":"

    Copy an image to a memory area.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":405,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L405"},"def":{"name":"copy_memory","visibility":"Public","body":"vi = LibVips.vips_image_copy_memory(self)\nif vi.null?\n raise(VipsException.new(\"unable to copy to memory\"))\nend\nnew(vi)\n"}},{"html_id":"cos:Image-instance-method","name":"cos","doc":"Return the cosine of an image in degrees.","summary":"

    Return the cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":878,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L878"},"def":{"name":"cos","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Cos)"}},{"html_id":"cosh:Image-instance-method","name":"cosh","doc":"Return the hyperbolic cosine of an image in degrees.","summary":"

    Return the hyperbolic cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":908,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L908"},"def":{"name":"cosh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Cosh)"}},{"html_id":"countlines(direction:Enums::Direction)-instance-method","name":"countlines","doc":"Count lines in an image\n\n```\n# nolines = in.countlines(direction)\n```\n\n\nInput Parameters\n\n**Required**\n\n*direction* : Enums::Direction - Countlines left-right or up-down\n\n\n**Returns**\n\nNumber of lines\n","summary":"

    Count lines in an image

    ","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"args_string":"(direction : Enums::Direction)","args_html":"(direction : Enums::Direction)","location":{"filename":"src/vips/ext/image.cr","line_number":968,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L968"},"def":{"name":"countlines","args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"visibility":"Public","body":"((self.call(\"countlines\", direction)).as(Type)).as_f64"}},{"html_id":"crop(left:Int32,top:Int32,width:Int32,height:Int32)-instance-method","name":"crop","doc":"A synonym for `extract_area`","summary":"

    A synonym for #extract_area

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32)","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32)","location":{"filename":"src/vips/image.cr","line_number":831,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L831"},"def":{"name":"crop","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"extract_area(left, top, width, height)"}},{"html_id":"csvsave(filename:String,**kwargs)-instance-method","name":"csvsave","doc":"Save image to csv\n\n```\nin.csvsave(filename, {separator: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*separator* : String - Separator characters\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to csv

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1136,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1136"},"def":{"name":"csvsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"csvsave\", options, filename)\n"}},{"html_id":"csvsave_stream(stream:IO,**kwargs)-instance-method","name":"csvsave_stream","doc":"Save image to csv\n\n```\nin.csvsave_stream(stream, {separator: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*separator* : String - Separator characters\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to csv

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1191,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1191"},"def":{"name":"csvsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ncsvsave_target(target, **kwargs)\n"}},{"html_id":"csvsave_target(target:Target,**kwargs)-instance-method","name":"csvsave_target","doc":"Save image to csv\n\n```\nin.csvsave_target(target, {separator: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*separator* : String - Separator characters\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to csv

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1165,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1165"},"def":{"name":"csvsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"csvsave_target\", options, target)\n"}},{"html_id":"de00(right:Image)-instance-method","name":"de00","doc":"Calculate de00\n\n```\n# out_ = left.de00(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate de00

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1214,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1214"},"def":{"name":"de00","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"de00\", right)).as(Type)).as_image"}},{"html_id":"de76(right:Image)-instance-method","name":"de76","doc":"Calculate de76\n\n```\n# out_ = left.de76(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate de76

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1236,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1236"},"def":{"name":"de76","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"de76\", right)).as(Type)).as_image"}},{"html_id":"decmc(right:Image)-instance-method","name":"decmc","doc":"Calculate decmc\n\n```\n# out_ = left.decmc(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate decmc

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1258,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1258"},"def":{"name":"decmc","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"decmc\", right)).as(Type)).as_image"}},{"html_id":"deviate-instance-method","name":"deviate","doc":"Find image standard deviation\n\n```\n# out_ = in.deviate()\n```\n\n\n**Returns**\n\nOutput value\n","summary":"

    Find image standard deviation

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1273,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1273"},"def":{"name":"deviate","visibility":"Public","body":"((self.call(\"deviate\")).as(Type)).as_f64"}},{"html_id":"dilate(mask:Image)-instance-method","name":"dilate","doc":"Dilate with a structuring element.","summary":"

    Dilate with a structuring element.

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/image.cr","line_number":983,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L983"},"def":{"name":"dilate","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"morph(mask, Enums::OperationMorphology::Dilate)"}},{"html_id":"divide(right:Image)-instance-method","name":"divide","doc":"Divide two images\n\n```\n# out_ = left.divide(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Divide two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1295,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1295"},"def":{"name":"divide","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"divide\", right)).as(Type)).as_image"}},{"html_id":"dzsave(filename:String,**kwargs)-instance-method","name":"dzsave","doc":"Save image to deepzoom file\n\n```\nin.dzsave(filename, {basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to deepzoom file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1349,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1349"},"def":{"name":"dzsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"dzsave\", options, filename)\n"}},{"html_id":"dzsave_buffer(**kwargs)-instance-method","name":"dzsave_buffer","doc":"Save image to dz buffer\n\n```\n# buffer = in.dzsave_buffer({basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to dz buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1404,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1404"},"def":{"name":"dzsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"dzsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"dzsave_stream(stream:IO,**kwargs)-instance-method","name":"dzsave_stream","doc":"Save image to deepzoom stream\n\n```\nin.dzsave_stream(stream, {basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to deepzoom stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1512,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1512"},"def":{"name":"dzsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ndzsave_target(target, **kwargs)\n"}},{"html_id":"dzsave_target(target:Target,**kwargs)-instance-method","name":"dzsave_target","doc":"Save image to deepzoom target\n\n```\nin.dzsave_target(target, {basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to deepzoom target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1460,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1460"},"def":{"name":"dzsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"dzsave_target\", options, target)\n"}},{"html_id":"embed(x:Int32,y:Int32,width:Int32,height:Int32,**kwargs)-instance-method","name":"embed","doc":"Embed an image in a larger image\n\n```\n# out_ = in.embed(x, y, width, height, {extend: Enums::Extend, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n**Required**\n\n*x* : Int32 - Left edge of input in output\n\n*y* : Int32 - Top edge of input in output\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n*background* : Array(Float64) - Color for background pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Embed an image in a larger image

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32, width : Int32, height : Int32, **kwargs)","args_html":"(x : Int32, y : Int32, width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1547,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1547"},"def":{"name":"embed","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"embed\", options, x, y, width, height)).as(Type)).as_image\n"}},{"html_id":"erode(mask:Image)-instance-method","name":"erode","doc":"Erode with a structuring element.","summary":"

    Erode with a structuring element.

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/image.cr","line_number":978,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L978"},"def":{"name":"erode","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"morph(mask, Enums::OperationMorphology::Erode)"}},{"html_id":"exp:Image-instance-method","name":"exp","doc":"Returns e ** pixel","summary":"

    Returns e ** pixel

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":943,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L943"},"def":{"name":"exp","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Exp)"}},{"html_id":"exp10:Image-instance-method","name":"exp10","doc":"Returns 10 ** pixel","summary":"

    Returns 10 ** pixel

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":948,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L948"},"def":{"name":"exp10","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Exp10)"}},{"html_id":"extract_area(left:Int32,top:Int32,width:Int32,height:Int32)-instance-method","name":"extract_area","doc":"Extract an area from an image\n\n```\n# out_ = input.extract_area(left, top, width, height)\n```\n\n\nInput Parameters\n\n**Required**\n\n*left* : Int32 - Left edge of extract area\n\n*top* : Int32 - Top edge of extract area\n\n*width* : Int32 - Width of extract area\n\n*height* : Int32 - Height of extract area\n\n\n**Returns**\n\nOutput image\n","summary":"

    Extract an area from an image

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32)","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":1577,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1577"},"def":{"name":"extract_area","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"extract_area\", left, top, width, height)).as(Type)).as_image"}},{"html_id":"extract_band(band:Int32,**kwargs)-instance-method","name":"extract_band","doc":"Extract band from an image\n\n```\n# out_ = in.extract_band(band, {n: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*band* : Int32 - Band to extract\n\n_Optionals_\n\n*n* : Int32 - Number of bands to extract\n\n\n**Returns**\n\nOutput image\n","summary":"

    Extract band from an image

    ","abstract":false,"args":[{"name":"band","external_name":"band","restriction":"Int32"}],"args_string":"(band : Int32, **kwargs)","args_html":"(band : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1603,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1603"},"def":{"name":"extract_band","args":[{"name":"band","external_name":"band","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"extract_band\", options, band)).as(Type)).as_image\n"}},{"html_id":"falsecolour-instance-method","name":"falsecolour","doc":"False-color an image\n\n```\n# out_ = in.falsecolour()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    False-color an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1652,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1652"},"def":{"name":"falsecolour","visibility":"Public","body":"((self.call(\"falsecolour\")).as(Type)).as_image"}},{"html_id":"fastcor(ref:Image)-instance-method","name":"fastcor","doc":"Fast correlation\n\n```\n# out_ = in.fastcor(ref)\n```\n\n\nInput Parameters\n\n**Required**\n\n*ref* : Image - Input reference image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Fast correlation

    ","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"args_string":"(ref : Image)","args_html":"(ref : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1674,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1674"},"def":{"name":"fastcor","args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"fastcor\", ref)).as(Type)).as_image"}},{"html_id":"filename:String-instance-method","name":"filename","doc":"Image filename","summary":"

    Image filename

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10866,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10866"},"def":{"name":"filename","return_type":"String","visibility":"Public","body":"(get(\"filename\")).as_s"}},{"html_id":"fill_nearest-instance-method","name":"fill_nearest","doc":"Fill image zeros with nearest non-zero pixel\n\n```\n# out_, distance = in.fill_nearest()\n```\n\n\n**Returns**\n\nValue of nearest non-zero pixel\n\n_Optionals_\n\n*distance* : Image? - Distance to nearest non-zero pixel\n","summary":"

    Fill image zeros with nearest non-zero pixel

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1693,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1693"},"def":{"name":"fill_nearest","visibility":"Public","body":"optional_output = Optional.new(**{distance: true})\nresults = (self.call(\"fill_nearest\", optional_output)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\ndistance = ((o = opts) && (val = o[\"distance\"]?)) ? val.as_image : nil\n{final_result, distance}\n"}},{"html_id":"find_trim(**kwargs)-instance-method","name":"find_trim","doc":"Search an image for non-edge areas\n\n```\n# output = in.find_trim({threshold: Float64, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*threshold* : Float64 - Object threshold\n\n*background* : Array(Float64) - Color for background pixels\n\n\n**Returns**\n\nLeft edge of image\n\nTop edge of extract area\n\nWidth of extract area\n\nHeight of extract area\n","summary":"

    Search an image for non-edge areas

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1731,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1731"},"def":{"name":"find_trim","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nresults = (self.call(\"find_trim\", options)).as(Array(Type))\n{results[0].as_i32, results[1].as_i32, results[2].as_i32, results[3].as_i32}\n"}},{"html_id":"fitssave(filename:String,**kwargs)-instance-method","name":"fitssave","doc":"Save image to fits file\n\n```\nin.fitssave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to fits file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1877,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1877"},"def":{"name":"fitssave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"fitssave\", options, filename)\n"}},{"html_id":"flatten(**kwargs)-instance-method","name":"flatten","doc":"Flatten alpha out of an image\n\n```\n# out_ = in.flatten({background: Array(Float64), max_alpha: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*background* : Array(Float64) - Background value\n\n*max_alpha* : Float64 - Maximum value of alpha channel\n\n\n**Returns**\n\nOutput image\n","summary":"

    Flatten alpha out of an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1902,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1902"},"def":{"name":"flatten","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"flatten\", options)).as(Type)).as_image\n"}},{"html_id":"flip(direction:Enums::Direction)-instance-method","name":"flip","doc":"Flip an image\n\n```\n# out_ = in.flip(direction)\n```\n\n\nInput Parameters\n\n**Required**\n\n*direction* : Enums::Direction - Direction to flip image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Flip an image

    ","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"args_string":"(direction : Enums::Direction)","args_html":"(direction : Enums::Direction)","location":{"filename":"src/vips/ext/image.cr","line_number":1926,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1926"},"def":{"name":"flip","args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"visibility":"Public","body":"((self.call(\"flip\", direction)).as(Type)).as_image"}},{"html_id":"fliphor-instance-method","name":"fliphor","doc":"Flip horizontally","summary":"

    Flip horizontally

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":993,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L993"},"def":{"name":"fliphor","visibility":"Public","body":"flip(Enums::Direction::Horizontal)"}},{"html_id":"flipver-instance-method","name":"flipver","doc":"Flip vertically","summary":"

    Flip vertically

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":998,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L998"},"def":{"name":"flipver","visibility":"Public","body":"flip(Enums::Direction::Vertical)"}},{"html_id":"float2rad-instance-method","name":"float2rad","doc":"Transform float rgb to radiance coding\n\n```\n# out_ = in.float2rad()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform float rgb to radiance coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1941,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1941"},"def":{"name":"float2rad","visibility":"Public","body":"((self.call(\"float2rad\")).as(Type)).as_image"}},{"html_id":"floor:Image-instance-method","name":"floor","doc":"Return the largest integral value not greater than the argument.","summary":"

    Return the largest integral value not greater than the argument.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1018,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1018"},"def":{"name":"floor","return_type":"Image","visibility":"Public","body":"((self.call(\"round\", Enums::OperationRound::Floor)).as(Type)).as_image"}},{"html_id":"format:Enums::BandFormat-instance-method","name":"format","doc":"Pixel format in image","summary":"

    Pixel format in image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10831,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10831"},"def":{"name":"format","return_type":"Enums::BandFormat","visibility":"Public","body":"(get(\"format\")).as_enum(Enums::BandFormat)"}},{"html_id":"freqmult(mask:Image)-instance-method","name":"freqmult","doc":"Frequency-domain filtering\n\n```\n# out_ = in.freqmult(mask)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input mask image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Frequency-domain filtering

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1989,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L1989"},"def":{"name":"freqmult","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"freqmult\", mask)).as(Type)).as_image"}},{"html_id":"fwfft-instance-method","name":"fwfft","doc":"Forward fft\n\n```\n# out_ = in.fwfft()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Forward fft

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2004,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2004"},"def":{"name":"fwfft","visibility":"Public","body":"((self.call(\"fwfft\")).as(Type)).as_image"}},{"html_id":"gamma(**kwargs)-instance-method","name":"gamma","doc":"Gamma an image\n\n```\n# out_ = in.gamma({exponent: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*exponent* : Float64 - Gamma factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Gamma an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2026,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2026"},"def":{"name":"gamma","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gamma\", options)).as(Type)).as_image\n"}},{"html_id":"gaussblur(sigma:Float64,**kwargs)-instance-method","name":"gaussblur","doc":"Gaussian blur\n\n```\n# out_ = in.gaussblur(sigma, {min_ampl: Float64, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sigma* : Float64 - Sigma of Gaussian\n\n_Optionals_\n\n*min_ampl* : Float64 - Minimum amplitude of Gaussian\n\n*precision* : Enums::Precision - Convolve with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Gaussian blur

    ","abstract":false,"args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"}],"args_string":"(sigma : Float64, **kwargs)","args_html":"(sigma : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2056,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2056"},"def":{"name":"gaussblur","args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gaussblur\", options, sigma)).as(Type)).as_image\n"}},{"html_id":"get(name:String)-instance-method","name":"get","doc":"Get a metadata item from an image. Crystal types are constructed\nautomatically from the `GValue`, if possible.\n\nFor example, you can read the ICC profile from an image like this:\n\n```\nprofile = image.get \"icc-profile-data\"\n```\n\nand profile will be an array containing the profile.","summary":"

    Get a metadata item from an image.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/image.cr","line_number":588,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L588"},"def":{"name":"get","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"if (name == \"scale \") && (!(contains(\"scale\")))\n return Type.new(1.0)\nend\nif (name == \"offset\") && (!(contains(\"offset\")))\n return Type.new(0.0)\nend\nif Vips.at_least_libvips?(8, 5)\nelse\n if get_typeof(name: name) != 0\n return super(name)\n end\nend\ngv_copy = GValue.new\nif (LibVips.vips_image_get(self, name, gv_copy)) != 0\n raise(VipsException.new(\"unable to get #{name}\"))\nend\ngv = GValue.new(gv_copy)\ngv.get\n"}},{"html_id":"get_fields-instance-method","name":"get_fields","doc":"Get the names of all fields on an image. Use this to loop over all\nimage metadata.","summary":"

    Get the names of all fields on an image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":605,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L605"},"def":{"name":"get_fields","visibility":"Public","body":"names = Array(String).new\nif Vips.at_least_libvips?(8, 5)\nelse\n return names\nend\nptr = LibVips.vips_image_get_fields(self)\naptr = ptr\nwhile (p = ptr.value)\n names << (String.new(p))\n LibVips.g_free(p)\n ptr = ptr + 1\nend\nLibVips.g_free(aptr)\nnames\n"}},{"html_id":"get_typeof(nam:String)-instance-method","name":"get_typeof","doc":"Get the GType of a GObject property","summary":"

    Get the GType of a GObject property

    ","abstract":false,"args":[{"name":"nam","external_name":"nam","restriction":"String"}],"args_string":"(nam : String)","args_html":"(nam : String)","location":{"filename":"src/vips/image.cr","line_number":562,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L562"},"def":{"name":"get_typeof","args":[{"name":"nam","external_name":"nam","restriction":"String"}],"visibility":"Public","body":"if Vips.at_least_libvips?(8, 5)\nelse\n gtype = super(nam)\n if gtype.nil?\n else\n return gtype\n end\nend\nLibVips.vips_image_get_typeof(self, nam)\n"}},{"html_id":"getpoint(x:Int32,y:Int32)-instance-method","name":"getpoint","doc":"Read a point from an image\n\n```\n# out_array = in.getpoint(x, y)\n```\n\n\nInput Parameters\n\n**Required**\n\n*x* : Int32 - Point to read\n\n*y* : Int32 - Point to read\n\n\n**Returns**\n\nArray of output values\n","summary":"

    Read a point from an image

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32)","args_html":"(x : Int32, y : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":2148,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2148"},"def":{"name":"getpoint","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"getpoint\", x, y)).as(Type)).as_a64"}},{"html_id":"gifsave(filename:String,**kwargs)-instance-method","name":"gifsave","doc":"Save as gif\n\n```\nin.gifsave(filename, {dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as gif

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2363,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2363"},"def":{"name":"gifsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"gifsave\", options, filename)\n"}},{"html_id":"gifsave_buffer(**kwargs)-instance-method","name":"gifsave_buffer","doc":"Save as gif\n\n```\n# buffer = in.gifsave_buffer({dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save as gif

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2404,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2404"},"def":{"name":"gifsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gifsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"gifsave_stream(stream:IO,**kwargs)-instance-method","name":"gifsave_stream","doc":"Save as gif\n\n```\nin.gifsave_stream(stream, {dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save as gif

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2484,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2484"},"def":{"name":"gifsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ngifsave_target(target, **kwargs)\n"}},{"html_id":"gifsave_target(target:Target,**kwargs)-instance-method","name":"gifsave_target","doc":"Save as gif\n\n```\nin.gifsave_target(target, {dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as gif

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2446,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2446"},"def":{"name":"gifsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"gifsave_target\", options, target)\n"}},{"html_id":"globalbalance(**kwargs)-instance-method","name":"globalbalance","doc":"Global balance an image mosaic\n\n```\n# out_ = in.globalbalance({gamma: Float64, int_output: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*gamma* : Float64 - Image gamma\n\n*int_output* : Bool - Integer output\n\n\n**Returns**\n\nOutput image\n","summary":"

    Global balance an image mosaic

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2509,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2509"},"def":{"name":"globalbalance","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"globalbalance\", options)).as(Type)).as_image\n"}},{"html_id":"gravity(direction:Enums::CompassDirection,width:Int32,height:Int32,**kwargs)-instance-method","name":"gravity","doc":"Place an image within a larger image with a certain gravity\n\n```\n# out_ = in.gravity(direction, width, height, {extend: Enums::Extend, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n**Required**\n\n*direction* : Enums::CompassDirection - Direction to place image within width/height\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n*background* : Array(Float64) - Color for background pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Place an image within a larger image with a certain gravity

    ","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"Enums::CompassDirection"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(direction : Enums::CompassDirection, width : Int32, height : Int32, **kwargs)","args_html":"(direction : Enums::CompassDirection, width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2543,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2543"},"def":{"name":"gravity","args":[{"name":"direction","external_name":"direction","restriction":"Enums::CompassDirection"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gravity\", options, direction, width, height)).as(Type)).as_image\n"}},{"html_id":"grid(tile_height:Int32,across:Int32,down:Int32)-instance-method","name":"grid","doc":"Grid an image\n\n```\n# out_ = in.grid(tile_height, across, down)\n```\n\n\nInput Parameters\n\n**Required**\n\n*tile_height* : Int32 - Chop into tiles this high\n\n*across* : Int32 - Number of tiles across\n\n*down* : Int32 - Number of tiles down\n\n\n**Returns**\n\nOutput image\n","summary":"

    Grid an image

    ","abstract":false,"args":[{"name":"tile_height","external_name":"tile_height","restriction":"Int32"},{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"args_string":"(tile_height : Int32, across : Int32, down : Int32)","args_html":"(tile_height : Int32, across : Int32, down : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":2601,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2601"},"def":{"name":"grid","args":[{"name":"tile_height","external_name":"tile_height","restriction":"Int32"},{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"grid\", tile_height, across, down)).as(Type)).as_image"}},{"html_id":"has_alpha?:Bool-instance-method","name":"has_alpha?","doc":"Does this image have an alpha channel?","summary":"

    Does this image have an alpha channel?

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1189,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1189"},"def":{"name":"has_alpha?","return_type":"Bool","visibility":"Public","body":"if Vips.at_least_libvips?(8, 5)\n return (LibVips.vips_image_hasalpha(self)) != 0\nend\n((bands == 2) || ((bands == 4) && (interpretation != Enums::Interpretation::Cmyk))) || bands > 4\n"}},{"html_id":"height:Int32-instance-method","name":"height","doc":"Image height in pixels","summary":"

    Image height in pixels

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10821,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10821"},"def":{"name":"height","return_type":"Int32","visibility":"Public","body":"(get(\"height\")).as_i32"}},{"html_id":"hist_cum-instance-method","name":"hist_cum","doc":"Form cumulative histogram\n\n```\n# out_ = in.hist_cum()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Form cumulative histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2807,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2807"},"def":{"name":"hist_cum","visibility":"Public","body":"((self.call(\"hist_cum\")).as(Type)).as_image"}},{"html_id":"hist_entropy-instance-method","name":"hist_entropy","doc":"Estimate image entropy\n\n```\n# out_ = in.hist_entropy()\n```\n\n\n**Returns**\n\nOutput value\n","summary":"

    Estimate image entropy

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2822,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2822"},"def":{"name":"hist_entropy","visibility":"Public","body":"((self.call(\"hist_entropy\")).as(Type)).as_f64"}},{"html_id":"hist_equal(**kwargs)-instance-method","name":"hist_equal","doc":"Histogram equalisation\n\n```\n# out_ = in.hist_equal({band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*band* : Int32 - Equalise with this band\n\n\n**Returns**\n\nOutput image\n","summary":"

    Histogram equalisation

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2844,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2844"},"def":{"name":"hist_equal","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_equal\", options)).as(Type)).as_image\n"}},{"html_id":"hist_find(**kwargs)-instance-method","name":"hist_find","doc":"Find image histogram\n\n```\n# out_ = in.hist_find({band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*band* : Int32 - Find histogram of band\n\n\n**Returns**\n\nOutput histogram\n","summary":"

    Find image histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2868,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2868"},"def":{"name":"hist_find","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_find\", options)).as(Type)).as_image\n"}},{"html_id":"hist_find_indexed(index:Image,**kwargs)-instance-method","name":"hist_find_indexed","doc":"Find indexed image histogram\n\n```\n# out_ = in.hist_find_indexed(index, {combine: Enums::Combine})\n```\n\n\nInput Parameters\n\n**Required**\n\n*index* : Image - Index image\n\n_Optionals_\n\n*combine* : Enums::Combine - Combine bins like this\n\n\n**Returns**\n\nOutput histogram\n","summary":"

    Find indexed image histogram

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Image"}],"args_string":"(index : Image, **kwargs)","args_html":"(index : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2896,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2896"},"def":{"name":"hist_find_indexed","args":[{"name":"index","external_name":"index","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_find_indexed\", options, index)).as(Type)).as_image\n"}},{"html_id":"hist_find_ndim(**kwargs)-instance-method","name":"hist_find_ndim","doc":"Find n-dimensional image histogram\n\n```\n# out_ = in.hist_find_ndim({bins: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*bins* : Int32 - Number of bins in each dimension\n\n\n**Returns**\n\nOutput histogram\n","summary":"

    Find n-dimensional image histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2920,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2920"},"def":{"name":"hist_find_ndim","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_find_ndim\", options)).as(Type)).as_image\n"}},{"html_id":"hist_ismonotonic-instance-method","name":"hist_ismonotonic","doc":"Test for monotonicity\n\n```\n# monotonic = in.hist_ismonotonic()\n```\n\n\n**Returns**\n\ntrue if in is monotonic\n","summary":"

    Test for monotonicity

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2937,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2937"},"def":{"name":"hist_ismonotonic","visibility":"Public","body":"((self.call(\"hist_ismonotonic\")).as(Type)).as_b"}},{"html_id":"hist_local(width:Int32,height:Int32,**kwargs)-instance-method","name":"hist_local","doc":"Local histogram equalisation\n\n```\n# out_ = in.hist_local(width, height, {max_slope: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Window width in pixels\n\n*height* : Int32 - Window height in pixels\n\n_Optionals_\n\n*max_slope* : Int32 - Maximum slope (CLAHE)\n\n\n**Returns**\n\nOutput image\n","summary":"

    Local histogram equalisation

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2965,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2965"},"def":{"name":"hist_local","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_local\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"hist_match(ref:Image)-instance-method","name":"hist_match","doc":"Match two histograms\n\n```\n# out_ = in.hist_match(ref)\n```\n\n\nInput Parameters\n\n**Required**\n\n*ref* : Image - Reference histogram\n\n\n**Returns**\n\nOutput image\n","summary":"

    Match two histograms

    ","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"args_string":"(ref : Image)","args_html":"(ref : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":2989,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L2989"},"def":{"name":"hist_match","args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"hist_match\", ref)).as(Type)).as_image"}},{"html_id":"hist_norm-instance-method","name":"hist_norm","doc":"Normalise histogram\n\n```\n# out_ = in.hist_norm()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Normalise histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3004,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3004"},"def":{"name":"hist_norm","visibility":"Public","body":"((self.call(\"hist_norm\")).as(Type)).as_image"}},{"html_id":"hist_plot-instance-method","name":"hist_plot","doc":"Plot histogram\n\n```\n# out_ = in.hist_plot()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Plot histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3019,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3019"},"def":{"name":"hist_plot","visibility":"Public","body":"((self.call(\"hist_plot\")).as(Type)).as_image"}},{"html_id":"hough_circle(**kwargs)-instance-method","name":"hough_circle","doc":"Find hough circle transform\n\n```\n# out_ = in.hough_circle({scale: Int32, min_radius: Int32, max_radius: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*scale* : Int32 - Scale down dimensions by this factor\n\n*min_radius* : Int32 - Smallest radius to search for\n\n*max_radius* : Int32 - Largest radius to search for\n\n\n**Returns**\n\nOutput image\n","summary":"

    Find hough circle transform

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3045,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3045"},"def":{"name":"hough_circle","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hough_circle\", options)).as(Type)).as_image\n"}},{"html_id":"hough_line(**kwargs)-instance-method","name":"hough_line","doc":"Find hough line transform\n\n```\n# out_ = in.hough_line({width: Int32, height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*width* : Int32 - Horizontal size of parameter space\n\n*height* : Int32 - Vertical size of parameter space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Find hough line transform

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3071,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3071"},"def":{"name":"hough_line","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hough_line\", options)).as(Type)).as_image\n"}},{"html_id":"hsv2srgb-instance-method","name":"hsv2srgb","doc":"Transform hsv to srgb\n\n```\n# out_ = in.hsv2srgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform hsv to srgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3088,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3088"},"def":{"name":"hsv2srgb","visibility":"Public","body":"((self.call(\"hsv2srgb\")).as(Type)).as_image"}},{"html_id":"icc_export(**kwargs)-instance-method","name":"icc_export","doc":"Output to device with icc profile\n\n```\n# out_ = in.icc_export({pcs: Enums::PCS, intent: Enums::Intent, black_point_compensation: Bool, output_profile: String, depth: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*pcs* : Enums::PCS - Set Profile Connection Space\n\n*intent* : Enums::Intent - Rendering intent\n\n*black_point_compensation* : Bool - Enable black point compensation\n\n*output_profile* : String - Filename to load output profile from\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Output to device with icc profile

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3118,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3118"},"def":{"name":"icc_export","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"icc_export\", options)).as(Type)).as_image\n"}},{"html_id":"icc_import(**kwargs)-instance-method","name":"icc_import","doc":"Import from device with icc profile\n\n```\n# out_ = in.icc_import({pcs: Enums::PCS, intent: Enums::Intent, black_point_compensation: Bool, embedded: Bool, input_profile: String})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*pcs* : Enums::PCS - Set Profile Connection Space\n\n*intent* : Enums::Intent - Rendering intent\n\n*black_point_compensation* : Bool - Enable black point compensation\n\n*embedded* : Bool - Use embedded input profile, if available\n\n*input_profile* : String - Filename to load input profile from\n\n\n**Returns**\n\nOutput image\n","summary":"

    Import from device with icc profile

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3150,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3150"},"def":{"name":"icc_import","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"icc_import\", options)).as(Type)).as_image\n"}},{"html_id":"icc_transform(output_profile:String,**kwargs)-instance-method","name":"icc_transform","doc":"Transform between devices with icc profiles\n\n```\n# out_ = in.icc_transform(output_profile, {pcs: Enums::PCS, intent: Enums::Intent, black_point_compensation: Bool, embedded: Bool, input_profile: String, depth: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*output_profile* : String - Filename to load output profile from\n\n_Optionals_\n\n*pcs* : Enums::PCS - Set Profile Connection Space\n\n*intent* : Enums::Intent - Rendering intent\n\n*black_point_compensation* : Bool - Enable black point compensation\n\n*embedded* : Bool - Use embedded input profile, if available\n\n*input_profile* : String - Filename to load input profile from\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform between devices with icc profiles

    ","abstract":false,"args":[{"name":"output_profile","external_name":"output_profile","restriction":"String"}],"args_string":"(output_profile : String, **kwargs)","args_html":"(output_profile : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3188,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3188"},"def":{"name":"icc_transform","args":[{"name":"output_profile","external_name":"output_profile","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"icc_transform\", options, output_profile)).as(Type)).as_image\n"}},{"html_id":"ifthenelse(in1,in2,blend=false)-instance-method","name":"ifthenelse","doc":"ifthenelse an image\nSelect pixels from `th` if `self` is non-zero and from `el` if\n`self` is zero. Use the `:blend` option to fade smoothly\nbetween `th` and `el`.\n\n*in1 : Image | Float64 | Array(Float64)* true values\n\n*in2 : Image | Float64 | Array(Float64)* false values\n\n*blend : Bool* (false) Blend smoothly between *in1* and *in2*\n\nReturns merged `Image`","summary":"

    ifthenelse an image Select pixels from th if self is non-zero and from el if self is zero.

    ","abstract":false,"args":[{"name":"in1","external_name":"in1","restriction":""},{"name":"in2","external_name":"in2","restriction":""},{"name":"blend","default_value":"false","external_name":"blend","restriction":""}],"args_string":"(in1, in2, blend = false)","args_html":"(in1, in2, blend = false)","location":{"filename":"src/vips/image.cr","line_number":662,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L662"},"def":{"name":"ifthenelse","args":[{"name":"in1","external_name":"in1","restriction":""},{"name":"in2","external_name":"in2","restriction":""},{"name":"blend","default_value":"false","external_name":"blend","restriction":""}],"visibility":"Public","body":"match_image = in1.is_a?(Image) ? in1.as(Image) : (in2.is_a?(Image) ? in2.as(Image) : self)\nif in1.is_a?(Image)\nelse\n in1 = Image.imageize(match_image, in1.not_nil!)\nend\nif in2.is_a?(Image)\nelse\n in2 = Image.imageize(match_image, in2.not_nil!)\nend\noptions = Optional.new(**{blend: blend})\n((call(\"ifthenelse\", options, in1, in2)).as(Type)).as_image\n"}},{"html_id":"imag:Image-instance-method","name":"imag","doc":"Return the imaginary part of a complex image.","summary":"

    Return the imaginary part of a complex image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":853,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L853"},"def":{"name":"imag","return_type":"Image","visibility":"Public","body":"complexget(Enums::OperationComplexget::Imag)"}},{"html_id":"insert(sub:Image,x:Int32,y:Int32,**kwargs)-instance-method","name":"insert","doc":"Insert image @sub into @main at @x, @y\n\n```\n# out_ = main.insert(sub, x, y, {expand: Bool, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sub* : Image - Sub-image to insert into main image\n\n*x* : Int32 - Left edge of sub in main\n\n*y* : Int32 - Top edge of sub in main\n\n_Optionals_\n\n*expand* : Bool - Expand output to hold all of both inputs\n\n*background* : Array(Float64) - Color for new pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Insert image @sub into @main at @x, @y

    ","abstract":false,"args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(sub : Image, x : Int32, y : Int32, **kwargs)","args_html":"(sub : Image, x : Int32, y : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3250,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3250"},"def":{"name":"insert","args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"insert\", options, sub, x, y)).as(Type)).as_image\n"}},{"html_id":"interpretation:Enums::Interpretation-instance-method","name":"interpretation","doc":"Pixel interpretation","summary":"

    Pixel interpretation

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10841,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10841"},"def":{"name":"interpretation","return_type":"Enums::Interpretation","visibility":"Public","body":"(get(\"interpretation\")).as_enum(Enums::Interpretation)"}},{"html_id":"invert-instance-method","name":"invert","doc":"Invert an image\n\n```\n# out_ = in.invert()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Invert an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3267,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3267"},"def":{"name":"invert","visibility":"Public","body":"((self.call(\"invert\")).as(Type)).as_image"}},{"html_id":"invertlut(**kwargs)-instance-method","name":"invertlut","doc":"Build an inverted look-up table\n\n```\n# out_ = in.invertlut({size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*size* : Int32 - LUT size to generate\n\n\n**Returns**\n\nOutput image\n","summary":"

    Build an inverted look-up table

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3289,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3289"},"def":{"name":"invertlut","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"invertlut\", options)).as(Type)).as_image\n"}},{"html_id":"invfft(**kwargs)-instance-method","name":"invfft","doc":"Inverse fft\n\n```\n# out_ = in.invfft({real: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*real* : Bool - Output only the real part of the transform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Inverse fft

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3313,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3313"},"def":{"name":"invfft","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"invfft\", options)).as(Type)).as_image\n"}},{"html_id":"join(in2:Image,direction:Enums::Direction,**kwargs)-instance-method","name":"join","doc":"Join a pair of images\n\n```\n# out_ = in1.join(in2, direction, {expand: Bool, shim: Int32, background: Array(Float64), align: Enums::Align})\n```\n\n\nInput Parameters\n\n**Required**\n\n*in2* : Image - Second input image\n\n*direction* : Enums::Direction - Join left-right or up-down\n\n_Optionals_\n\n*expand* : Bool - Expand output to hold all of both inputs\n\n*shim* : Int32 - Pixels between images\n\n*background* : Array(Float64) - Colour for new pixels\n\n*align* : Enums::Align - Align on the low, centre or high coordinate edge\n\n\n**Returns**\n\nOutput image\n","summary":"

    Join a pair of images

    ","abstract":false,"args":[{"name":"in2","external_name":"in2","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"args_string":"(in2 : Image, direction : Enums::Direction, **kwargs)","args_html":"(in2 : Image, direction : Enums::Direction, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3349,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3349"},"def":{"name":"join","args":[{"name":"in2","external_name":"in2","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"join\", options, in2, direction)).as(Type)).as_image\n"}},{"html_id":"jp2ksave(filename:String,**kwargs)-instance-method","name":"jp2ksave","doc":"Save image in jpeg2000 format\n\n```\nin.jp2ksave(filename, {tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3554,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3554"},"def":{"name":"jp2ksave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jp2ksave\", options, filename)\n"}},{"html_id":"jp2ksave_buffer(**kwargs)-instance-method","name":"jp2ksave_buffer","doc":"Save image in jpeg2000 format\n\n```\n# buffer = in.jp2ksave_buffer({tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3591,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3591"},"def":{"name":"jp2ksave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"jp2ksave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"jp2ksave_stream(stream:IO,**kwargs)-instance-method","name":"jp2ksave_stream","doc":"Save image in jpeg2000 format\n\n```\nin.jp2ksave_stream(stream, {tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3663,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3663"},"def":{"name":"jp2ksave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\njp2ksave_target(target, **kwargs)\n"}},{"html_id":"jp2ksave_target(target:Target,**kwargs)-instance-method","name":"jp2ksave_target","doc":"Save image in jpeg2000 format\n\n```\nin.jp2ksave_target(target, {tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3629,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3629"},"def":{"name":"jp2ksave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jp2ksave_target\", options, target)\n"}},{"html_id":"jpegsave(filename:String,**kwargs)-instance-method","name":"jpegsave","doc":"Save image to jpeg file\n\n```\nin.jpegsave(filename, {q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to jpeg file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3893,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3893"},"def":{"name":"jpegsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jpegsave\", options, filename)\n"}},{"html_id":"jpegsave_buffer(**kwargs)-instance-method","name":"jpegsave_buffer","doc":"Save image to jpeg buffer\n\n```\n# buffer = in.jpegsave_buffer({q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to jpeg buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3940,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3940"},"def":{"name":"jpegsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"jpegsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"jpegsave_mime(**kwargs)-instance-method","name":"jpegsave_mime","doc":"Save image to jpeg mime\n\n```\nin.jpegsave_mime({q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to jpeg mime

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3984,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L3984"},"def":{"name":"jpegsave_mime","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jpegsave_mime\", options)\n"}},{"html_id":"jpegsave_stream(stream:IO,**kwargs)-instance-method","name":"jpegsave_stream","doc":"Save image to jpeg stream\n\n```\nin.jpegsave_stream(stream, {q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to jpeg stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4075,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4075"},"def":{"name":"jpegsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\njpegsave_target(target, **kwargs)\n"}},{"html_id":"jpegsave_target(target:Target,**kwargs)-instance-method","name":"jpegsave_target","doc":"Save image to jpeg target\n\n```\nin.jpegsave_target(target, {q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to jpeg target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4031,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4031"},"def":{"name":"jpegsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jpegsave_target\", options, target)\n"}},{"html_id":"jxlsave(filename:String,**kwargs)-instance-method","name":"jxlsave","doc":"Save image in jpeg-xl format\n\n```\nin.jxlsave(filename, {tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4271,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4271"},"def":{"name":"jxlsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jxlsave\", options, filename)\n"}},{"html_id":"jxlsave_buffer(**kwargs)-instance-method","name":"jxlsave_buffer","doc":"Save image in jpeg-xl format\n\n```\n# buffer = in.jxlsave_buffer({tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4308,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4308"},"def":{"name":"jxlsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"jxlsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"jxlsave_stream(stream:IO,**kwargs)-instance-method","name":"jxlsave_stream","doc":"Save image in jpeg-xl format\n\n```\nin.jxlsave_stream(stream, {tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4380,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4380"},"def":{"name":"jxlsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\njxlsave_target(target, **kwargs)\n"}},{"html_id":"jxlsave_target(target:Target,**kwargs)-instance-method","name":"jxlsave_target","doc":"Save image in jpeg-xl format\n\n```\nin.jxlsave_target(target, {tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4346,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4346"},"def":{"name":"jxlsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jxlsave_target\", options, target)\n"}},{"html_id":"killed?-instance-method","name":"killed?","doc":"If image has been killed see `set_kill`, set an error message,\nclear the `kill` flag and return true. Otherwise return false\n\nHandy for loops which need to run sets of threads which can fail.\nAt least libvips 8.8 is needed. If this version requirement is not met,\nit will always return false.","summary":"

    If image has been killed see #set_kill, set an error message, clear the kill flag and return true.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1216,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1216"},"def":{"name":"killed?","visibility":"Public","body":"if Vips.at_least_libvips?(8, 8)\nelse\n return false\nend\nLibVips.vips_image_iskilled(self)\n"}},{"html_id":"lab2labq-instance-method","name":"lab2labq","doc":"Transform float lab to labq coding\n\n```\n# out_ = in.lab2labq()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform float lab to labq coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4396,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4396"},"def":{"name":"lab2labq","visibility":"Public","body":"((self.call(\"lab2labq\")).as(Type)).as_image"}},{"html_id":"lab2labs-instance-method","name":"lab2labs","doc":"Transform float lab to signed short\n\n```\n# out_ = in.lab2labs()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform float lab to signed short

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4411,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4411"},"def":{"name":"lab2labs","visibility":"Public","body":"((self.call(\"lab2labs\")).as(Type)).as_image"}},{"html_id":"lab2lch-instance-method","name":"lab2lch","doc":"Transform lab to lch\n\n```\n# out_ = in.lab2lch()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lab to lch

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4426,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4426"},"def":{"name":"lab2lch","visibility":"Public","body":"((self.call(\"lab2lch\")).as(Type)).as_image"}},{"html_id":"lab2xyz(**kwargs)-instance-method","name":"lab2xyz","doc":"Transform cielab to xyz\n\n```\n# out_ = in.lab2xyz({temp: Array(Float64)})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*temp* : Array(Float64) - Color temperature\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform cielab to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4448,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4448"},"def":{"name":"lab2xyz","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"lab2xyz\", options)).as(Type)).as_image\n"}},{"html_id":"labelregions-instance-method","name":"labelregions","doc":"Label regions in an image\n\n```\n# mask, segments = in.labelregions()\n```\n\n\n**Returns**\n\nMask of region labels\n\n_Optionals_\n\n*segments* : Int32? - Number of discrete contiguous regions\n","summary":"

    Label regions in an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4469,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4469"},"def":{"name":"labelregions","visibility":"Public","body":"optional_output = Optional.new(**{segments: true})\nresults = (self.call(\"labelregions\", optional_output)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nsegments = ((o = opts) && (val = o[\"segments\"]?)) ? val.as_i32 : nil\n{final_result, segments}\n"}},{"html_id":"labq2lab-instance-method","name":"labq2lab","doc":"Unpack a labq image to float lab\n\n```\n# out_ = in.labq2lab()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpack a labq image to float lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4492,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4492"},"def":{"name":"labq2lab","visibility":"Public","body":"((self.call(\"labq2lab\")).as(Type)).as_image"}},{"html_id":"labq2labs-instance-method","name":"labq2labs","doc":"Unpack a labq image to short lab\n\n```\n# out_ = in.labq2labs()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpack a labq image to short lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4507,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4507"},"def":{"name":"labq2labs","visibility":"Public","body":"((self.call(\"labq2labs\")).as(Type)).as_image"}},{"html_id":"labq2srgb-instance-method","name":"labq2srgb","doc":"Convert a labq image to srgb\n\n```\n# out_ = in.labq2srgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert a labq image to srgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4522,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4522"},"def":{"name":"labq2srgb","visibility":"Public","body":"((self.call(\"labq2srgb\")).as(Type)).as_image"}},{"html_id":"labs2lab-instance-method","name":"labs2lab","doc":"Transform signed short lab to float\n\n```\n# out_ = in.labs2lab()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform signed short lab to float

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4537,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4537"},"def":{"name":"labs2lab","visibility":"Public","body":"((self.call(\"labs2lab\")).as(Type)).as_image"}},{"html_id":"labs2labq-instance-method","name":"labs2labq","doc":"Transform short lab to labq coding\n\n```\n# out_ = in.labs2labq()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform short lab to labq coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4552,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4552"},"def":{"name":"labs2labq","visibility":"Public","body":"((self.call(\"labs2labq\")).as(Type)).as_image"}},{"html_id":"lch2cmc-instance-method","name":"lch2cmc","doc":"Transform lch to cmc\n\n```\n# out_ = in.lch2cmc()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lch to cmc

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4567,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4567"},"def":{"name":"lch2cmc","visibility":"Public","body":"((self.call(\"lch2cmc\")).as(Type)).as_image"}},{"html_id":"lch2lab-instance-method","name":"lch2lab","doc":"Transform lch to lab\n\n```\n# out_ = in.lch2lab()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lch to lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4582,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4582"},"def":{"name":"lch2lab","visibility":"Public","body":"((self.call(\"lch2lab\")).as(Type)).as_image"}},{"html_id":"linear(a:Array(Float64),b:Array(Float64),**kwargs)-instance-method","name":"linear","doc":"Calculate (a * in + b)\n\n```\n# out_ = in.linear(a, b, {uchar: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*a* : Array(Float64) - Multiply by this\n\n*b* : Array(Float64) - Add this\n\n_Optionals_\n\n*uchar* : Bool - Output should be uchar\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate (a * in + b)

    ","abstract":false,"args":[{"name":"a","external_name":"a","restriction":"Array(Float64)"},{"name":"b","external_name":"b","restriction":"Array(Float64)"}],"args_string":"(a : Array(Float64), b : Array(Float64), **kwargs)","args_html":"(a : Array(Float64), b : Array(Float64), **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4610,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4610"},"def":{"name":"linear","args":[{"name":"a","external_name":"a","restriction":"Array(Float64)"},{"name":"b","external_name":"b","restriction":"Array(Float64)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"linear\", options, a, b)).as(Type)).as_image\n"}},{"html_id":"linecache(**kwargs)-instance-method","name":"linecache","doc":"Cache an image as a set of lines\n\n```\n# out_ = in.linecache({tile_height: Int32, access: Enums::Access, threaded: Bool, persistent: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_height* : Int32 - Tile height in pixels\n\n*access* : Enums::Access - Expected access pattern\n\n*threaded* : Bool - Allow threaded access\n\n*persistent* : Bool - Keep cache between evaluations\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cache an image as a set of lines

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4640,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4640"},"def":{"name":"linecache","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"linecache\", options)).as(Type)).as_image\n"}},{"html_id":"log:Image-instance-method","name":"log","doc":"Return the natural log of an image","summary":"

    Return the natural log of an image

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":933,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L933"},"def":{"name":"log","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Log)"}},{"html_id":"log10:Image-instance-method","name":"log10","doc":"Return the log base 10 of an image","summary":"

    Return the log base 10 of an image

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":938,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L938"},"def":{"name":"log10","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Log10)"}},{"html_id":"magicksave(filename:String,**kwargs)-instance-method","name":"magicksave","doc":"Save file with imagemagick\n\n```\nin.magicksave(filename, {format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save file with imagemagick

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4808,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4808"},"def":{"name":"magicksave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"magicksave\", options, filename)\n"}},{"html_id":"magicksave_bmp(filename:String,**kwargs)-instance-method","name":"magicksave_bmp","doc":"Save bmp image with imagemagick\n\n```\nin.magicksave_bmp(filename, {format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save bmp image with imagemagick

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4845,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4845"},"def":{"name":"magicksave_bmp","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"magicksave_bmp\", options, filename)\n"}},{"html_id":"magicksave_bmp_buffer(**kwargs)-instance-method","name":"magicksave_bmp_buffer","doc":"Save bmp image to magick buffer\n\n```\n# buffer = in.magicksave_bmp_buffer({format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save bmp image to magick buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4882,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4882"},"def":{"name":"magicksave_bmp_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"magicksave_bmp_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"magicksave_buffer(**kwargs)-instance-method","name":"magicksave_buffer","doc":"Save image to magick buffer\n\n```\n# buffer = in.magicksave_buffer({format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to magick buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4920,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4920"},"def":{"name":"magicksave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"magicksave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"mapim(index:Image,**kwargs)-instance-method","name":"mapim","doc":"Resample with a map image\n\n```\n# out_ = in.mapim(index, {interpolate: Interpolate, background: Array(Float64), premultiplied: Bool, extend: Enums::Extend})\n```\n\n\nInput Parameters\n\n**Required**\n\n*index* : Image - Index pixels with this\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*background* : Array(Float64) - Background value\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Resample with a map image

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Image"}],"args_string":"(index : Image, **kwargs)","args_html":"(index : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4954,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4954"},"def":{"name":"mapim","args":[{"name":"index","external_name":"index","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"mapim\", options, index)).as(Type)).as_image\n"}},{"html_id":"maplut(lut:Image,**kwargs)-instance-method","name":"maplut","doc":"Map an image though a lut\n\n```\n# out_ = in.maplut(lut, {band: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*lut* : Image - Look-up table image\n\n_Optionals_\n\n*band* : Int32 - Apply one-band lut to this band of in\n\n\n**Returns**\n\nOutput image\n","summary":"

    Map an image though a lut

    ","abstract":false,"args":[{"name":"lut","external_name":"lut","restriction":"Image"}],"args_string":"(lut : Image, **kwargs)","args_html":"(lut : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4982,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L4982"},"def":{"name":"maplut","args":[{"name":"lut","external_name":"lut","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"maplut\", options, lut)).as(Type)).as_image\n"}},{"html_id":"match(sec:Image,xr1:Int32,yr1:Int32,xs1:Int32,ys1:Int32,xr2:Int32,yr2:Int32,xs2:Int32,ys2:Int32,**kwargs)-instance-method","name":"match","doc":"First-order match of two images\n\n```\n# out_ = ref.match(sec, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, {hwindow: Int32, harea: Int32, search: Bool, interpolate: Interpolate})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*xr1* : Int32 - Position of first reference tie-point\n\n*yr1* : Int32 - Position of first reference tie-point\n\n*xs1* : Int32 - Position of first secondary tie-point\n\n*ys1* : Int32 - Position of first secondary tie-point\n\n*xr2* : Int32 - Position of second reference tie-point\n\n*yr2* : Int32 - Position of second reference tie-point\n\n*xs2* : Int32 - Position of second secondary tie-point\n\n*ys2* : Int32 - Position of second secondary tie-point\n\n_Optionals_\n\n*hwindow* : Int32 - Half window size\n\n*harea* : Int32 - Half area size\n\n*search* : Bool - Search to improve tie-points\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n\n**Returns**\n\nOutput image\n","summary":"

    First-order match of two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"args_string":"(sec : Image, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","args_html":"(sec : Image, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5448,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5448"},"def":{"name":"match","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"match\", options, sec, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2)).as(Type)).as_image\n"}},{"html_id":"math(math:Enums::OperationMath)-instance-method","name":"math","doc":"Apply a math operation to an image\n\n```\n# out_ = in.math(math)\n```\n\n\nInput Parameters\n\n**Required**\n\n*math* : Enums::OperationMath - Math to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Apply a math operation to an image

    ","abstract":false,"args":[{"name":"math","external_name":"math","restriction":"Enums::OperationMath"}],"args_string":"(math : Enums::OperationMath)","args_html":"(math : Enums::OperationMath)","location":{"filename":"src/vips/ext/image.cr","line_number":5472,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5472"},"def":{"name":"math","args":[{"name":"math","external_name":"math","restriction":"Enums::OperationMath"}],"visibility":"Public","body":"((self.call(\"math\", math)).as(Type)).as_image"}},{"html_id":"math2(right:Image,math2:Enums::OperationMath2)-instance-method","name":"math2","doc":"Binary math operations\n\n```\n# out_ = left.math2(right, math2)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*math2* : Enums::OperationMath2 - Math to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Binary math operations

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"}],"args_string":"(right : Image, math2 : Enums::OperationMath2)","args_html":"(right : Image, math2 : Enums::OperationMath2)","location":{"filename":"src/vips/ext/image.cr","line_number":5496,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5496"},"def":{"name":"math2","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"}],"visibility":"Public","body":"((self.call(\"math2\", right, math2)).as(Type)).as_image"}},{"html_id":"math2_const(math2:Enums::OperationMath2,c:Array(Float64))-instance-method","name":"math2_const","doc":"Binary math operations with a constant\n\n```\n# out_ = in.math2_const(math2, c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*math2* : Enums::OperationMath2 - Math to perform\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Binary math operations with a constant

    ","abstract":false,"args":[{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(math2 : Enums::OperationMath2, c : Array(Float64))","args_html":"(math2 : Enums::OperationMath2, c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":5520,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5520"},"def":{"name":"math2_const","args":[{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"math2_const\", math2, c)).as(Type)).as_image"}},{"html_id":"matrixinvert-instance-method","name":"matrixinvert","doc":"Invert an matrix\n\n```\n# out_ = in.matrixinvert()\n```\n\n\n**Returns**\n\nOutput matrix\n","summary":"

    Invert an matrix

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5578,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5578"},"def":{"name":"matrixinvert","visibility":"Public","body":"((self.call(\"matrixinvert\")).as(Type)).as_image"}},{"html_id":"matrixprint(**kwargs)-instance-method","name":"matrixprint","doc":"Print matrix\n\n```\nin.matrixprint({strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Print matrix

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5716,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5716"},"def":{"name":"matrixprint","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"matrixprint\", options)\n"}},{"html_id":"matrixsave(filename:String,**kwargs)-instance-method","name":"matrixsave","doc":"Save image to matrix\n\n```\nin.matrixsave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to matrix

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5743,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5743"},"def":{"name":"matrixsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"matrixsave\", options, filename)\n"}},{"html_id":"matrixsave_stream(stream:IO,**kwargs)-instance-method","name":"matrixsave_stream","doc":"Save image to matrix\n\n```\nin.matrixsave_stream(stream, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to matrix

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5794,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5794"},"def":{"name":"matrixsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nmatrixsave_target(target, **kwargs)\n"}},{"html_id":"matrixsave_target(target:Target,**kwargs)-instance-method","name":"matrixsave_target","doc":"Save image to matrix\n\n```\nin.matrixsave_target(target, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to matrix

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5770,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5770"},"def":{"name":"matrixsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"matrixsave_target\", options, target)\n"}},{"html_id":"max(**kwargs)-instance-method","name":"max","doc":"Find image maximum\n\n```\n# out_, x, y, out_array, x_array, y_array = in.max({size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*size* : Int32 - Number of maximum values to find\n\n\n**Returns**\n\nOutput value\n\n_Optionals_\n\n*x* : Int32? - Horizontal position of maximum\n\n*y* : Int32? - Vertical position of maximum\n\n*out_array* : Array(Float64)? - Array of output values\n\n*x_array* : Array(Int32)? - Array of horizontal positions\n\n*y_array* : Array(Int32)? - Array of vertical positions\n","summary":"

    Find image maximum

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5829,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5829"},"def":{"name":"max","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"x\"] = true\noptions[\"y\"] = true\noptions[\"out_array\"] = true\noptions[\"x_array\"] = true\noptions[\"y_array\"] = true\nresults = (self.call(\"max\", options)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_f64\nopts = results[1]?.try(&.as_h)\nx = ((o = opts) && (val = o[\"x\"]?)) ? val.as_i32 : nil\ny = ((o = opts) && (val = o[\"y\"]?)) ? val.as_i32 : nil\nout_array = ((o = opts) && (val = o[\"out_array\"]?)) ? val.as_a64 : nil\nx_array = ((o = opts) && (val = o[\"x_array\"]?)) ? val.as_a32 : nil\ny_array = ((o = opts) && (val = o[\"y_array\"]?)) ? val.as_a32 : nil\n{final_result, x, y, out_array, x_array, y_array}\n"}},{"html_id":"maxpos-instance-method","name":"maxpos","doc":"Return the coordinates of the image maximum.","summary":"

    Return the coordinates of the image maximum.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":836,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L836"},"def":{"name":"maxpos","visibility":"Public","body":"v, x, y, _, _, _ = self.max\n{v, x.try(&.to_f) || 0_f64, y.try(&.to_f) || 0_f64}\n"}},{"html_id":"measure(h:Int32,v:Int32,**kwargs)-instance-method","name":"measure","doc":"Measure a set of patches on a color chart\n\n```\n# out_ = in.measure(h, v, {left: Int32, top: Int32, width: Int32, height: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*h* : Int32 - Number of patches across chart\n\n*v* : Int32 - Number of patches down chart\n\n_Optionals_\n\n*left* : Int32 - Left edge of extract area\n\n*top* : Int32 - Top edge of extract area\n\n*width* : Int32 - Width of extract area\n\n*height* : Int32 - Height of extract area\n\n\n**Returns**\n\nOutput array of statistics\n","summary":"

    Measure a set of patches on a color chart

    ","abstract":false,"args":[{"name":"h","external_name":"h","restriction":"Int32"},{"name":"v","external_name":"v","restriction":"Int32"}],"args_string":"(h : Int32, v : Int32, **kwargs)","args_html":"(h : Int32, v : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5880,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5880"},"def":{"name":"measure","args":[{"name":"h","external_name":"h","restriction":"Int32"},{"name":"v","external_name":"v","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"measure\", options, h, v)).as(Type)).as_image\n"}},{"html_id":"median(size=3)-instance-method","name":"median","doc":"size x size median filter.","summary":"

    size x size median filter.

    ","abstract":false,"args":[{"name":"size","default_value":"3","external_name":"size","restriction":""}],"args_string":"(size = 3)","args_html":"(size = 3)","location":{"filename":"src/vips/image.cr","line_number":988,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L988"},"def":{"name":"median","args":[{"name":"size","default_value":"3","external_name":"size","restriction":""}],"visibility":"Public","body":"rank(size, size, (size * size) // 2)"}},{"html_id":"merge(sec:Image,direction:Enums::Direction,dx:Int32,dy:Int32,**kwargs)-instance-method","name":"merge","doc":"Merge two images\n\n```\n# out_ = ref.merge(sec, direction, dx, dy, {mblend: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*direction* : Enums::Direction - Horizontal or vertical merge\n\n*dx* : Int32 - Horizontal displacement from sec to ref\n\n*dy* : Int32 - Vertical displacement from sec to ref\n\n_Optionals_\n\n*mblend* : Int32 - Maximum blend size\n\n\n**Returns**\n\nOutput image\n","summary":"

    Merge two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"dx","external_name":"dx","restriction":"Int32"},{"name":"dy","external_name":"dy","restriction":"Int32"}],"args_string":"(sec : Image, direction : Enums::Direction, dx : Int32, dy : Int32, **kwargs)","args_html":"(sec : Image, direction : Enums::Direction, dx : Int32, dy : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5914,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5914"},"def":{"name":"merge","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"dx","external_name":"dx","restriction":"Int32"},{"name":"dy","external_name":"dy","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"merge\", options, sec, direction, dx, dy)).as(Type)).as_image\n"}},{"html_id":"min(**kwargs)-instance-method","name":"min","doc":"Find image minimum\n\n```\n# out_, x, y, out_array, x_array, y_array = in.min({size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*size* : Int32 - Number of minimum values to find\n\n\n**Returns**\n\nOutput value\n\n_Optionals_\n\n*x* : Int32? - Horizontal position of minimum\n\n*y* : Int32? - Vertical position of minimum\n\n*out_array* : Array(Float64)? - Array of output values\n\n*x_array* : Array(Int32)? - Array of horizontal positions\n\n*y_array* : Array(Int32)? - Array of vertical positions\n","summary":"

    Find image minimum

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5950,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5950"},"def":{"name":"min","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"x\"] = true\noptions[\"y\"] = true\noptions[\"out_array\"] = true\noptions[\"x_array\"] = true\noptions[\"y_array\"] = true\nresults = (self.call(\"min\", options)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_f64\nopts = results[1]?.try(&.as_h)\nx = ((o = opts) && (val = o[\"x\"]?)) ? val.as_i32 : nil\ny = ((o = opts) && (val = o[\"y\"]?)) ? val.as_i32 : nil\nout_array = ((o = opts) && (val = o[\"out_array\"]?)) ? val.as_a64 : nil\nx_array = ((o = opts) && (val = o[\"x_array\"]?)) ? val.as_a32 : nil\ny_array = ((o = opts) && (val = o[\"y_array\"]?)) ? val.as_a32 : nil\n{final_result, x, y, out_array, x_array, y_array}\n"}},{"html_id":"minpos-instance-method","name":"minpos","doc":"Return the coordinates of the image minimum.","summary":"

    Return the coordinates of the image minimum.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":842,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L842"},"def":{"name":"minpos","visibility":"Public","body":"v, x, y, _, _, _ = self.min\n{v, x.try(&.to_f) || 0_f64, y.try(&.to_f) || 0_f64}\n"}},{"html_id":"morph(mask:Image,morph:Enums::OperationMorphology)-instance-method","name":"morph","doc":"Morphology operation\n\n```\n# out_ = in.morph(mask, morph)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n*morph* : Enums::OperationMorphology - Morphological operation to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Morphology operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"morph","external_name":"morph","restriction":"Enums::OperationMorphology"}],"args_string":"(mask : Image, morph : Enums::OperationMorphology)","args_html":"(mask : Image, morph : Enums::OperationMorphology)","location":{"filename":"src/vips/ext/image.cr","line_number":5991,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L5991"},"def":{"name":"morph","args":[{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"morph","external_name":"morph","restriction":"Enums::OperationMorphology"}],"visibility":"Public","body":"((self.call(\"morph\", mask, morph)).as(Type)).as_image"}},{"html_id":"mosaic(sec:Image,direction:Enums::Direction,xref:Int32,yref:Int32,xsec:Int32,ysec:Int32,**kwargs)-instance-method","name":"mosaic","doc":"Mosaic two images\n\n```\n# out_, dx0, dy0, scale1, angle1, dy1, dx1 = ref.mosaic(sec, direction, xref, yref, xsec, ysec, {hwindow: Int32, harea: Int32, mblend: Int32, bandno: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*direction* : Enums::Direction - Horizontal or vertical mosaic\n\n*xref* : Int32 - Position of reference tie-point\n\n*yref* : Int32 - Position of reference tie-point\n\n*xsec* : Int32 - Position of secondary tie-point\n\n*ysec* : Int32 - Position of secondary tie-point\n\n_Optionals_\n\n*hwindow* : Int32 - Half window size\n\n*harea* : Int32 - Half area size\n\n*mblend* : Int32 - Maximum blend size\n\n*bandno* : Int32 - Band to search for features on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*dx0* : Int32? - Detected integer offset\n\n*dy0* : Int32? - Detected integer offset\n\n*scale1* : Float64? - Detected scale\n\n*angle1* : Float64? - Detected rotation\n\n*dy1* : Float64? - Detected first-order displacement\n\n*dx1* : Float64? - Detected first-order displacement\n","summary":"

    Mosaic two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xref","external_name":"xref","restriction":"Int32"},{"name":"yref","external_name":"yref","restriction":"Int32"},{"name":"xsec","external_name":"xsec","restriction":"Int32"},{"name":"ysec","external_name":"ysec","restriction":"Int32"}],"args_string":"(sec : Image, direction : Enums::Direction, xref : Int32, yref : Int32, xsec : Int32, ysec : Int32, **kwargs)","args_html":"(sec : Image, direction : Enums::Direction, xref : Int32, yref : Int32, xsec : Int32, ysec : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6047,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6047"},"def":{"name":"mosaic","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xref","external_name":"xref","restriction":"Int32"},{"name":"yref","external_name":"yref","restriction":"Int32"},{"name":"xsec","external_name":"xsec","restriction":"Int32"},{"name":"ysec","external_name":"ysec","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"dx0\"] = true\noptions[\"dy0\"] = true\noptions[\"scale1\"] = true\noptions[\"angle1\"] = true\noptions[\"dy1\"] = true\noptions[\"dx1\"] = true\nresults = (self.call(\"mosaic\", options, sec, direction, xref, yref, xsec, ysec)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\ndx0 = ((o = opts) && (val = o[\"dx0\"]?)) ? val.as_i32 : nil\ndy0 = ((o = opts) && (val = o[\"dy0\"]?)) ? val.as_i32 : nil\nscale1 = ((o = opts) && (val = o[\"scale1\"]?)) ? val.as_f64 : nil\nangle1 = ((o = opts) && (val = o[\"angle1\"]?)) ? val.as_f64 : nil\ndy1 = ((o = opts) && (val = o[\"dy1\"]?)) ? val.as_f64 : nil\ndx1 = ((o = opts) && (val = o[\"dx1\"]?)) ? val.as_f64 : nil\n{final_result, dx0, dy0, scale1, angle1, dy1, dx1}\n"}},{"html_id":"mosaic1(sec:Image,direction:Enums::Direction,xr1:Int32,yr1:Int32,xs1:Int32,ys1:Int32,xr2:Int32,yr2:Int32,xs2:Int32,ys2:Int32,**kwargs)-instance-method","name":"mosaic1","doc":"First-order mosaic of two images\n\n```\n# out_ = ref.mosaic1(sec, direction, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, {hwindow: Int32, harea: Int32, search: Bool, interpolate: Interpolate, mblend: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*direction* : Enums::Direction - Horizontal or vertical mosaic\n\n*xr1* : Int32 - Position of first reference tie-point\n\n*yr1* : Int32 - Position of first reference tie-point\n\n*xs1* : Int32 - Position of first secondary tie-point\n\n*ys1* : Int32 - Position of first secondary tie-point\n\n*xr2* : Int32 - Position of second reference tie-point\n\n*yr2* : Int32 - Position of second reference tie-point\n\n*xs2* : Int32 - Position of second secondary tie-point\n\n*ys2* : Int32 - Position of second secondary tie-point\n\n_Optionals_\n\n*hwindow* : Int32 - Half window size\n\n*harea* : Int32 - Half area size\n\n*search* : Bool - Search to improve tie-points\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*mblend* : Int32 - Maximum blend size\n\n\n**Returns**\n\nOutput image\n","summary":"

    First-order mosaic of two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"args_string":"(sec : Image, direction : Enums::Direction, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","args_html":"(sec : Image, direction : Enums::Direction, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6118,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6118"},"def":{"name":"mosaic1","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"mosaic1\", options, sec, direction, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2)).as(Type)).as_image\n"}},{"html_id":"msb(**kwargs)-instance-method","name":"msb","doc":"Pick most-significant byte from an image\n\n```\n# out_ = in.msb({band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*band* : Int32 - Band to msb\n\n\n**Returns**\n\nOutput image\n","summary":"

    Pick most-significant byte from an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":6142,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6142"},"def":{"name":"msb","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"msb\", options)).as(Type)).as_image\n"}},{"html_id":"multiply(right:Image)-instance-method","name":"multiply","doc":"Multiply two images\n\n```\n# out_ = left.multiply(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Multiply two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":6166,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6166"},"def":{"name":"multiply","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"multiply\", right)).as(Type)).as_image"}},{"html_id":"mutate(&)-instance-method","name":"mutate","doc":"Mutate an image with a block. Inside the block, you can call methods\nwhich modify the image, such as setting or removing metadata, or\nmodifying pixels.\n\nFor example:\n\n```\nimage = image.mutate do |x|\n (0..1).step 0.01 do |i|\n x.draw_line([255.0], (x.width * i).to_i, 0, 0, (x.height * (1 - i)).to_i)\n end\nend\n```\n\nSee `MutableImage`.","summary":"

    Mutate an image with a block.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":637,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L637"},"def":{"name":"mutate","yields":1,"block_arity":1,"visibility":"Public","body":"mutable = MutableImage.new(self)\nyield mutable\nmutable.image\n"}},{"html_id":"new_from_image(value)-instance-method","name":"new_from_image","doc":"A new image is created with the same width, height, format,\ninterpretation, resolution and offset as self, but with every pixel\nset to the specified value.\n\nYou can pass an array to make a many-band image, or a single value to\nmake a one-band image.","summary":"

    A new image is created with the same width, height, format, interpretation, resolution and offset as self, but with every pixel set to the specified value.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""}],"args_string":"(value)","args_html":"(value)","location":{"filename":"src/vips/image.cr","line_number":391,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L391"},"def":{"name":"new_from_image","args":[{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"pixel = ((Image.black(1, 1)) + value).cast(format)\nimage = pixel.embed(0, 0, width, height, extend: Enums::Extend::Copy)\nimage.copy(interpretation: interpretation, xres: xres, yres: yres, xoffset: xoffset, yoffset: yoffset)\n"}},{"html_id":"new_from_image(*value:Int32|Float64)-instance-method","name":"new_from_image","doc":"A new image is created with the same width, height, format,\ninterpretation, resolution and offset as self, but with every pixel\nset to the specified value.\n\nYou can pass an array to make a many-band image, or a single value to\nmake a one-band image.","summary":"

    A new image is created with the same width, height, format, interpretation, resolution and offset as self, but with every pixel set to the specified value.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(*value : Int32 | Float64)","args_html":"(*value : Int32 | Float64)","location":{"filename":"src/vips/image.cr","line_number":377,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L377"},"def":{"name":"new_from_image","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"splat_index":0,"visibility":"Public","body":"dblarr = Array(Float64).new(value.size) do |i|\n (value.at(i)).to_f\nend\npixel = ((Image.black(1, 1)) + dblarr).cast(format)\nimage = pixel.embed(0, 0, width, height, extend: Enums::Extend::Copy)\nimage.copy(interpretation: interpretation, xres: xres, yres: yres, xoffset: xoffset, yoffset: yoffset)\n"}},{"html_id":"offset-instance-method","name":"offset","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1051,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1051"},"def":{"name":"offset","visibility":"Public","body":"(get(\"offset\")).as_f64"}},{"html_id":"page_height:Int32-instance-method","name":"page_height","doc":"Multi-page images can have a page height.\nIf page-height is not set, it defaults to the image height.\nNote: At least libvips 8.8 is needed.","summary":"

    Multi-page images can have a page height.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1261,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1261"},"def":{"name":"page_height","return_type":"Int32","visibility":"Public","body":"LibVips.vips_image_get_page_height(self)"}},{"html_id":"pbmsave_stream(stream:IO,**kwargs)-instance-method","name":"pbmsave_stream","doc":"Save image in pbm format\n\n```\nin.pbmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pbm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6417,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6417"},"def":{"name":"pbmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npbmsave_target(target, **kwargs)\n"}},{"html_id":"pbmsave_target(target:Target,**kwargs)-instance-method","name":"pbmsave_target","doc":"Save image in pbm format\n\n```\nin.pbmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pbm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6387,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6387"},"def":{"name":"pbmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pbmsave_target\", options, target)\n"}},{"html_id":"percent(percent:Float64)-instance-method","name":"percent","doc":"Find threshold for percent of pixels\n\n```\n# threshold = in.percent(percent)\n```\n\n\nInput Parameters\n\n**Required**\n\n*percent* : Float64 - Percent of pixels\n\n\n**Returns**\n\nThreshold above which lie percent of pixels\n","summary":"

    Find threshold for percent of pixels

    ","abstract":false,"args":[{"name":"percent","external_name":"percent","restriction":"Float64"}],"args_string":"(percent : Float64)","args_html":"(percent : Float64)","location":{"filename":"src/vips/ext/image.cr","line_number":6647,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6647"},"def":{"name":"percent","args":[{"name":"percent","external_name":"percent","restriction":"Float64"}],"visibility":"Public","body":"((self.call(\"percent\", percent)).as(Type)).as_i32"}},{"html_id":"pfmsave_stream(stream:IO,**kwargs)-instance-method","name":"pfmsave_stream","doc":"Save image in pfm format\n\n```\nin.pfmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pfm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6743,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6743"},"def":{"name":"pfmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npfmsave_target(target, **kwargs)\n"}},{"html_id":"pfmsave_target(target:Target,**kwargs)-instance-method","name":"pfmsave_target","doc":"Save image in pfm format\n\n```\nin.pfmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pfm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6713,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6713"},"def":{"name":"pfmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pfmsave_target\", options, target)\n"}},{"html_id":"pgmsave_stream(stream:IO,**kwargs)-instance-method","name":"pgmsave_stream","doc":"Save image in pgm format\n\n```\nin.pgmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pgm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6806,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6806"},"def":{"name":"pgmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npgmsave_target(target, **kwargs)\n"}},{"html_id":"pgmsave_target(target:Target,**kwargs)-instance-method","name":"pgmsave_target","doc":"Save image in pgm format\n\n```\nin.pgmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pgm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6776,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6776"},"def":{"name":"pgmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pgmsave_target\", options, target)\n"}},{"html_id":"phasecor(in2:Image)-instance-method","name":"phasecor","doc":"Calculate phase correlation\n\n```\n# out_ = in.phasecor(in2)\n```\n\n\nInput Parameters\n\n**Required**\n\n*in2* : Image - Second input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate phase correlation

    ","abstract":false,"args":[{"name":"in2","external_name":"in2","restriction":"Image"}],"args_string":"(in2 : Image)","args_html":"(in2 : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":6829,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L6829"},"def":{"name":"phasecor","args":[{"name":"in2","external_name":"in2","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"phasecor\", in2)).as(Type)).as_image"}},{"html_id":"pngsave(filename:String,**kwargs)-instance-method","name":"pngsave","doc":"Save image to file as png\n\n```\nin.pngsave(filename, {compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to file as png

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7040,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7040"},"def":{"name":"pngsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pngsave\", options, filename)\n"}},{"html_id":"pngsave_buffer(**kwargs)-instance-method","name":"pngsave_buffer","doc":"Save image to buffer as png\n\n```\n# buffer = in.pngsave_buffer({compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to buffer as png

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7085,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7085"},"def":{"name":"pngsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"pngsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"pngsave_stream(stream:IO,**kwargs)-instance-method","name":"pngsave_stream","doc":"Save image to stream as png\n\n```\nin.pngsave_stream(stream, {compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to stream as png

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7173,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7173"},"def":{"name":"pngsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npngsave_target(target, **kwargs)\n"}},{"html_id":"pngsave_target(target:Target,**kwargs)-instance-method","name":"pngsave_target","doc":"Save image to target as png\n\n```\nin.pngsave_target(target, {compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to target as png

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7131,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7131"},"def":{"name":"pngsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pngsave_target\", options, target)\n"}},{"html_id":"pnmsave_stream(stream:IO,**kwargs)-instance-method","name":"pnmsave_stream","doc":"Save image in pnm format\n\n```\nin.pnmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pnm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7236,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7236"},"def":{"name":"pnmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npnmsave_target(target, **kwargs)\n"}},{"html_id":"pnmsave_target(target:Target,**kwargs)-instance-method","name":"pnmsave_target","doc":"Save image in pnm format\n\n```\nin.pnmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pnm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7206,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7206"},"def":{"name":"pnmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pnmsave_target\", options, target)\n"}},{"html_id":"polar:Image-instance-method","name":"polar","doc":"Return an image converted to polar coordinates.","summary":"

    Return an image converted to polar coordinates.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":858,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L858"},"def":{"name":"polar","return_type":"Image","visibility":"Public","body":"Image.run_cmplx(self) do |x|\n x.complex(Enums::OperationComplex::Polar)\nend"}},{"html_id":"ppmsave(filename:String,**kwargs)-instance-method","name":"ppmsave","doc":"Save image to ppm file\n\n```\nin.ppmsave(filename, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to ppm file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7385,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7385"},"def":{"name":"ppmsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"ppmsave\", options, filename)\n"}},{"html_id":"ppmsave_stream(stream:IO,**kwargs)-instance-method","name":"ppmsave_stream","doc":"Save to ppm\n\n```\nin.ppmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save to ppm

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7448,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7448"},"def":{"name":"ppmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nppmsave_target(target, **kwargs)\n"}},{"html_id":"ppmsave_target(target:Target,**kwargs)-instance-method","name":"ppmsave_target","doc":"Save to ppm\n\n```\nin.ppmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save to ppm

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7418,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7418"},"def":{"name":"ppmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"ppmsave_target\", options, target)\n"}},{"html_id":"premultiply(**kwargs)-instance-method","name":"premultiply","doc":"Premultiply image alpha\n\n```\n# out_ = in.premultiply({max_alpha: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*max_alpha* : Float64 - Maximum value of alpha channel\n\n\n**Returns**\n\nOutput image\n","summary":"

    Premultiply image alpha

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7471,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7471"},"def":{"name":"premultiply","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"premultiply\", options)).as(Type)).as_image\n"}},{"html_id":"profile-instance-method","name":"profile","doc":"Find image profiles\n\n```\n# output = in.profile()\n```\n\n\n**Returns**\n\nFirst non-zero pixel in column\n\nFirst non-zero pixel in row\n","summary":"

    Find image profiles

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7490,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7490"},"def":{"name":"profile","visibility":"Public","body":"results = (self.call(\"profile\")).as(Array(Type))\n{results[0].as_image, results[1].as_image}\n"}},{"html_id":"project-instance-method","name":"project","doc":"Find image projections\n\n```\n# output = in.project()\n```\n\n\n**Returns**\n\nSums of columns\n\nSums of rows\n","summary":"

    Find image projections

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7531,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7531"},"def":{"name":"project","visibility":"Public","body":"results = (self.call(\"project\")).as(Array(Type))\n{results[0].as_image, results[1].as_image}\n"}},{"html_id":"quadratic(coeff:Image,**kwargs)-instance-method","name":"quadratic","doc":"Resample an image with a quadratic transform\n\n```\n# out_ = in.quadratic(coeff, {interpolate: Interpolate})\n```\n\n\nInput Parameters\n\n**Required**\n\n*coeff* : Image - Coefficient matrix\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate values with this\n\n\n**Returns**\n\nOutput image\n","summary":"

    Resample an image with a quadratic transform

    ","abstract":false,"args":[{"name":"coeff","external_name":"coeff","restriction":"Image"}],"args_string":"(coeff : Image, **kwargs)","args_html":"(coeff : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7559,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7559"},"def":{"name":"quadratic","args":[{"name":"coeff","external_name":"coeff","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"quadratic\", options, coeff)).as(Type)).as_image\n"}},{"html_id":"rad2float-instance-method","name":"rad2float","doc":"Unpack radiance coding to float rgb\n\n```\n# out_ = in.rad2float()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpack radiance coding to float rgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7576,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7576"},"def":{"name":"rad2float","visibility":"Public","body":"((self.call(\"rad2float\")).as(Type)).as_image"}},{"html_id":"radsave(filename:String,**kwargs)-instance-method","name":"radsave","doc":"Save image to radiance file\n\n```\nin.radsave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to radiance file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7761,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7761"},"def":{"name":"radsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"radsave\", options, filename)\n"}},{"html_id":"radsave_buffer(**kwargs)-instance-method","name":"radsave_buffer","doc":"Save image to radiance buffer\n\n```\n# buffer = in.radsave_buffer({strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to radiance buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7788,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7788"},"def":{"name":"radsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"radsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"radsave_stream(stream:IO,**kwargs)-instance-method","name":"radsave_stream","doc":"Save image to radiance stream\n\n```\nin.radsave_stream(stream, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to radiance stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7840,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7840"},"def":{"name":"radsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nradsave_target(target, **kwargs)\n"}},{"html_id":"radsave_target(target:Target,**kwargs)-instance-method","name":"radsave_target","doc":"Save image to radiance target\n\n```\nin.radsave_target(target, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to radiance target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7816,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7816"},"def":{"name":"radsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"radsave_target\", options, target)\n"}},{"html_id":"rank(width:Int32,height:Int32,index:Int32)-instance-method","name":"rank","doc":"Rank filter\n\n```\n# out_ = in.rank(width, height, index)\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Window width in pixels\n\n*height* : Int32 - Window height in pixels\n\n*index* : Int32 - Select pixel at index\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rank filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, index : Int32)","args_html":"(width : Int32, height : Int32, index : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":7867,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7867"},"def":{"name":"rank","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"index","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"rank\", width, height, index)).as(Type)).as_image"}},{"html_id":"rawsave(filename:String,**kwargs)-instance-method","name":"rawsave","doc":"Save image to raw file\n\n```\nin.rawsave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to raw file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7948,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7948"},"def":{"name":"rawsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"rawsave\", options, filename)\n"}},{"html_id":"rawsave_fd(fd:Int32,**kwargs)-instance-method","name":"rawsave_fd","doc":"Write raw image to file descriptor\n\n```\nin.rawsave_fd(fd, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*fd* : Int32 - File descriptor to write to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Write raw image to file descriptor

    ","abstract":false,"args":[{"name":"fd","external_name":"fd","restriction":"Int32"}],"args_string":"(fd : Int32, **kwargs)","args_html":"(fd : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7975,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7975"},"def":{"name":"rawsave_fd","args":[{"name":"fd","external_name":"fd","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"rawsave_fd\", options, fd)\n"}},{"html_id":"real:Image-instance-method","name":"real","doc":"Return the real part of a complex image.","summary":"

    Return the real part of a complex image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":848,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L848"},"def":{"name":"real","return_type":"Image","visibility":"Public","body":"complexget(Enums::OperationComplexget::Real)"}},{"html_id":"recomb(m:Image)-instance-method","name":"recomb","doc":"Linear recombination with matrix\n\n```\n# out_ = in.recomb(m)\n```\n\n\nInput Parameters\n\n**Required**\n\n*m* : Image - Matrix of coefficients\n\n\n**Returns**\n\nOutput image\n","summary":"

    Linear recombination with matrix

    ","abstract":false,"args":[{"name":"m","external_name":"m","restriction":"Image"}],"args_string":"(m : Image)","args_html":"(m : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":7998,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L7998"},"def":{"name":"recomb","args":[{"name":"m","external_name":"m","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"recomb\", m)).as(Type)).as_image"}},{"html_id":"rect:Image-instance-method","name":"rect","doc":"Return an image converted to rectangular coordinates.","summary":"

    Return an image converted to rectangular coordinates.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":863,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L863"},"def":{"name":"rect","return_type":"Image","visibility":"Public","body":"Image.run_cmplx(self) do |x|\n x.complex(Enums::OperationComplex::Rect)\nend"}},{"html_id":"reduce(hshrink:Float64,vshrink:Float64,**kwargs)-instance-method","name":"reduce","doc":"Reduce an image\n\n```\n# out_ = in.reduce(hshrink, vshrink, {kernel: Enums::Kernel, gap: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Float64 - Horizontal shrink factor\n\n*vshrink* : Float64 - Vertical shrink factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n\n**Returns**\n\nOutput image\n","summary":"

    Reduce an image

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"args_string":"(hshrink : Float64, vshrink : Float64, **kwargs)","args_html":"(hshrink : Float64, vshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8028,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8028"},"def":{"name":"reduce","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"reduce\", options, hshrink, vshrink)).as(Type)).as_image\n"}},{"html_id":"reduceh(hshrink:Float64,**kwargs)-instance-method","name":"reduceh","doc":"Shrink an image horizontally\n\n```\n# out_ = in.reduceh(hshrink, {kernel: Enums::Kernel, gap: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Float64 - Horizontal shrink factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image horizontally

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"}],"args_string":"(hshrink : Float64, **kwargs)","args_html":"(hshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8058,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8058"},"def":{"name":"reduceh","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"reduceh\", options, hshrink)).as(Type)).as_image\n"}},{"html_id":"reducev(vshrink:Float64,**kwargs)-instance-method","name":"reducev","doc":"Shrink an image vertically\n\n```\n# out_ = in.reducev(vshrink, {kernel: Enums::Kernel, gap: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*vshrink* : Float64 - Vertical shrink factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image vertically

    ","abstract":false,"args":[{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"args_string":"(vshrink : Float64, **kwargs)","args_html":"(vshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8088,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8088"},"def":{"name":"reducev","args":[{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"reducev\", options, vshrink)).as(Type)).as_image\n"}},{"html_id":"relational(right:Image,relational:Enums::OperationRelational)-instance-method","name":"relational","doc":"Relational operation on two images\n\n```\n# out_ = left.relational(right, relational)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*relational* : Enums::OperationRelational - Relational to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Relational operation on two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"}],"args_string":"(right : Image, relational : Enums::OperationRelational)","args_html":"(right : Image, relational : Enums::OperationRelational)","location":{"filename":"src/vips/ext/image.cr","line_number":8114,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8114"},"def":{"name":"relational","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"}],"visibility":"Public","body":"((self.call(\"relational\", right, relational)).as(Type)).as_image"}},{"html_id":"relational_const(relational:Enums::OperationRelational,c:Array(Float64))-instance-method","name":"relational_const","doc":"Relational operations against a constant\n\n```\n# out_ = in.relational_const(relational, c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*relational* : Enums::OperationRelational - Relational to perform\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Relational operations against a constant

    ","abstract":false,"args":[{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(relational : Enums::OperationRelational, c : Array(Float64))","args_html":"(relational : Enums::OperationRelational, c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":8138,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8138"},"def":{"name":"relational_const","args":[{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"relational_const\", relational, c)).as(Type)).as_image"}},{"html_id":"remainder(right:Image)-instance-method","name":"remainder","doc":"Remainder after integer division of two images\n\n```\n# out_ = left.remainder(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Remainder after integer division of two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8160,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8160"},"def":{"name":"remainder","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"remainder\", right)).as(Type)).as_image"}},{"html_id":"remainder_const(c:Array(Float64))-instance-method","name":"remainder_const","doc":"Remainder after integer division of an image and a constant\n\n```\n# out_ = in.remainder_const(c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Remainder after integer division of an image and a constant

    ","abstract":false,"args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(c : Array(Float64))","args_html":"(c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":8182,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8182"},"def":{"name":"remainder_const","args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"remainder_const\", c)).as(Type)).as_image"}},{"html_id":"replicate(across:Int32,down:Int32)-instance-method","name":"replicate","doc":"Replicate an image\n\n```\n# out_ = in.replicate(across, down)\n```\n\n\nInput Parameters\n\n**Required**\n\n*across* : Int32 - Repeat this many times horizontally\n\n*down* : Int32 - Repeat this many times vertically\n\n\n**Returns**\n\nOutput image\n","summary":"

    Replicate an image

    ","abstract":false,"args":[{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"args_string":"(across : Int32, down : Int32)","args_html":"(across : Int32, down : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":8206,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8206"},"def":{"name":"replicate","args":[{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"replicate\", across, down)).as(Type)).as_image"}},{"html_id":"resize(scale:Float64,**kwargs)-instance-method","name":"resize","doc":"Resize an image\n\n```\n# out_ = in.resize(scale, {kernel: Enums::Kernel, gap: Float64, vscale: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*scale* : Float64 - Scale image by this factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n*vscale* : Float64 - Vertical scale image by this factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Resize an image

    ","abstract":false,"args":[{"name":"scale","external_name":"scale","restriction":"Float64"}],"args_string":"(scale : Float64, **kwargs)","args_html":"(scale : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8236,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8236"},"def":{"name":"resize","args":[{"name":"scale","external_name":"scale","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"resize\", options, scale)).as(Type)).as_image\n"}},{"html_id":"rint:Image-instance-method","name":"rint","doc":"Return the nearest integral value.","summary":"

    Return the nearest integral value.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1028,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1028"},"def":{"name":"rint","return_type":"Image","visibility":"Public","body":"((self.call(\"round\", Enums::OperationRound::Rint)).as(Type)).as_image"}},{"html_id":"rot(angle:Enums::Angle)-instance-method","name":"rot","doc":"Rotate an image\n\n```\n# out_ = in.rot(angle)\n```\n\n\nInput Parameters\n\n**Required**\n\n*angle* : Enums::Angle - Angle to rotate image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rotate an image

    ","abstract":false,"args":[{"name":"angle","external_name":"angle","restriction":"Enums::Angle"}],"args_string":"(angle : Enums::Angle)","args_html":"(angle : Enums::Angle)","location":{"filename":"src/vips/ext/image.cr","line_number":8260,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8260"},"def":{"name":"rot","args":[{"name":"angle","external_name":"angle","restriction":"Enums::Angle"}],"visibility":"Public","body":"((self.call(\"rot\", angle)).as(Type)).as_image"}},{"html_id":"rot180-instance-method","name":"rot180","doc":"Rotate 180 degrees clockwise.","summary":"

    Rotate 180 degrees clockwise.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1008,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1008"},"def":{"name":"rot180","visibility":"Public","body":"rot(Enums::Angle::D180)"}},{"html_id":"rot270-instance-method","name":"rot270","doc":"Rotate 270 degrees clockwise.","summary":"

    Rotate 270 degrees clockwise.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1013,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1013"},"def":{"name":"rot270","visibility":"Public","body":"rot(Enums::Angle::D270)"}},{"html_id":"rot45(**kwargs)-instance-method","name":"rot45","doc":"Rotate an image\n\n```\n# out_ = in.rot45({angle: Enums::Angle45})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*angle* : Enums::Angle45 - Angle to rotate image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rotate an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8282,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8282"},"def":{"name":"rot45","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"rot45\", options)).as(Type)).as_image\n"}},{"html_id":"rot90-instance-method","name":"rot90","doc":"Rotate 90 degrees clockwise.","summary":"

    Rotate 90 degrees clockwise.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1003,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1003"},"def":{"name":"rot90","visibility":"Public","body":"rot(Enums::Angle::D90)"}},{"html_id":"rotate(angle:Float64,**kwargs)-instance-method","name":"rotate","doc":"Rotate an image by a number of degrees\n\n```\n# out_ = in.rotate(angle, {interpolate: Interpolate, background: Array(Float64), odx: Float64, ody: Float64, idx: Float64, idy: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*angle* : Float64 - Rotate anticlockwise by this many degrees\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*background* : Array(Float64) - Background value\n\n*odx* : Float64 - Horizontal output displacement\n\n*ody* : Float64 - Vertical output displacement\n\n*idx* : Float64 - Horizontal input displacement\n\n*idy* : Float64 - Vertical input displacement\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rotate an image by a number of degrees

    ","abstract":false,"args":[{"name":"angle","external_name":"angle","restriction":"Float64"}],"args_string":"(angle : Float64, **kwargs)","args_html":"(angle : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8320,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8320"},"def":{"name":"rotate","args":[{"name":"angle","external_name":"angle","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"rotate\", options, angle)).as(Type)).as_image\n"}},{"html_id":"round(round:Enums::OperationRound)-instance-method","name":"round","doc":"Perform a round function on an image\n\n```\n# out_ = in.round(round)\n```\n\n\nInput Parameters\n\n**Required**\n\n*round* : Enums::OperationRound - Rounding operation to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Perform a round function on an image

    ","abstract":false,"args":[{"name":"round","external_name":"round","restriction":"Enums::OperationRound"}],"args_string":"(round : Enums::OperationRound)","args_html":"(round : Enums::OperationRound)","location":{"filename":"src/vips/ext/image.cr","line_number":8344,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8344"},"def":{"name":"round","args":[{"name":"round","external_name":"round","restriction":"Enums::OperationRound"}],"visibility":"Public","body":"((self.call(\"round\", round)).as(Type)).as_image"}},{"html_id":"scale-instance-method","name":"scale","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1047,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1047"},"def":{"name":"scale","visibility":"Public","body":"(get(\"scale\")).as_f64"}},{"html_id":"scaleimage(**opts)-instance-method","name":"scaleimage","doc":"Scale an image to 0 - 255. This is the libvips `scale` operation, but\nrenamed to avoid a clash with the `scale` for convolution masks.","summary":"

    Scale an image to 0 - 255.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":645,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L645"},"def":{"name":"scaleimage","double_splat":{"name":"opts","external_name":"opts","restriction":""},"visibility":"Public","body":"options = Optional.new(**opts)\n((call(\"scale\", options)).as(Type)).as_image\n"}},{"html_id":"scrgb2bw(**kwargs)-instance-method","name":"scrgb2bw","doc":"Convert scrgb to bw\n\n```\n# out_ = in.scrgb2bw({depth: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert scrgb to bw

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8366,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8366"},"def":{"name":"scrgb2bw","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"scrgb2bw\", options)).as(Type)).as_image\n"}},{"html_id":"scrgb2srgb(**kwargs)-instance-method","name":"scrgb2srgb","doc":"Convert an scrgb image to srgb\n\n```\n# out_ = in.scrgb2srgb({depth: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert an scrgb image to srgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8390,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8390"},"def":{"name":"scrgb2srgb","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"scrgb2srgb\", options)).as(Type)).as_image\n"}},{"html_id":"scrgb2xyz-instance-method","name":"scrgb2xyz","doc":"Transform scrgb to xyz\n\n```\n# out_ = in.scrgb2xyz()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform scrgb to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8407,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8407"},"def":{"name":"scrgb2xyz","visibility":"Public","body":"((self.call(\"scrgb2xyz\")).as(Type)).as_image"}},{"html_id":"sequential(**kwargs)-instance-method","name":"sequential","doc":"Check sequential access\n\n```\n# out_ = in.sequential({tile_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_height* : Int32 - Tile height in pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Check sequential access

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8429,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8429"},"def":{"name":"sequential","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"sequential\", options)).as(Type)).as_image\n"}},{"html_id":"set_kill(kill:Bool)-instance-method","name":"set_kill","doc":"Set the `kill` flag on an image. Handy for stopping sets of threads.\nAt least libvips 8.8 is needed.","summary":"

    Set the kill flag on an image.

    ","abstract":false,"args":[{"name":"kill","external_name":"kill","restriction":"Bool"}],"args_string":"(kill : Bool)","args_html":"(kill : Bool)","location":{"filename":"src/vips/image.cr","line_number":1223,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1223"},"def":{"name":"set_kill","args":[{"name":"kill","external_name":"kill","restriction":"Bool"}],"visibility":"Public","body":"if Vips.at_least_libvips?(8, 8)\nelse\n return\nend\nLibVips.vips_image_set_kill(self, kill)\n"}},{"html_id":"set_progress(enable:Bool)-instance-method","name":"set_progress","doc":"Enable progress reporting on an image.\nWhen progress reporting is enabled, evaluation of the most downstream\nimage from this image will report progress using the `Enums::Signal::PreEval`,\n`Enums::Signal::Eval` and `Enums::Signal::PostEval` signals.","summary":"

    Enable progress reporting on an image.

    ","abstract":false,"args":[{"name":"enable","external_name":"enable","restriction":"Bool"}],"args_string":"(enable : Bool)","args_html":"(enable : Bool)","location":{"filename":"src/vips/image.cr","line_number":1238,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1238"},"def":{"name":"set_progress","args":[{"name":"enable","external_name":"enable","restriction":"Bool"}],"visibility":"Public","body":"LibVips.vips_image_set_progress(self, enable)"}},{"html_id":"set_progress(&block:Int32->Nil)-instance-method","name":"set_progress","doc":"Enable progress reporting on an image and provide a block which will be executed on feedback.\nYou can use this function to update user-interfaces with progress feedback, for example\n\n```\nimage = Vips::Image.new_from_file(\"huge.jpg\", access: Enums::Access.Sequential)\nimage.set_progress { |percent| puts \"#{percent} complete\" }\nimage.dzsave(\"image-pyramid\")\n```","summary":"

    Enable progress reporting on an image and provide a block which will be executed on feedback.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1250,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1250"},"def":{"name":"set_progress","yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Int32 -> Nil)"},"visibility":"Public","body":"last_percent = 0\nsignal_connect(Enums::Signal::Eval) do |image, progress|\n if progress.percent == last_percent\n else\n block.call(progress.percent)\n end\nend\n"}},{"html_id":"sharpen(**kwargs)-instance-method","name":"sharpen","doc":"Unsharp masking for print\n\n```\n# out_ = in.sharpen({sigma: Float64, x1: Float64, y2: Float64, y3: Float64, m1: Float64, m2: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*sigma* : Float64 - Sigma of Gaussian\n\n*x1* : Float64 - Flat/jaggy threshold\n\n*y2* : Float64 - Maximum brightening\n\n*y3* : Float64 - Maximum darkening\n\n*m1* : Float64 - Slope for flat areas\n\n*m2* : Float64 - Slope for jaggy areas\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unsharp masking for print

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8463,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8463"},"def":{"name":"sharpen","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"sharpen\", options)).as(Type)).as_image\n"}},{"html_id":"shrink(hshrink:Float64,vshrink:Float64,**kwargs)-instance-method","name":"shrink","doc":"Shrink an image\n\n```\n# out_ = in.shrink(hshrink, vshrink, {ceil: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Float64 - Horizontal shrink factor\n\n*vshrink* : Float64 - Vertical shrink factor\n\n_Optionals_\n\n*ceil* : Bool - Round-up output dimensions\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"args_string":"(hshrink : Float64, vshrink : Float64, **kwargs)","args_html":"(hshrink : Float64, vshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8493,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8493"},"def":{"name":"shrink","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"shrink\", options, hshrink, vshrink)).as(Type)).as_image\n"}},{"html_id":"shrinkh(hshrink:Int32,**kwargs)-instance-method","name":"shrinkh","doc":"Shrink an image horizontally\n\n```\n# out_ = in.shrinkh(hshrink, {ceil: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Int32 - Horizontal shrink factor\n\n_Optionals_\n\n*ceil* : Bool - Round-up output dimensions\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image horizontally

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Int32"}],"args_string":"(hshrink : Int32, **kwargs)","args_html":"(hshrink : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8521,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8521"},"def":{"name":"shrinkh","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"shrinkh\", options, hshrink)).as(Type)).as_image\n"}},{"html_id":"shrinkv(vshrink:Int32,**kwargs)-instance-method","name":"shrinkv","doc":"Shrink an image vertically\n\n```\n# out_ = in.shrinkv(vshrink, {ceil: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*vshrink* : Int32 - Vertical shrink factor\n\n_Optionals_\n\n*ceil* : Bool - Round-up output dimensions\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image vertically

    ","abstract":false,"args":[{"name":"vshrink","external_name":"vshrink","restriction":"Int32"}],"args_string":"(vshrink : Int32, **kwargs)","args_html":"(vshrink : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8549,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8549"},"def":{"name":"shrinkv","args":[{"name":"vshrink","external_name":"vshrink","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"shrinkv\", options, vshrink)).as(Type)).as_image\n"}},{"html_id":"sign-instance-method","name":"sign","doc":"Unit vector of pixel\n\n```\n# out_ = in.sign()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unit vector of pixel

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8566,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8566"},"def":{"name":"sign","visibility":"Public","body":"((self.call(\"sign\")).as(Type)).as_image"}},{"html_id":"signal_connect(signal:Enums::Signal,data:Pointer(Void)=Pointer(Void).null,&callback:EvalProc)-instance-method","name":"signal_connect","doc":"Connects a `EvalProc` callback to a signal on this image.\nThe callback will be triggered every time this signal is issued on this image.","summary":"

    Connects a EvalProc callback to a signal on this image.

    ","abstract":false,"args":[{"name":"signal","external_name":"signal","restriction":"Enums::Signal"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"args_string":"(signal : Enums::Signal, data : Pointer(Void) = Pointer(Void).null, &callback : EvalProc)","args_html":"(signal : Enums::Signal, data : Pointer(Void) = Pointer(Void).null, &callback : EvalProc)","location":{"filename":"src/vips/image.cr","line_number":1230,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1230"},"def":{"name":"signal_connect","args":[{"name":"signal","external_name":"signal","restriction":"Enums::Signal"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"yields":0,"block_arity":0,"block_arg":{"name":"callback","external_name":"callback","restriction":"EvalProc"},"visibility":"Public","body":"signal_connect(signal.to_s.downcase, callback, data)"}},{"html_id":"similarity(**kwargs)-instance-method","name":"similarity","doc":"Similarity transform of an image\n\n```\n# out_ = in.similarity({scale: Float64, angle: Float64, interpolate: Interpolate, background: Array(Float64), odx: Float64, ody: Float64, idx: Float64, idy: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*scale* : Float64 - Scale by this factor\n\n*angle* : Float64 - Rotate anticlockwise by this many degrees\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*background* : Array(Float64) - Background value\n\n*odx* : Float64 - Horizontal output displacement\n\n*ody* : Float64 - Vertical output displacement\n\n*idx* : Float64 - Horizontal input displacement\n\n*idy* : Float64 - Vertical input displacement\n\n\n**Returns**\n\nOutput image\n","summary":"

    Similarity transform of an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8602,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8602"},"def":{"name":"similarity","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"similarity\", options)).as(Type)).as_image\n"}},{"html_id":"sin:Image-instance-method","name":"sin","doc":"Return the sine of an image in degrees.","summary":"

    Return the sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":873,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L873"},"def":{"name":"sin","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Sin)"}},{"html_id":"sinh:Image-instance-method","name":"sinh","doc":"Return the hyperbolic sine of an image in degrees.","summary":"

    Return the hyperbolic sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":903,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L903"},"def":{"name":"sinh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Sinh)"}},{"html_id":"size-instance-method","name":"size","doc":"Get the image size","summary":"

    Get the image size

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1056,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1056"},"def":{"name":"size","visibility":"Public","body":"[width, height]"}},{"html_id":"smartcrop(width:Int32,height:Int32,**kwargs)-instance-method","name":"smartcrop","doc":"Extract an area from an image\n\n```\n# out_, attention_x, attention_y = input.smartcrop(width, height, {interesting: Enums::Interesting})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Width of extract area\n\n*height* : Int32 - Height of extract area\n\n_Optionals_\n\n*interesting* : Enums::Interesting - How to measure interestingness\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*attention_x* : Int32? - Horizontal position of attention centre\n\n*attention_y* : Int32? - Vertical position of attention centre\n","summary":"

    Extract an area from an image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8672,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8672"},"def":{"name":"smartcrop","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"attention_x\"] = true\noptions[\"attention_y\"] = true\nresults = (self.call(\"smartcrop\", options, width, height)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nattention_x = ((o = opts) && (val = o[\"attention_x\"]?)) ? val.as_i32 : nil\nattention_y = ((o = opts) && (val = o[\"attention_y\"]?)) ? val.as_i32 : nil\n{final_result, attention_x, attention_y}\n"}},{"html_id":"sobel-instance-method","name":"sobel","doc":"Sobel edge detector\n\n```\n# out_ = in.sobel()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Sobel edge detector

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8698,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8698"},"def":{"name":"sobel","visibility":"Public","body":"((self.call(\"sobel\")).as(Type)).as_image"}},{"html_id":"spcor(ref:Image)-instance-method","name":"spcor","doc":"Spatial correlation\n\n```\n# out_ = in.spcor(ref)\n```\n\n\nInput Parameters\n\n**Required**\n\n*ref* : Image - Input reference image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Spatial correlation

    ","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"args_string":"(ref : Image)","args_html":"(ref : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8720,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8720"},"def":{"name":"spcor","args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"spcor\", ref)).as(Type)).as_image"}},{"html_id":"spectrum-instance-method","name":"spectrum","doc":"Make displayable power spectrum\n\n```\n# out_ = in.spectrum()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make displayable power spectrum

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8735,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8735"},"def":{"name":"spectrum","visibility":"Public","body":"((self.call(\"spectrum\")).as(Type)).as_image"}},{"html_id":"srgb2hsv-instance-method","name":"srgb2hsv","doc":"Transform srgb to hsv\n\n```\n# out_ = in.srgb2hsv()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform srgb to hsv

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8750,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8750"},"def":{"name":"srgb2hsv","visibility":"Public","body":"((self.call(\"srgb2hsv\")).as(Type)).as_image"}},{"html_id":"srgb2scrgb-instance-method","name":"srgb2scrgb","doc":"Convert an srgb image to scrgb\n\n```\n# out_ = in.srgb2scrgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert an srgb image to scrgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8765,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8765"},"def":{"name":"srgb2scrgb","visibility":"Public","body":"((self.call(\"srgb2scrgb\")).as(Type)).as_image"}},{"html_id":"stats-instance-method","name":"stats","doc":"Find many image stats\n\n```\n# out_ = in.stats()\n```\n\n\n**Returns**\n\nOutput array of statistics\n","summary":"

    Find many image stats

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8780,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8780"},"def":{"name":"stats","visibility":"Public","body":"((self.call(\"stats\")).as(Type)).as_image"}},{"html_id":"stdif(width:Int32,height:Int32,**kwargs)-instance-method","name":"stdif","doc":"Statistical difference\n\n```\n# out_ = in.stdif(width, height, {s0: Float64, b: Float64, m0: Float64, a: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Window width in pixels\n\n*height* : Int32 - Window height in pixels\n\n_Optionals_\n\n*s0* : Float64 - New deviation\n\n*b* : Float64 - Weight of new deviation\n\n*m0* : Float64 - New mean\n\n*a* : Float64 - Weight of new mean\n\n\n**Returns**\n\nOutput image\n","summary":"

    Statistical difference

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8814,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8814"},"def":{"name":"stdif","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"stdif\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"subsample(xfac:Int32,yfac:Int32,**kwargs)-instance-method","name":"subsample","doc":"Subsample an image\n\n```\n# out_ = input.subsample(xfac, yfac, {point: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*xfac* : Int32 - Horizontal subsample factor\n\n*yfac* : Int32 - Vertical subsample factor\n\n_Optionals_\n\n*point* : Bool - Point sample\n\n\n**Returns**\n\nOutput image\n","summary":"

    Subsample an image

    ","abstract":false,"args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"args_string":"(xfac : Int32, yfac : Int32, **kwargs)","args_html":"(xfac : Int32, yfac : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8844,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8844"},"def":{"name":"subsample","args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"subsample\", options, xfac, yfac)).as(Type)).as_image\n"}},{"html_id":"subtract(right:Image)-instance-method","name":"subtract","doc":"Subtract two images\n\n```\n# out_ = left.subtract(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Subtract two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8868,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L8868"},"def":{"name":"subtract","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"subtract\", right)).as(Type)).as_image"}},{"html_id":"tan:Image-instance-method","name":"tan","doc":"Return the tangent of an image in degrees.","summary":"

    Return the tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":883,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L883"},"def":{"name":"tan","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Tan)"}},{"html_id":"tanh:Image-instance-method","name":"tanh","doc":"Return the hyperbolic tangent of an image in degrees.","summary":"

    Return the hyperbolic tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":913,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L913"},"def":{"name":"tanh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Tanh)"}},{"html_id":"thumbnail_image(width:Int32,**kwargs)-instance-method","name":"thumbnail_image","doc":"Generate thumbnail from image\n\n```\n# out_ = in.thumbnail_image(width, {height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(width : Int32, **kwargs)","args_html":"(width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9270,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9270"},"def":{"name":"thumbnail_image","args":[{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"thumbnail_image\", options, width)).as(Type)).as_image\n"}},{"html_id":"tiffsave(filename:String,**kwargs)-instance-method","name":"tiffsave","doc":"Save image to tiff file\n\n```\nin.tiffsave(filename, {compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to tiff file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9623,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9623"},"def":{"name":"tiffsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"tiffsave\", options, filename)\n"}},{"html_id":"tiffsave_buffer(**kwargs)-instance-method","name":"tiffsave_buffer","doc":"Save image to tiff buffer\n\n```\n# buffer = in.tiffsave_buffer({compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to tiff buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9692,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9692"},"def":{"name":"tiffsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"tiffsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"tiffsave_stream(stream:IO,**kwargs)-instance-method","name":"tiffsave_stream","doc":"Save image to tiff stream\n\n```\nin.tiffsave_stream(stream, {compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to tiff stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9828,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9828"},"def":{"name":"tiffsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ntiffsave_target(target, **kwargs)\n"}},{"html_id":"tiffsave_target(target:Target,**kwargs)-instance-method","name":"tiffsave_target","doc":"Save image to tiff target\n\n```\nin.tiffsave_target(target, {compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to tiff target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9762,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9762"},"def":{"name":"tiffsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"tiffsave_target\", options, target)\n"}},{"html_id":"tilecache(**kwargs)-instance-method","name":"tilecache","doc":"Cache an image as a set of tiles\n\n```\n# out_ = in.tilecache({tile_width: Int32, tile_height: Int32, max_tiles: Int32, access: Enums::Access, threaded: Bool, persistent: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*max_tiles* : Int32 - Maximum number of tiles to cache\n\n*access* : Enums::Access - Expected access pattern\n\n*threaded* : Bool - Allow threaded access\n\n*persistent* : Bool - Keep cache between evaluations\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cache an image as a set of tiles

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9861,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9861"},"def":{"name":"tilecache","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"tilecache\", options)).as(Type)).as_image\n"}},{"html_id":"to_s(io:IO)-instance-method","name":"to_s","doc":"Appends a short String representation of this object\nwhich includes its class name and its object address.\n\n```\nclass Person\n def initialize(@name : String, @age : Int32)\n end\nend\n\nPerson.new(\"John\", 32).to_s # => #\n```","summary":"

    Appends a short String representation of this object which includes its class name and its object address.

    ","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/image.cr","line_number":1293,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L1293"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"io << \"\""}},{"html_id":"transpose3d(**kwargs)-instance-method","name":"transpose3d","doc":"Transpose3d an image\n\n```\n# out_ = in.transpose3d({page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*page_height* : Int32 - Height of each input page\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transpose3d an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9927,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9927"},"def":{"name":"transpose3d","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"transpose3d\", options)).as(Type)).as_image\n"}},{"html_id":"unpremultiply(**kwargs)-instance-method","name":"unpremultiply","doc":"Unpremultiply image alpha\n\n```\n# out_ = in.unpremultiply({max_alpha: Float64, alpha_band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*max_alpha* : Float64 - Maximum value of alpha channel\n\n*alpha_band* : Int32 - Unpremultiply with this alpha\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpremultiply image alpha

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9953,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L9953"},"def":{"name":"unpremultiply","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"unpremultiply\", options)).as(Type)).as_image\n"}},{"html_id":"vipssave(filename:String,**kwargs)-instance-method","name":"vipssave","doc":"Save image to file in vips format\n\n```\nin.vipssave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to file in vips format

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10097,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10097"},"def":{"name":"vipssave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"vipssave\", options, filename)\n"}},{"html_id":"vipssave_stream(stream:IO,**kwargs)-instance-method","name":"vipssave_stream","doc":"Save image to stream in vips format\n\n```\nin.vipssave_stream(stream, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to stream in vips format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10148,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10148"},"def":{"name":"vipssave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nvipssave_target(target, **kwargs)\n"}},{"html_id":"vipssave_target(target:Target,**kwargs)-instance-method","name":"vipssave_target","doc":"Save image to target in vips format\n\n```\nin.vipssave_target(target, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to target in vips format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10124,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10124"},"def":{"name":"vipssave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"vipssave_target\", options, target)\n"}},{"html_id":"webpsave(filename:String,**kwargs)-instance-method","name":"webpsave","doc":"Save as webp\n\n```\nin.webpsave(filename, {q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as webp

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10382,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10382"},"def":{"name":"webpsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"webpsave\", options, filename)\n"}},{"html_id":"webpsave_buffer(**kwargs)-instance-method","name":"webpsave_buffer","doc":"Save as webp\n\n```\n# buffer = in.webpsave_buffer({q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save as webp

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10433,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10433"},"def":{"name":"webpsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"webpsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"webpsave_mime(**kwargs)-instance-method","name":"webpsave_mime","doc":"Save image to webp mime\n\n```\nin.webpsave_mime({q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to webp mime

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10481,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10481"},"def":{"name":"webpsave_mime","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"webpsave_mime\", options)\n"}},{"html_id":"webpsave_stream(stream:IO,**kwargs)-instance-method","name":"webpsave_stream","doc":"Save as webp\n\n```\nin.webpsave_stream(stream, {q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save as webp

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10580,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10580"},"def":{"name":"webpsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nwebpsave_target(target, **kwargs)\n"}},{"html_id":"webpsave_target(target:Target,**kwargs)-instance-method","name":"webpsave_target","doc":"Save as webp\n\n```\nin.webpsave_target(target, {q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as webp

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10532,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10532"},"def":{"name":"webpsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"webpsave_target\", options, target)\n"}},{"html_id":"width:Int32-instance-method","name":"width","doc":"Image width in pixels","summary":"

    Image width in pixels

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10816,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10816"},"def":{"name":"width","return_type":"Int32","visibility":"Public","body":"(get(\"width\")).as_i32"}},{"html_id":"wrap(**kwargs)-instance-method","name":"wrap","doc":"Wrap image origin\n\n```\n# out_ = in.wrap({x: Int32, y: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*x* : Int32 - Left edge of input in output\n\n*y* : Int32 - Top edge of input in output\n\n\n**Returns**\n\nOutput image\n","summary":"

    Wrap image origin

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10637,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10637"},"def":{"name":"wrap","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"wrap\", options)).as(Type)).as_image\n"}},{"html_id":"write(other:Image)-instance-method","name":"write","doc":"Write an image to another image.\nThis function writes `self` to another image. Use something like\n`new_temp_file` to make an image that can be written to.","summary":"

    Write an image to another image.

    ","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"Image"}],"args_string":"(other : Image)","args_html":"(other : Image)","location":{"filename":"src/vips/image.cr","line_number":556,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L556"},"def":{"name":"write","args":[{"name":"other","external_name":"other","restriction":"Image"}],"visibility":"Public","body":"(LibVips.vips_image_write(self, other.to_unsafe)).tap do |ret|\n if ret == 0\n else\n raise(VipsException.new(\"unable to write to image\"))\n end\nend"}},{"html_id":"write_to_buffer(format:String,**kwargs)-instance-method","name":"write_to_buffer","doc":"Write this image to a memory buffer. This method can save images in any format supported by vips. Save options may be encoded in the\nfilename or given as a keyword argument. For example:\n\n```\nimage.write_to_file(\"fred.jpg[Q=95])\"\n```\n\nor equivalently:\n\n```\nimage.write_to_file(\"fred.jpg\", Q: 95)\n```\n\nThe full set of save options depend on the selected saver. Try\nsomething like:\n\n```\n$ vips jpegsave\n```\n\nto see all the available options for JPEG save.\n\nGet the `GType` of a metadata field. The result is 0 if no such field\nexists.","summary":"

    Write this image to a memory buffer.

    ","abstract":false,"args":[{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(format : String, **kwargs)","args_html":"(format : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":472,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L472"},"def":{"name":"write_to_buffer","args":[{"name":"format","external_name":"format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"buffer_options = String.new(LibVips.vips_filename_get_options(format))\nsaver = Pointer(UInt8).null\nif Vips.at_least_libvips?(8, 9)\n LibVips.vips_error_freeze\n saver = LibVips.vips_foreign_find_save_target(filename)\n LibVips.vips_error_thaw\nend\noptions = Optional.new(**kwargs)\noptions[\"string_options\"] = buffer_options\nif !saver.null?\n target = Target.new_to_memory\n call(String.new(saver), options, target)\n return target.blob\nend\nsaver = LibVips.vips_foreign_find_save_buffer(format)\nif saver.nil?\n raise(VipsException.new(\"unable to write to buffer\"))\nend\nreturn ((call(String.new(saver), options)).as(Type)).as_bytes\n"}},{"html_id":"write_to_bytes:Bytes-instance-method","name":"write_to_bytes","doc":"Write the image to a `Bytes`.\nA large area of memory is allocated, the image is rendered to that\nmemory array, and the array is returned as a buffer.\n\nFor example, if you have a 2x2 uchar image containing the bytes 1, 2,\n3, 4, read left-to-right, top-to-bottom, then:\n```\nbuf = image.write_to_memory # => return Bytes of size 4 containing values 1,2,3,4\n```\nReturns `Bytes`","summary":"

    Write the image to a Bytes.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":544,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L544"},"def":{"name":"write_to_bytes","return_type":"Bytes","visibility":"Public","body":"ptr, size = write_to_memory\nresult = Bytes.new(size)\nresult.to_unsafe.copy_from(ptr.as(::Pointer(UInt8)), size)\nVips.free(ptr)\nresult\n"}},{"html_id":"write_to_file(name:String,**kwargs)-instance-method","name":"write_to_file","doc":"Write this image to a file. This method can save images in any format supported by vips. Save options may be encoded in the\nfilename or given as a keyword argument. For example:\n\n```\nimage.write_to_file(\"fred.jpg[Q=95])\"\n```\n\nor equivalently:\n\n```\nimage.write_to_file(\"fred.jpg\", Q: 95)\n```\n\nThe full set of save options depend on the selected saver. Try\nsomething like:\n\n```\n$ vips jpegsave\n```\n\nto see all the available options for JPEG save.\n\nGet the `GType` of a metadata field. The result is 0 if no such field\nexists.","summary":"

    Write this image to a file.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String, **kwargs)","args_html":"(name : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":435,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L435"},"def":{"name":"write_to_file","args":[{"name":"name","external_name":"name","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"filename = String.new(LibVips.vips_filename_get_filename(name))\nfile_options = String.new(LibVips.vips_filename_get_options(name))\noperation_name = String.new((LibVips.vips_foreign_find_save(filename)) || Bytes.empty)\nif operation_name.blank?\n raise(VipsException.new(\"Unable to write to file #{filename}\"))\nend\noptions = Optional.new(**kwargs)\noptions[\"string_options\"] = file_options\ncall(operation_name, options, filename)\n"}},{"html_id":"write_to_memory:Tuple(Pointer(Void),LibC::SizeT)-instance-method","name":"write_to_memory","doc":"Write the image to memory as a simple, unformatted C-style array.\nNote: The caller is responsible for freeing this memory with `Vips.free`\nReturns {Void*, LibC::SizeT}","summary":"

    Write the image to memory as a simple, unformatted C-style array.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":528,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L528"},"def":{"name":"write_to_memory","return_type":"::Tuple(::Pointer(Void), LibC::SizeT)","visibility":"Public","body":"ptr = LibVips.vips_image_write_to_memory(self, out size)\nif ptr.null?\n raise(VipsException.new(\"unable to write to memory\"))\nend\n{ptr, size}\n"}},{"html_id":"write_to_target(stream:IO,format:String,**kwargs)-instance-method","name":"write_to_target","doc":"Write an image to a stream.\nThis behaves exactly as `write_to_file`, but the image is\nwritten to a *stream* rather than a file.\nNote: At least libvips 8.9 is needed.","summary":"

    Write an image to a stream.

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(stream : IO, format : String, **kwargs)","args_html":"(stream : IO, format : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":520,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L520"},"def":{"name":"write_to_target","args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"format","external_name":"format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nwrite_to_target(target, format, **kwargs)\n"}},{"html_id":"write_to_target(target:Target,format:String,**kwargs)-instance-method","name":"write_to_target","doc":"Write an image to a target.\nThis behaves exactly as `write_to_file`, but the image is\nwritten to a *target* rather than a file.\nNote: At least libvips 8.9 is needed.","summary":"

    Write an image to a target.

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"},{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(target : Target, format : String, **kwargs)","args_html":"(target : Target, format : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":504,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L504"},"def":{"name":"write_to_target","args":[{"name":"target","external_name":"target","restriction":"Target"},{"name":"format","external_name":"format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"buffer_options = String.new(LibVips.vips_filename_get_options(format))\noperation_name = String.new((LibVips.vips_foreign_find_save_target(format)) || Bytes.empty)\nif operation_name.blank?\n raise(VipsException.new(\"Unable to write to target\"))\nend\noptions = Optional.new(**kwargs)\noptions[\"string_options\"] = buffer_options\ncall(operation_name, options, target)\n"}},{"html_id":"xoffset:Int32-instance-method","name":"xoffset","doc":"Horizontal offset of origin","summary":"

    Horizontal offset of origin

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10846,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10846"},"def":{"name":"xoffset","return_type":"Int32","visibility":"Public","body":"(get(\"xoffset\")).as_i32"}},{"html_id":"xres:Float64-instance-method","name":"xres","doc":"Horizontal resolution in pixels/mm","summary":"

    Horizontal resolution in pixels/mm

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10856,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10856"},"def":{"name":"xres","return_type":"Float64","visibility":"Public","body":"(get(\"xres\")).as_f64"}},{"html_id":"xyz2cmyk-instance-method","name":"xyz2cmyk","doc":"Transform xyz to cmyk\n\n```\n# out_ = in.xyz2cmyk()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to cmyk

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10688,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10688"},"def":{"name":"xyz2cmyk","visibility":"Public","body":"((self.call(\"xyz2cmyk\")).as(Type)).as_image"}},{"html_id":"xyz2lab(**kwargs)-instance-method","name":"xyz2lab","doc":"Transform xyz to lab\n\n```\n# out_ = in.xyz2lab({temp: Array(Float64)})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*temp* : Array(Float64) - Colour temperature\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10710,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10710"},"def":{"name":"xyz2lab","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"xyz2lab\", options)).as(Type)).as_image\n"}},{"html_id":"xyz2scrgb-instance-method","name":"xyz2scrgb","doc":"Transform xyz to scrgb\n\n```\n# out_ = in.xyz2scrgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to scrgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10727,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10727"},"def":{"name":"xyz2scrgb","visibility":"Public","body":"((self.call(\"xyz2scrgb\")).as(Type)).as_image"}},{"html_id":"xyz2yxy-instance-method","name":"xyz2yxy","doc":"Transform xyz to yxy\n\n```\n# out_ = in.xyz2yxy()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to yxy

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10742,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10742"},"def":{"name":"xyz2yxy","visibility":"Public","body":"((self.call(\"xyz2yxy\")).as(Type)).as_image"}},{"html_id":"yoffset:Int32-instance-method","name":"yoffset","doc":"Vertical offset of origin","summary":"

    Vertical offset of origin

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10851,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10851"},"def":{"name":"yoffset","return_type":"Int32","visibility":"Public","body":"(get(\"yoffset\")).as_i32"}},{"html_id":"yres:Float64-instance-method","name":"yres","doc":"Vertical resolution in pixels/mm","summary":"

    Vertical resolution in pixels/mm

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10861,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10861"},"def":{"name":"yres","return_type":"Float64","visibility":"Public","body":"(get(\"yres\")).as_f64"}},{"html_id":"yxy2xyz-instance-method","name":"yxy2xyz","doc":"Transform yxy to xyz\n\n```\n# out_ = in.yxy2xyz()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform yxy to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10757,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10757"},"def":{"name":"yxy2xyz","visibility":"Public","body":"((self.call(\"yxy2xyz\")).as(Type)).as_image"}},{"html_id":"zoom(xfac:Int32,yfac:Int32)-instance-method","name":"zoom","doc":"Zoom an image\n\n```\n# out_ = input.zoom(xfac, yfac)\n```\n\n\nInput Parameters\n\n**Required**\n\n*xfac* : Int32 - Horizontal zoom factor\n\n*yfac* : Int32 - Vertical zoom factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Zoom an image

    ","abstract":false,"args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"args_string":"(xfac : Int32, yfac : Int32)","args_html":"(xfac : Int32, yfac : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":10811,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/image.cr#L10811"},"def":{"name":"zoom","args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"zoom\", xfac, yfac)).as(Type)).as_image"}}],"types":[{"html_id":"vips/Vips/Image/EvalProc","path":"Vips/Image/EvalProc.html","kind":"alias","full_name":"Vips::Image::EvalProc","name":"EvalProc","abstract":false,"locations":[{"filename":"src/vips/image.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/image.cr#L5"}],"repository_name":"vips","program":false,"enum":false,"alias":true,"aliased":"Proc(Vips::Image, LibVips::VipsProgress, Nil)","aliased_html":"Vips::Image, LibVips::VipsProgress -> Nil","const":false,"namespace":{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},"doc":"Evaluation callback that can be used on the `Enums::Signal::PreEval`, `Enums::Signal::Eval`, and `Enums::Signal::PostEval` signals.\nSee `set_progress` to enable progress reporting on an image.","summary":"

    Evaluation callback that can be used on the Enums::Signal::PreEval, Enums::Signal::Eval, and Enums::Signal::PostEval signals.

    "}]},{"html_id":"vips/Vips/Interpolate","path":"Vips/Interpolate.html","kind":"class","full_name":"Vips::Interpolate","name":"Interpolate","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/interpolate.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/interpolate.cr#L3"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Make interpolators for operators like `Image#affine`","summary":"

    Make interpolators for operators like Image#affine

    ","class_methods":[{"html_id":"new_from_name(name:String)-class-method","name":"new_from_name","doc":"Make a new interpolator by name.\nMake a new interpolator from the libvips class nickname. For example:\n\n```\ninter = Vips::Interpolate.new_from_name(\"bicubic\")\n```\nYou can get a list of all supported interpolators from the command-line with\n\n```sh\nvips -l interpolate\n```\nSee for example `Image#affine`","summary":"

    Make a new interpolator by name.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/interpolate.cr","line_number":20,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/interpolate.cr#L20"},"def":{"name":"new_from_name","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"vi = LibVips.vips_interpolate_new(name)\nif vi.null?\n raise(VipsException.new(\"no such interpolator #{name}\"))\nend\nnew(vi)\n"}}]},{"html_id":"vips/Vips/Introspect","path":"Vips/Introspect.html","kind":"class","full_name":"Vips::Introspect","name":"Introspect","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/introspect.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L5"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Build introspection data for operations\nMake an operation, introspect it, and build a structure representing\neverything we know about it.","summary":"

    Build introspection data for operations Make an operation, introspect it, and build a structure representing everything we know about it.

    ","class_methods":[{"html_id":"get(operation_name:String)-class-method","name":"get","doc":"Get introspection data for a specified operation name.","summary":"

    Get introspection data for a specified operation name.

    ","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"args_string":"(operation_name : String)","args_html":"(operation_name : String)","location":{"filename":"src/vips/introspect.cr","line_number":113,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L113"},"def":{"name":"get","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"visibility":"Public","body":"__temp_49 = operation_name\n@@cache[__temp_49]? || (@@cache[__temp_49] = Introspect.new(operation_name))\n"}}],"instance_methods":[{"html_id":"get_args(op:Operation)-instance-method","name":"get_args","doc":"Get all arguments for an operation.","summary":"

    Get all arguments for an operation.

    ","abstract":false,"args":[{"name":"op","external_name":"op","restriction":"Operation"}],"args_string":"(op : Operation)","args_html":"(op : Operation)","location":{"filename":"src/vips/introspect.cr","line_number":73,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L73"},"def":{"name":"get_args","args":[{"name":"op","external_name":"op","restriction":"Operation"}],"visibility":"Public","body":"args = Array(Tuple(String, LibVips::VipsArgumentFlags)).new\nadd_arg = ->(name : String, flags : LibVips::VipsArgumentFlags) do\n name = name.gsub('-', '_')\n args << {name, flags}\n nil\nend\nif Vips.at_least_libvips?(8, 7)\n result = LibVips.vips_object_get_args(op.to_obj, out names, out flags_, out count)\n if result == 0\n else\n raise(VipsException.new(\"unable to get arguments for operation\"))\n end\n 0.upto(count - 1) do |i|\n flag = LibVips::VipsArgumentFlags.from_value(flags_[i])\n if (flag & LibVips::VipsArgumentFlags::Construct).value == 0\n next\n end\n name = String.new(names[i])\n add_arg.call(name, flag)\n end\nelse\n proc = LibVips::VipsArgumentMapFn.new do |_self, pspec, argcls, arginst, a, b|\n flag = argcls.value.flags\n if (flag & LibVips::VipsArgumentFlags::Construct).value == 0\n next Pointer(Void).null\n end\n name = String.new(pspec.value.name)\n handler = Box(Proc(String, LibVips::VipsArgumentFlags, Nil)).unbox(a)\n handler.call(name, flag)\n Pointer(Void).null\n end\n LibVips.vips_argument_map(op.to_obj, proc, Box.box(add_arg), Pointer(Void).null)\nend\nargs\n"}},{"html_id":"member_x:Argument|Nil-instance-method","name":"member_x","doc":"The first required input image or nil","summary":"

    The first required input image or nil

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L12"},"def":{"name":"member_x","return_type":"Argument | ::Nil","visibility":"Public","body":"if (value = @member_x).nil?\n ::raise(NilAssertionError.new(\"Vips::Introspect#member_x cannot be nil\"))\nelse\n value\nend"}},{"html_id":"member_x?:Argument|Nil|Nil-instance-method","name":"member_x?","doc":"The first required input image or nil","summary":"

    The first required input image or nil

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L12"},"def":{"name":"member_x?","return_type":"Argument | ::Nil | ::Nil","visibility":"Public","body":"@member_x"}},{"html_id":"mutable:Bool-instance-method","name":"mutable","doc":"A bool indicating if this operation is mutable","summary":"

    A bool indicating if this operation is mutable

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":15,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L15"},"def":{"name":"mutable","return_type":"Bool","visibility":"Public","body":"@mutable"}},{"html_id":"optional_input:Hash(String,Argument)-instance-method","name":"optional_input","doc":"The optional input for this operation","summary":"

    The optional input for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":21,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L21"},"def":{"name":"optional_input","return_type":"Hash(String, Argument)","visibility":"Public","body":"@optional_input"}},{"html_id":"optional_output:Hash(String,Argument)-instance-method","name":"optional_output","doc":"The optional output for this operation","summary":"

    The optional output for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L27"},"def":{"name":"optional_output","return_type":"Hash(String, Argument)","visibility":"Public","body":"@optional_output"}},{"html_id":"required_input:Array(Argument)-instance-method","name":"required_input","doc":"The required input for this operation","summary":"

    The required input for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L18"},"def":{"name":"required_input","return_type":"Array(Argument)","visibility":"Public","body":"@required_input"}},{"html_id":"required_output:Array(Argument)-instance-method","name":"required_output","doc":"The required output for this operation","summary":"

    The required output for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":24,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L24"},"def":{"name":"required_output","return_type":"Array(Argument)","visibility":"Public","body":"@required_output"}}],"types":[{"html_id":"vips/Vips/Introspect/Argument","path":"Vips/Introspect/Argument.html","kind":"struct","full_name":"Vips::Introspect::Argument","name":"Argument","abstract":false,"superclass":{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L9"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips/Introspect","kind":"class","full_name":"Vips::Introspect","name":"Introspect"},"doc":"An object structure that encapsulate the metadata\nrequired to specify arguments","summary":"

    An object structure that encapsulate the metadata required to specify arguments

    ","constructors":[{"html_id":"new(name:String,flags:LibVips::VipsArgumentFlags,type:LibVips::GType)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"flags","external_name":"flags","restriction":"LibVips::VipsArgumentFlags"},{"name":"type","external_name":"type","restriction":"LibVips::GType"}],"args_string":"(name : String, flags : LibVips::VipsArgumentFlags, type : LibVips::GType)","args_html":"(name : String, flags : LibVips::VipsArgumentFlags, type : LibVips::GType)","location":{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L9"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"flags","external_name":"flags","restriction":"LibVips::VipsArgumentFlags"},{"name":"type","external_name":"type","restriction":"LibVips::GType"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, flags, type)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L9"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@name.clone, @flags.clone, @type.clone)"}},{"html_id":"copy_with(name_name=@name,flags_flags=@flags,type_type=@type)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""},{"name":"_flags","default_value":"@flags","external_name":"flags","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""}],"args_string":"(name _name = @name, flags _flags = @flags, type _type = @type)","args_html":"(name _name = @name, flags _flags = @flags, type _type = @type)","location":{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/introspect.cr#L9"},"def":{"name":"copy_with","args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""},{"name":"_flags","default_value":"@flags","external_name":"flags","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""}],"visibility":"Public","body":"self.class.new(_name, _flags, _type)"}},{"html_id":"flags:LibVips::VipsArgumentFlags-instance-method","name":"flags","abstract":false,"def":{"name":"flags","return_type":"LibVips::VipsArgumentFlags","visibility":"Public","body":"@flags"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"type:LibVips::GType-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"LibVips::GType","visibility":"Public","body":"@type"}}]}]},{"html_id":"vips/Vips/MutableImage","path":"Vips/MutableImage.html","kind":"class","full_name":"Vips::MutableImage","name":"MutableImage","abstract":false,"superclass":{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},"ancestors":[{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/ext/mutableimage.cr","line_number":13,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L13"},{"filename":"src/vips/mutableimage.cr","line_number":4,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L4"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"[]=(index,value)-instance-method","name":"[]=","doc":"Use `[]` to set band elements on an image. For example\n\n```\nimg = image.mutate { |x| x[1] = green }\n```\nwill change band 1 ( the middle band)","summary":"

    Use [] to set band elements on an image.

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(index, value)","args_html":"(index, value)","location":{"filename":"src/vips/mutableimage.cr","line_number":44,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L44"},"def":{"name":"[]=","args":[{"name":"index","external_name":"index","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"nleft = Math.min(bands, Math.max(0, index))\nnright = Math.min(bands, Math.max(0, (bands - 1) - i))\noffset = bands - nright\nleft = nleft > 0 ? image.extract_band(0, n: nleft) : nil\nright = nright > 0 ? image.extract_band(offset, n: nright) : nil\nif left.nil?\n @image = value.bandjoin(right.not_nil!)\nelse\n if right.nil?\n @image = left.not_nil!.bandjoin(value)\n else\n image = left.not_nil!.bandjoin(value, right.not_nil!)\n end\nend\n"}},{"html_id":"draw_circle(ink:Array(Float64),cx:Int32,cy:Int32,radius:Int32,**kwargs):Nil-instance-method","name":"draw_circle","doc":"Draw a circle on an image\n\n```\n# image.mutate { |x| x.draw_circle(ink, cx, cy, radius, {fill: Bool} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*cx* : Int32 - Centre of draw_circle\n\n*cy* : Int32 - Centre of draw_circle\n\n*radius* : Int32 - Radius in pixels\n\n_Optionals_\n\n*fill* : Bool - Draw a solid object\n","summary":"

    Draw a circle on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"cx","external_name":"cx","restriction":"Int32"},{"name":"cy","external_name":"cy","restriction":"Int32"},{"name":"radius","external_name":"radius","restriction":"Int32"}],"args_string":"(ink : Array(Float64), cx : Int32, cy : Int32, radius : Int32, **kwargs) : Nil","args_html":"(ink : Array(Float64), cx : Int32, cy : Int32, radius : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":37,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L37"},"def":{"name":"draw_circle","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"cx","external_name":"cx","restriction":"Int32"},{"name":"cy","external_name":"cy","restriction":"Int32"},{"name":"radius","external_name":"radius","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_circle\", options, ink, cx, cy, radius)\n"}},{"html_id":"draw_flood(ink:Array(Float64),x:Int32,y:Int32,**kwargs):Nil-instance-method","name":"draw_flood","doc":"Flood-fill an area\n\n```\n# image.mutate { |x| x.draw_flood(ink, x, y, {test: Image, equal: Bool} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*x* : Int32 - DrawFlood start point\n\n*y* : Int32 - DrawFlood start point\n\n_Optionals_\n\n*test* : Image - Test pixels in this image\n\n*equal* : Bool - DrawFlood while equal to edge\n","summary":"

    Flood-fill an area

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(ink : Array(Float64), x : Int32, y : Int32, **kwargs) : Nil","args_html":"(ink : Array(Float64), x : Int32, y : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L65"},"def":{"name":"draw_flood","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_flood\", options, ink, x, y)\n"}},{"html_id":"draw_image(sub:Image,x:Int32,y:Int32,**kwargs):Nil-instance-method","name":"draw_image","doc":"Paint an image into another image\n\n```\n# image.mutate { |x| x.draw_image(sub, x, y, {mode: Enums::CombineMode} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*sub* : Image - Sub-image to insert into main image\n\n*x* : Int32 - Draw image here\n\n*y* : Int32 - Draw image here\n\n_Optionals_\n\n*mode* : Enums::CombineMode - Combining mode\n","summary":"

    Paint an image into another image

    ","abstract":false,"args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(sub : Image, x : Int32, y : Int32, **kwargs) : Nil","args_html":"(sub : Image, x : Int32, y : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":91,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L91"},"def":{"name":"draw_image","args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_image\", options, sub, x, y)\n"}},{"html_id":"draw_line(ink:Array(Float64),x1:Int32,y1:Int32,x2:Int32,y2:Int32):Nil-instance-method","name":"draw_line","doc":"Draw a line on an image\n\n```\n# image.mutate { |x| x.draw_line(ink, x1, y1, x2, y2 }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*x1* : Int32 - Start of draw_line\n\n*y1* : Int32 - Start of draw_line\n\n*x2* : Int32 - End of draw_line\n\n*y2* : Int32 - End of draw_line\n","summary":"

    Draw a line on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x1","external_name":"x1","restriction":"Int32"},{"name":"y1","external_name":"y1","restriction":"Int32"},{"name":"x2","external_name":"x2","restriction":"Int32"},{"name":"y2","external_name":"y2","restriction":"Int32"}],"args_string":"(ink : Array(Float64), x1 : Int32, y1 : Int32, x2 : Int32, y2 : Int32) : Nil","args_html":"(ink : Array(Float64), x1 : Int32, y1 : Int32, x2 : Int32, y2 : Int32) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":117,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L117"},"def":{"name":"draw_line","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x1","external_name":"x1","restriction":"Int32"},{"name":"y1","external_name":"y1","restriction":"Int32"},{"name":"x2","external_name":"x2","restriction":"Int32"},{"name":"y2","external_name":"y2","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"self.call(\"draw_line\", ink, x1, y1, x2, y2)"}},{"html_id":"draw_mask(ink:Array(Float64),mask:Image,x:Int32,y:Int32):Nil-instance-method","name":"draw_mask","doc":"Draw a mask on an image\n\n```\n# image.mutate { |x| x.draw_mask(ink, mask, x, y }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*mask* : Image - Mask of pixels to draw\n\n*x* : Int32 - Draw mask here\n\n*y* : Int32 - Draw mask here\n","summary":"

    Draw a mask on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(ink : Array(Float64), mask : Image, x : Int32, y : Int32) : Nil","args_html":"(ink : Array(Float64), mask : Image, x : Int32, y : Int32) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":140,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L140"},"def":{"name":"draw_mask","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"self.call(\"draw_mask\", ink, mask, x, y)"}},{"html_id":"draw_rect(ink:Array(Float64),left:Int32,top:Int32,width:Int32,height:Int32,**kwargs):Nil-instance-method","name":"draw_rect","doc":"Paint a rectangle on an image\n\n```\n# image.mutate { |x| x.draw_rect(ink, left, top, width, height, {fill: Bool} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*left* : Int32 - Rect to fill\n\n*top* : Int32 - Rect to fill\n\n*width* : Int32 - Rect to fill\n\n*height* : Int32 - Rect to fill\n\n_Optionals_\n\n*fill* : Bool - Draw a solid object\n","summary":"

    Paint a rectangle on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(ink : Array(Float64), left : Int32, top : Int32, width : Int32, height : Int32, **kwargs) : Nil","args_html":"(ink : Array(Float64), left : Int32, top : Int32, width : Int32, height : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":169,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L169"},"def":{"name":"draw_rect","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_rect\", options, ink, left, top, width, height)\n"}},{"html_id":"draw_smudge(left:Int32,top:Int32,width:Int32,height:Int32):Nil-instance-method","name":"draw_smudge","doc":"Blur a rectangle on an image\n\n```\n# image.mutate { |x| x.draw_smudge(left, top, width, height }\n```\n\n\nInput Parameters\n\n**Required**\n\n*left* : Int32 - Rect to fill\n\n*top* : Int32 - Rect to fill\n\n*width* : Int32 - Rect to fill\n\n*height* : Int32 - Rect to fill\n","summary":"

    Blur a rectangle on an image

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32) : Nil","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":193,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/ext/mutableimage.cr#L193"},"def":{"name":"draw_smudge","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"self.call(\"draw_smudge\", left, top, width, height)"}},{"html_id":"mutate(&)-instance-method","name":"mutate","doc":"Mutate an image with a block. Inside the block, you can call methods\nwhich modify the image, such as setting or removing metadata, or\nmodifying pixels.\n\nFor example:\n\n```\nimage = image.mutate do |x|\n (0..1).step 0.01 do |i|\n x.draw_line([255.0], (x.width * i).to_i, 0, 0, (x.height * (1 - i)).to_i)\n end\nend\n```\n\nSee `MutableImage`.","summary":"

    Mutate an image with a block.

    ","abstract":false,"location":{"filename":"src/vips/mutableimage.cr","line_number":59,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L59"},"def":{"name":"mutate","yields":1,"block_arity":1,"visibility":"Public","body":"yield self\nimage\n"}},{"html_id":"remove(name:String)-instance-method","name":"remove","doc":"Remove a metadata item from an image.\nnamed metadata item is removed","summary":"

    Remove a metadata item from an image.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/mutableimage.cr","line_number":34,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L34"},"def":{"name":"remove","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"LibVips.vips_image_remove(self, name)"}},{"html_id":"set(gtype:LibVips::GType,name:String,value)-instance-method","name":"set","doc":"Sets the type and value of an item of metadata. Any old item of the\nsame name is removed. See `GValue` for types","summary":"

    Sets the type and value of an item of metadata.

    ","abstract":false,"args":[{"name":"gtype","external_name":"gtype","restriction":"LibVips::GType"},{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"args_string":"(gtype : LibVips::GType, name : String, value)","args_html":"(gtype : LibVips::GType, name : String, value)","location":{"filename":"src/vips/mutableimage.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L18"},"def":{"name":"set","args":[{"name":"gtype","external_name":"gtype","restriction":"LibVips::GType"},{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gv = GValue.new\ngv.set_type(gtype)\ngv.set(value)\nLibVips.vips_image_set(self, name, gv)\n"}},{"html_id":"set(name:String,value)-instance-method","name":"set","doc":"Sets the value of an item of metadata. The metadata item must already exists","summary":"

    Sets the value of an item of metadata.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"args_string":"(name : String, value)","args_html":"(name : String, value)","location":{"filename":"src/vips/mutableimage.cr","line_number":26,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L26"},"def":{"name":"set","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gtype = get_typeof(name)\nif gtype == 0\n raise(VipsException.new(\"metadata item #{name} does not exist - use the set(gtype,name,value) overload to create and set\"))\nend\nset(gtype, name, value)\n"}},{"html_id":"to_s(io:IO)-instance-method","name":"to_s","doc":"Appends a short String representation of this object\nwhich includes its class name and its object address.\n\n```\nclass Person\n def initialize(@name : String, @age : Int32)\n end\nend\n\nPerson.new(\"John\", 32).to_s # => #\n```","summary":"

    Appends a short String representation of this object which includes its class name and its object address.

    ","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/mutableimage.cr","line_number":64,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/mutableimage.cr#L64"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"io << \"\""}}]},{"html_id":"vips/Vips/Operation","path":"Vips/Operation.html","kind":"class","full_name":"Vips::Operation","name":"Operation","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/operation.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"class_methods":[{"html_id":"build(operation:Operation)-class-method","name":"build","abstract":false,"args":[{"name":"operation","external_name":"operation","restriction":"Operation"}],"args_string":"(operation : Operation)","args_html":"(operation : Operation)","location":{"filename":"src/vips/operation.cr","line_number":17,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L17"},"def":{"name":"build","args":[{"name":"operation","external_name":"operation","restriction":"Operation"}],"visibility":"Public","body":"op = LibVips.vips_cache_operation_build(operation)\nif op.null?\n LibVips.vips_object_unref_outputs(operation.to_obj)\n raise(VipsException.new(\"unable to call operation\"))\nend\nnew(op)\n"}},{"html_id":"call(operation_name:String,kwargs:Optional|Nil,match_image:Image|Nil,*args)-class-method","name":"call","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional | ::Nil"},{"name":"match_image","external_name":"match_image","restriction":"Image | ::Nil"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(operation_name : String, kwargs : Optional | Nil, match_image : Image | Nil, *args)","args_html":"(operation_name : String, kwargs : Optional | Nil, match_image : Image | Nil, *args)","location":{"filename":"src/vips/operation.cr","line_number":53,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L53"},"def":{"name":"call","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional | ::Nil"},{"name":"match_image","external_name":"match_image","restriction":"Image | ::Nil"},{"name":"args","external_name":"args","restriction":""}],"splat_index":3,"visibility":"Public","body":"str_options = kwargs.try do |__arg0|\n (__arg0.delete(\"string_options\")).try(&.as_s)\nend\nintro = Introspect.get(operation_name)\nif intro.required_input.size != args.size\n raise(VipsException.new(\"unable to call #{operation_name}: #{args.size} arguments given, but #{intro.required_input.size} required\"))\nend\nif (!intro.mutable) && match_image.is_a?(MutableImage)\n raise(VipsException.new(\"unable to call #{operation_name}: operation must be mutable\"))\nend\nop = new(operation_name)\nif (stropt = str_options) && (!(op.set(stropt)))\n raise(VipsException.new(\"unable to call #{operation_name}\"))\nend\nif (mi = match_image) && (mx = intro.member_x?)\n op.set(mx.type, mx.name, mi)\nend\nintro.required_input.each_with_index do |arg, i|\n op.set(arg.type, match_image, arg.name, args[i])\nend\nif (kw = kwargs)\n kw.each do |key, val|\n if ( arg = intro.optional_input[key]?)\n op.set(arg.type, match_image, key, val)\n else\n if !(intro.optional_output.has_key?(key))\n raise(VipsException.new(\"#{operation_name} does not support optional argument: #{key}\"))\n end\n end\n end\nend\nvop = build(op)\nresults = Array(Type).new(intro.required_output.size)\nintro.required_output.each do |oarg|\n results << (vop.get(oarg.name))\nend\nif (kw = kwargs)\n optarg = Optional.new\n kw.each do |k, _|\n if intro.optional_output.has_key?(k)\n optarg[k] = vop.get(k)\n end\n end\n if optarg.empty?\n else\n results << (Type.new(optarg))\n end\n LibVips.vips_object_unref_outputs(op.to_obj)\nend\nresults.size == 1 ? results.first : results\n"}},{"html_id":"call(operation_name:String,kwargs:Optional,*args)-class-method","name":"call","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(operation_name : String, kwargs : Optional, *args)","args_html":"(operation_name : String, kwargs : Optional, *args)","location":{"filename":"src/vips/operation.cr","line_number":117,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L117"},"def":{"name":"call","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional"},{"name":"args","external_name":"args","restriction":""}],"splat_index":2,"visibility":"Public","body":"call(operation_name, kwargs, nil, *args)"}},{"html_id":"call(operation_name:String,*args)-class-method","name":"call","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(operation_name : String, *args)","args_html":"(operation_name : String, *args)","location":{"filename":"src/vips/operation.cr","line_number":121,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L121"},"def":{"name":"call","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"splat_index":1,"visibility":"Public","body":"call(operation_name, nil, nil, *args)"}}],"constructors":[{"html_id":"new(operation_name:String)-class-method","name":"new","doc":"Creates a new `VisOperation` with the specified nickname\nYou'll need to set any arguments and build the operation before you can use it.","summary":"

    Creates a new VisOperation with the specified nickname You'll need to set any arguments and build the operation before you can use it.

    ","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"args_string":"(operation_name : String)","args_html":"(operation_name : String)","location":{"filename":"src/vips/operation.cr","line_number":11,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L11"},"def":{"name":"new","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"visibility":"Public","body":"op = LibVips.vips_operation_new(operation_name)\nif op.null?\n raise(VipsException.new(\"no such operation #{operation_name}\"))\nend\nnew(op)\n"}},{"html_id":"new(ophandle:Pointer(LibVips::VipsOperation))-class-method","name":"new","abstract":false,"args":[{"name":"ophandle","external_name":"ophandle","restriction":"::Pointer(::LibVips::VipsOperation)"}],"args_string":"(ophandle : Pointer(LibVips::VipsOperation))","args_html":"(ophandle : Pointer(LibVips::VipsOperation))","location":{"filename":"src/vips/operation.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L5"},"def":{"name":"new","args":[{"name":"ophandle","external_name":"ophandle","restriction":"::Pointer(::LibVips::VipsOperation)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(ophandle)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"flags-instance-method","name":"flags","doc":"Lookup the set of flags for this operation","summary":"

    Lookup the set of flags for this operation

    ","abstract":false,"location":{"filename":"src/vips/operation.cr","line_number":49,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L49"},"def":{"name":"flags","visibility":"Public","body":"LibVips.vips_operation_get_flags(self)"}},{"html_id":"to_obj:Pointer(LibVips::VipsObject)-instance-method","name":"to_obj","abstract":false,"location":{"filename":"src/vips/operation.cr","line_number":130,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/operation.cr#L130"},"def":{"name":"to_obj","visibility":"Public","body":"@ohandle"}}]},{"html_id":"vips/Vips/Region","path":"Vips/Region.html","kind":"class","full_name":"Vips::Region","name":"Region","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/region.cr","line_number":6,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/region.cr#L6"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Wrap libvips VipsRegion object.\nA region is a small part of an image. You use regions to read pixels\nout of images without storing the entire image in memory.\nNote: At least libvips 8.8 is needed.","summary":"

    Wrap libvips VipsRegion object.

    ","constructors":[{"html_id":"new(image:Image)-class-method","name":"new","doc":"Make a region on an image","summary":"

    Make a region on an image

    ","abstract":false,"args":[{"name":"image","external_name":"image","restriction":"Image"}],"args_string":"(image : Image)","args_html":"(image : Image)","location":{"filename":"src/vips/region.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/region.cr#L12"},"def":{"name":"new","args":[{"name":"image","external_name":"image","restriction":"Image"}],"visibility":"Public","body":"vi = (LibVips.vips_region_new(image)).tap do |ret|\n if ret.null?\n raise(VipsException.new(\"unable to make region\"))\n end\nend\nnew(vi)\n"}}],"instance_methods":[{"html_id":"fetch(left:Int32,top:Int32,width:Int32,height:Int32):Bytes-instance-method","name":"fetch","doc":"Fetch an area of pixels.\n*left* Left edge of area to fetch.\n*top* Top edge of area to fetch.\n*width* Width of area to fetch.\n*height* Height of area to fetch.\nReturns `Bytes` filled with pixel data.","summary":"

    Fetch an area of pixels.

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32) : Bytes","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32) : Bytes","location":{"filename":"src/vips/region.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/region.cr#L35"},"def":{"name":"fetch","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"return_type":"Bytes","visibility":"Public","body":"ptr = (LibVips.vips_region_fetch(self, left, top, width, height, out size)).tap do |ret|\n if ret.null?\n raise(\"unable to fetch from region\")\n end\nend\nresult = Bytes.new(size)\nptr.copy_to(result.to_unsafe, size)\nVips.free(ptr.as(::Pointer(Void)))\nresult\n"}},{"html_id":"height:Int32-instance-method","name":"height","doc":"height of pixels held by region","summary":"

    height of pixels held by region

    ","abstract":false,"location":{"filename":"src/vips/region.cr","line_number":25,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/region.cr#L25"},"def":{"name":"height","return_type":"Int32","visibility":"Public","body":"LibVips.vips_region_height(self)"}},{"html_id":"width:Int32-instance-method","name":"width","doc":"width of pixels held by region","summary":"

    width of pixels held by region

    ","abstract":false,"location":{"filename":"src/vips/region.cr","line_number":20,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/region.cr#L20"},"def":{"name":"width","return_type":"Int32","visibility":"Public","body":"LibVips.vips_region_width(self)"}}]},{"html_id":"vips/Vips/Source","path":"Vips/Source.html","kind":"class","full_name":"Vips::Source","name":"Source","abstract":false,"superclass":{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},"ancestors":[{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/source.cr","line_number":7,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L7"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/SourceCustom","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Input connection. For example\n```\nsource = Vips::Source.new_from_file(\"k2.jpg\")\nimage = Vips::Image.new_from_source(source)\n```","summary":"

    Input connection.

    ","class_methods":[{"html_id":"new_from_descriptor(descriptor:Int)-class-method","name":"new_from_descriptor","doc":"Create a new source from a file descriptor. File descriptors are\nsmall integers, for example 0 is stdin.\n\nPass sources to `Image.new_from_source` to load images from\nthem.","summary":"

    Create a new source from a file descriptor.

    ","abstract":false,"args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int"}],"args_string":"(descriptor : Int)","args_html":"(descriptor : Int)","location":{"filename":"src/vips/source.cr","line_number":17,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L17"},"def":{"name":"new_from_descriptor","args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int"}],"visibility":"Public","body":"ptr = LibVips.vips_source_new_from_descriptor(descriptor)\nif ptr.null?\n raise(VipsException.new(\"can't create source from descriptor #{descriptor}\"))\nend\nnew(ptr)\n"}},{"html_id":"new_from_file(filename:String)-class-method","name":"new_from_file","doc":"Create a new source from a file name.\n\nPass sources to `Image.new_from_source` to load images from\nthem.","summary":"

    Create a new source from a file name.

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String)","args_html":"(filename : String)","location":{"filename":"src/vips/source.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L27"},"def":{"name":"new_from_file","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"visibility":"Public","body":"ptr = LibVips.vips_source_new_from_file(filename)\nif ptr.null?\n raise(VipsException.new(\"can't create source from filename #{filename}\"))\nend\nnew(ptr)\n"}},{"html_id":"new_from_memory(data:String|Bytes|IO)-class-method","name":"new_from_memory","doc":"Create a new source from an area of memory. Memory areas can be\nString, Bytes, or IO\n\nPass sources to `Image.new_from_source` to load images from\nthem.","summary":"

    Create a new source from an area of memory.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"}],"args_string":"(data : String | Bytes | IO)","args_html":"(data : String | Bytes | IO)","location":{"filename":"src/vips/source.cr","line_number":39,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L39"},"def":{"name":"new_from_memory","args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"}],"visibility":"Public","body":"buff = case data\nwhen String\n data.to_slice\nwhen IO\n data.gets_to_end.to_slice\nelse\n data\nend\nptr = LibVips.vips_source_new_from_memory(Box.box(buff), buff.bytesize)\nif ptr.null?\n raise(VipsException.new(\"can't create source from memory #{data}\"))\nend\n@@references << buff\nnew(ptr)\n"}}],"instance_methods":[{"html_id":"finalize-instance-method","name":"finalize","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":52,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L52"},"def":{"name":"finalize","visibility":"Public","body":"@@references.clear"}}]},{"html_id":"vips/Vips/SourceCustom","path":"Vips/SourceCustom.html","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom","abstract":false,"superclass":{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},"ancestors":[{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/source.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L79"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/SourceStream","kind":"class","full_name":"Vips::SourceStream","name":"SourceStream"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"A source you can attach action signal handlers to to implement\ncustom input types.\n\nFor example:\n\n```\nfile = File.open(\"some/file/name\", \"rb\")\nsource = Vips::SourceCustom.new\nsource.on_read { |slice| file.read(slice) }\nimage = Vips::Image.new_from_source(source)\n```\n\n(just an example -- of course in practice you'd use `Source#new_from_file`\nto read from a named file)","summary":"

    A source you can attach action signal handlers to to implement custom input types.

    ","constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":82,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L82"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"finalize-instance-method","name":"finalize","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":123,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L123"},"def":{"name":"finalize","visibility":"Public","body":"@@box.clear"}},{"html_id":"on_read(&block:Bytes->Int32)-instance-method","name":"on_read","doc":"The block is executed to read data from the source. The interface is\nexactly as IO::read, ie. it takes a slice and reads atmost `slice.size` and\nreturns a number of bytes read from the source, or 0 if the source is already\nat end of file.","summary":"

    The block is executed to read data from the source.

    ","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":93,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L93"},"def":{"name":"on_read","yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Bytes -> Int32)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"read\", LibVips::ReadCB.new do |_source, buff, size, data|\n if size <= 0\n next 0\n end\n callback = Box(typeof(block)).unbox(data)\n slice = Bytes.new(buff.as(::Pointer(UInt8)), size)\n callback.call(slice)\nend, boxed_data)\n"}},{"html_id":"on_seek(&block:Int64,IO::Seek->Int64)-instance-method","name":"on_seek","doc":"The block is executed to seek the source. The interface is exactly as\nIO::seek, ie. it should take an offset and whence, and return the\nnew read position.\n\nThis handler is optional -- if you do not attach a seek handler,\n`Source` will treat your source like an unseekable pipe object and\ndo extra caching.","summary":"

    The block is executed to seek the source.

    ","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":112,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L112"},"def":{"name":"on_seek","yields":2,"block_arity":2,"block_arg":{"name":"block","external_name":"block","restriction":"(Int64, IO::Seek -> Int64)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"seek\", LibVips::SeekCB.new do |_source, offset, whence, data|\n callback = Box(typeof(block)).unbox(data)\n ret = callback.call(offset, IO::Seek.from_value(whence))\n ret.to_i64\nend, boxed_data)\n"}}]},{"html_id":"vips/Vips/SourceStream","path":"Vips/SourceStream.html","kind":"class","full_name":"Vips::SourceStream","name":"SourceStream","abstract":false,"superclass":{"html_id":"vips/Vips/SourceCustom","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom"},"ancestors":[{"html_id":"vips/Vips/SourceCustom","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom"},{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/source.cr","line_number":129,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L129"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Source connected to a readable `IO`","summary":"

    Source connected to a readable IO

    ","class_methods":[{"html_id":"new_from_stream(io:IO)-class-method","name":"new_from_stream","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/source.cr","line_number":136,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/source.cr#L136"},"def":{"name":"new_from_stream","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"if io.closed?\n raise(VipsException.new(\"The stream should be readable\"))\nend\nnew(io)\n"}}]},{"html_id":"vips/Vips/Stats","path":"Vips/Stats.html","kind":"module","full_name":"Vips::Stats","name":"Stats","abstract":false,"locations":[{"filename":"src/vips/stats.cr","line_number":7,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/stats.cr#L7"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"vips/Vips/Stats","kind":"module","full_name":"Vips::Stats","name":"Stats"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"allocations:Int-instance-method","name":"allocations","doc":"Get the number of active allocations.","summary":"

    Get the number of active allocations.

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":11,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/stats.cr#L11"},"def":{"name":"allocations","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_allocs"}},{"html_id":"mem:Int-instance-method","name":"mem","doc":"Get the number of bytes currently allocated `vips_malloc()` and friends.\nlibvips uses this figure to decide when to start dropping cache.","summary":"

    Get the number of bytes currently allocated vips_malloc() and friends.

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":17,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/stats.cr#L17"},"def":{"name":"mem","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_mem"}},{"html_id":"mem_highwater:Int-instance-method","name":"mem_highwater","doc":"Returns the largest number of bytes simultaneously allocated via vips_tracked_malloc().\nHandy for estimating max memory requirements for a program.","summary":"

    Returns the largest number of bytes simultaneously allocated via vips_tracked_malloc().

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":23,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/stats.cr#L23"},"def":{"name":"mem_highwater","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_mem_highwater"}},{"html_id":"open_files:Int-instance-method","name":"open_files","doc":"Get the number of open files.","summary":"

    Get the number of open files.

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/stats.cr#L28"},"def":{"name":"open_files","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_files"}}]},{"html_id":"vips/Vips/Target","path":"Vips/Target.html","kind":"class","full_name":"Vips::Target","name":"Target","abstract":false,"superclass":{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},"ancestors":[{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/target.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L3"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/TargetCustom","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"an output connection","summary":"

    an output connection

    ","class_methods":[{"html_id":"new_to_descriptor(descriptor:Int32)-class-method","name":"new_to_descriptor","doc":"Make a new target to write to a file descriptor (a small integer).\n```\ntarget = Vips::Target.new_to_descriptor(STDOUT)\n```\nMakes a descriptor attached to `STDOUT`.\n\nYou can pass this target to (for example) `write_to_target`","summary":"

    Make a new target to write to a file descriptor (a small integer).

    ","abstract":false,"args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int32"}],"args_string":"(descriptor : Int32)","args_html":"(descriptor : Int32)","location":{"filename":"src/vips/target.cr","line_number":15,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L15"},"def":{"name":"new_to_descriptor","args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int32"}],"visibility":"Public","body":"ptr = (LibVips.vips_target_new_to_descriptor(descriptor)).tap do |ret|\n if ret.null?\n raise(VipsException.new(\"can't create output target to descriptor #{descriptor}\"))\n end\nend\nnew(ptr)\n"}},{"html_id":"new_to_file(filename:String)-class-method","name":"new_to_file","doc":"Make a new target to write to a file.\n```\ntarget = Vips::Target.new_to_file(\"myfile.jpg\")\n```\n\nYou can pass this target to (for example) `write_to_target`","summary":"

    Make a new target to write to a file.

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String)","args_html":"(filename : String)","location":{"filename":"src/vips/target.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L28"},"def":{"name":"new_to_file","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"visibility":"Public","body":"ptr = (LibVips.vips_target_new_to_file(filename)).tap do |ret|\n if ret.null?\n raise(VipsException.new(\"can't create output target to file #{filename}\"))\n end\nend\nnew(ptr)\n"}},{"html_id":"new_to_memory-class-method","name":"new_to_memory","doc":"Make a new target to write to an area of memory.\n```\ntarget = Vips::Target.new_to_memory\n```\n\nYou can pass this target to (for example) `write_to_target`\n\nAfter writing to target, fetch the bytes from the target object with:\n\n```\nbytes = target.blob\n```","summary":"

    Make a new target to write to an area of memory.

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L47"},"def":{"name":"new_to_memory","visibility":"Public","body":"ptr = LibVips.vips_target_new_to_memory.tap do |ret|\n if ret.null?\n raise(VipsException.new(\"can't create output target to memory\"))\n end\nend\nnew(ptr)\n"}}],"instance_methods":[{"html_id":"blob:Bytes-instance-method","name":"blob","doc":"Get the memory object held by the target when using `new_to_memory`","summary":"

    Get the memory object held by the target when using .new_to_memory

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":55,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L55"},"def":{"name":"blob","return_type":"Bytes","visibility":"Public","body":"(get(\"blob\")).as_bytes"}}]},{"html_id":"vips/Vips/TargetCustom","path":"Vips/TargetCustom.html","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom","abstract":false,"superclass":{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"},"ancestors":[{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/target.cr","line_number":66,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L66"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/TargetStream","kind":"class","full_name":"Vips::TargetStream","name":"TargetStream"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"`Target` you can connect handlers to implement behavior.","summary":"

    Target you can connect handlers to implement behavior.

    ","constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":69,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L69"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"on_finish(&block:->)-instance-method","name":"on_finish","doc":"The block is executed at the end of write. It should do any necessary\nfinishing action, such as closing a file or flushing IO","summary":"

    The block is executed at the end of write.

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":94,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L94"},"def":{"name":"on_finish","yields":0,"block_arity":0,"block_arg":{"name":"block","external_name":"block","restriction":"(->)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"finish\", LibVips::FinishCB.new do |_source, data|\n callback = Box(typeof(block)).unbox(data)\n callback.call\n @@box.delete(data)\n nil\nend, boxed_data)\n"}},{"html_id":"on_write(&block:Bytes->Int64)-instance-method","name":"on_write","doc":"The block is executed to write data to the target. The interface is\nexactly as IO::write, ie. it should write the bytes and return the\nnumber of bytes written.","summary":"

    The block is executed to write data to the target.

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L79"},"def":{"name":"on_write","yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Bytes -> Int64)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"write\", LibVips::WriteCB.new do |source, buff, size, data|\n if size <= 0\n next -1_i64\n end\n callback = Box(typeof(block)).unbox(data)\n slice = Bytes.new(buff, size)\n @@box.delete(data)\n callback.call(slice)\nend, boxed_data)\n"}}]},{"html_id":"vips/Vips/TargetStream","path":"Vips/TargetStream.html","kind":"class","full_name":"Vips::TargetStream","name":"TargetStream","abstract":false,"superclass":{"html_id":"vips/Vips/TargetCustom","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom"},"ancestors":[{"html_id":"vips/Vips/TargetCustom","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom"},{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/target.cr","line_number":108,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L108"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Target connected to a writeable `IO`","summary":"

    Target connected to a writeable IO

    ","class_methods":[{"html_id":"new_from_stream(io:IO)-class-method","name":"new_from_stream","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/target.cr","line_number":118,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/target.cr#L118"},"def":{"name":"new_from_stream","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"if io.closed?\n raise(VipsException.new(\"The stream should be write\"))\nend\nnew(io)\n"}}]},{"html_id":"vips/Vips/Type","path":"Vips/Type.html","kind":"struct","full_name":"Vips::Type","name":"Type","abstract":false,"superclass":{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vips.cr","line_number":226,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L226"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"constructors":[{"html_id":"new(value:Array(Float64)|Array(Int32)|Array(Vips::Image)|Bool|Float64|Int32|Slice(UInt8)|String|UInt64|Vips::GObject|Vips::Optional)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Array(::Float64) | ::Array(::Int32) | ::Array(::Vips::Image) | ::Bool | ::Float64 | ::Int32 | ::Slice(::UInt8) | ::String | ::UInt64 | ::Vips::GObject | ::Vips::Optional"}],"args_string":"(value : Array(Float64) | Array(Int32) | Array(Vips::Image) | Bool | Float64 | Int32 | Slice(UInt8) | String | UInt64 | Vips::GObject | Vips::Optional)","args_html":"(value : Array(Float64) | Array(Int32) | Array(Vips::Image) | Bool | Float64 | Int32 | Slice(UInt8) | String | UInt64 | Vips::GObject | Vips::Optional)","location":{"filename":"src/vips/vips.cr","line_number":232,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L232"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Array(::Float64) | ::Array(::Int32) | ::Array(::Vips::Image) | ::Bool | ::Float64 | ::Int32 | ::Slice(::UInt8) | ::String | ::UInt64 | ::Vips::GObject | ::Vips::Optional"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"as_a32-instance-method","name":"as_a32","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":261,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L261"},"def":{"name":"as_a32","visibility":"Public","body":"@value.as(Array(Int32))"}},{"html_id":"as_a64-instance-method","name":"as_a64","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":265,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L265"},"def":{"name":"as_a64","visibility":"Public","body":"@value.as(Array(Float64))"}},{"html_id":"as_aimg-instance-method","name":"as_aimg","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":273,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L273"},"def":{"name":"as_aimg","visibility":"Public","body":"@value.as(Array(Image))"}},{"html_id":"as_b-instance-method","name":"as_b","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":235,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L235"},"def":{"name":"as_b","visibility":"Public","body":"if @value.is_a?(Number)\n return as_i32 > 0\nend\n@value.as(Bool)\n"}},{"html_id":"as_bytes-instance-method","name":"as_bytes","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":257,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L257"},"def":{"name":"as_bytes","visibility":"Public","body":"@value.as(Bytes)"}},{"html_id":"as_enum(cls:Enum.class)-instance-method","name":"as_enum","abstract":false,"args":[{"name":"cls","external_name":"cls","restriction":"Enum.class"}],"args_string":"(cls : Enum.class)","args_html":"(cls : Enum.class)","location":{"filename":"src/vips/vips.cr","line_number":285,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L285"},"def":{"name":"as_enum","args":[{"name":"cls","external_name":"cls","restriction":"Enum.class"}],"visibility":"Public","body":"cls.from_value(as_i32)"}},{"html_id":"as_f64-instance-method","name":"as_f64","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":244,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L244"},"def":{"name":"as_f64","visibility":"Public","body":"@value.is_a?(Number) ? (@value.as(Number)).to_f : @value.as(Float64)"}},{"html_id":"as_h-instance-method","name":"as_h","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":277,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L277"},"def":{"name":"as_h","visibility":"Public","body":"@value.as(Optional)"}},{"html_id":"as_i32-instance-method","name":"as_i32","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":240,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L240"},"def":{"name":"as_i32","visibility":"Public","body":"@value.is_a?(Number) ? (@value.as(Number)).to_i : @value.as(Int32)"}},{"html_id":"as_image-instance-method","name":"as_image","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":269,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L269"},"def":{"name":"as_image","visibility":"Public","body":"@value.as(Image)"}},{"html_id":"as_o-instance-method","name":"as_o","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":281,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L281"},"def":{"name":"as_o","visibility":"Public","body":"@value.as(GObject)"}},{"html_id":"as_s-instance-method","name":"as_s","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":252,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L252"},"def":{"name":"as_s","visibility":"Public","body":"if @value.is_a?(String)\n return @value.as(String)\nend\n@value.to_s\n"}},{"html_id":"as_u64-instance-method","name":"as_u64","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":248,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L248"},"def":{"name":"as_u64","visibility":"Public","body":"@value.is_a?(Number) ? (@value.as(Number)).to_u64 : @value.as(UInt64)"}},{"html_id":"value:VALTYPE-instance-method","name":"value","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":230,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L230"},"def":{"name":"value","return_type":"VALTYPE","visibility":"Public","body":"@value"}}]},{"html_id":"vips/Vips/VipsBlob","path":"Vips/VipsBlob.html","kind":"class","full_name":"Vips::VipsBlob","name":"VipsBlob","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vipsblob.cr","line_number":4,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L4"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"constructors":[{"html_id":"new(handle:Pointer(LibVips::VipsBlob))-class-method","name":"new","abstract":false,"args":[{"name":"handle","external_name":"handle","restriction":"::Pointer(LibVips::VipsBlob)"}],"args_string":"(handle : Pointer(LibVips::VipsBlob))","args_html":"(handle : Pointer(LibVips::VipsBlob))","location":{"filename":"src/vips/vipsblob.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L5"},"def":{"name":"new","args":[{"name":"handle","external_name":"handle","restriction":"::Pointer(LibVips::VipsBlob)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(handle)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"get_data-instance-method","name":"get_data","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L9"},"def":{"name":"get_data","visibility":"Public","body":"data = LibVips.vips_blob_get(self, out size)\n{data, size}\n"}},{"html_id":"invalid?-instance-method","name":"invalid?","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L27"},"def":{"name":"invalid?","visibility":"Public","body":"@handle.null?"}},{"html_id":"length-instance-method","name":"length","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":14,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L14"},"def":{"name":"length","visibility":"Public","body":"@blob.area.length"}},{"html_id":"ref_count-instance-method","name":"ref_count","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L18"},"def":{"name":"ref_count","visibility":"Public","body":"@blob.area.count"}},{"html_id":"release-instance-method","name":"release","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":22,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsblob.cr#L22"},"def":{"name":"release","visibility":"Public","body":"if @handle.null?\n return\nend\nLibVips.vips_area_unref(Box.box(@blob.area))\n"}}]},{"html_id":"vips/Vips/VipsException","path":"Vips/VipsException.html","kind":"class","full_name":"Vips::VipsException","name":"VipsException","abstract":false,"superclass":{"html_id":"vips/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"vips/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vips.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"constructors":[{"html_id":"new(message)-class-method","name":"new","abstract":false,"args":[{"name":"message","external_name":"message","restriction":""}],"args_string":"(message)","args_html":"(message)","location":{"filename":"src/vips/vips.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vips.cr#L3"},"def":{"name":"new","args":[{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"vips/Vips/VipsObject","path":"Vips/VipsObject.html","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject","abstract":false,"superclass":{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},"ancestors":[{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vipsobject.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},{"html_id":"vips/Vips/Interpolate","kind":"class","full_name":"Vips::Interpolate","name":"Interpolate"},{"html_id":"vips/Vips/Operation","kind":"class","full_name":"Vips::Operation","name":"Operation"},{"html_id":"vips/Vips/Region","kind":"class","full_name":"Vips::Region","name":"Region"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"get(name:String)-instance-method","name":"get","doc":"Returns a GObject property","summary":"

    Returns a GObject property

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":22,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L22"},"def":{"name":"get","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"pspec = get_pspec(name)\nif pspec.nil?\n raise(VipsException.new(\"Property not found\"))\nend\ngtype = pspec.value_type\ngv = GValue.new\ngv.set_type(gtype)\nget(name, gv)\n"}},{"html_id":"get_blurb(name:String)-instance-method","name":"get_blurb","doc":"Get the blurb for a GObject property.","summary":"

    Get the blurb for a GObject property.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":58,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L58"},"def":{"name":"get_blurb","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"pspec = get_pspec(name)\nif pspec.nil?\n return \"\"\nend\nString.new(LibVips.g_param_spec_get_blurb(pspec))\n"}},{"html_id":"get_description-instance-method","name":"get_description","doc":"Get the description of a GObject.","summary":"

    Get the description of a GObject.

    ","abstract":false,"location":{"filename":"src/vips/vipsobject.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L65"},"def":{"name":"get_description","visibility":"Public","body":"String.new(LibVips.vips_object_get_description(@ohandle))"}},{"html_id":"get_pspec(name:String):LibVips::GParamSpec|Nil-instance-method","name":"get_pspec","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String) : LibVips::GParamSpec | Nil","args_html":"(name : String) : LibVips::GParamSpec | Nil","location":{"filename":"src/vips/vipsobject.cr","line_number":16,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L16"},"def":{"name":"get_pspec","args":[{"name":"name","external_name":"name","restriction":"String"}],"return_type":"LibVips::GParamSpec | ::Nil","visibility":"Public","body":"ret = LibVips.vips_object_get_argument(@ohandle, name, out pspec, out _, out _)\nret != 0 ? nil : pspec.value\n"}},{"html_id":"get_typeof(name:String)-instance-method","name":"get_typeof","doc":"Get the GType of a GObject property","summary":"

    Get the GType of a GObject property

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L47"},"def":{"name":"get_typeof","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"if pspec = get_pspec(name)\n pspec.value_type\nelse\n Vips.clear_error\n nil\nend"}},{"html_id":"post_close(&block:->)-instance-method","name":"post_close","abstract":false,"location":{"filename":"src/vips/vipsobject.cr","line_number":7,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L7"},"def":{"name":"post_close","yields":0,"block_arity":0,"block_arg":{"name":"block","external_name":"block","restriction":"(->)"},"visibility":"Public","body":"signal_connect(\"postclose\", block)"}},{"html_id":"print_all-instance-method","name":"print_all","doc":"Print a table of all active libvips objects. Handy for debugging.","summary":"

    Print a table of all active libvips objects.

    ","abstract":false,"location":{"filename":"src/vips/vipsobject.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L12"},"def":{"name":"print_all","visibility":"Public","body":"LibVips.vips_object_print_all"}},{"html_id":"set(gtype,name,value)-instance-method","name":"set","doc":"Set a GObject property. Value is converted to the property type, if possible.","summary":"

    Set a GObject property.

    ","abstract":false,"args":[{"name":"gtype","external_name":"gtype","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(gtype, name, value)","args_html":"(gtype, name, value)","location":{"filename":"src/vips/vipsobject.cr","line_number":33,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L33"},"def":{"name":"set","args":[{"name":"gtype","external_name":"gtype","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gv = GValue.new\ngv.set_type(gtype)\ngv.set(value)\nset(name, gv)\n"}},{"html_id":"set(options:String)-instance-method","name":"set","doc":"Set a series of properties using a String","summary":"

    Set a series of properties using a String

    ","abstract":false,"args":[{"name":"options","external_name":"options","restriction":"String"}],"args_string":"(options : String)","args_html":"(options : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":42,"url":"https://github.com/naqvis/crystal-vips/blob/340c4fcbbda0268ac2876e4bf16924989e792bf3/src/vips/vipsobject.cr#L42"},"def":{"name":"set","args":[{"name":"options","external_name":"options","restriction":"String"}],"visibility":"Public","body":"(LibVips.vips_object_set_from_string(@ohandle, options)) == 0"}}]}]}]}}) \ No newline at end of file +crystal_doc_search_index_callback({"repository_name":"vips","body":"# CrystalVips\n\n[![crystal-vips CI](https://github.com/naqvis/crystal-vips/actions/workflows/ci.yml/badge.svg)](https://github.com/naqvis/crystal-vips/actions/workflows/ci.yml)\n[![Latest release](https://img.shields.io/github/release/naqvis/crystal-vips.svg)](https://github.com/naqvis/crystal-vips/releases)\n[![Docs](https://img.shields.io/badge/docs-available-brightgreen.svg)](https://naqvis.github.io/crystal-vips/)\n\nProvides Crystal language interface to the [libvips](https://github.com/libvips/libvips) image processing library.\nPrograms that use `CrystalVips` don't manipulate images directly, instead they create pipelines of image processing operations starting from a source image. When the pipe is connected to a destination, the whole pipeline executes at once and in parallel, streaming the image from source to destination in a set of small fragments.\n\nBecause `CrystalVips` is parallel, its' quick, and because it doesn't need to keep entire images in memory, its light. For example, the libvips speed and memory use benchmark:\n\n[https://github.com/libvips/libvips/wiki/Speed-and-memory-use](https://github.com/libvips/libvips/wiki/Speed-and-memory-use)\n\n## Pre-requisites\n\nYou need to [install the libvips\nlibrary](https://www.libvips.org/install.html). It's in the linux package managers, homebrew and MacPorts, and there are Windows binaries on the vips website. For example, on Debian:\n\n```\nsudo apt-get install --no-install-recommends libvips42\n```\n\n(`--no-install-recommends` stops Debian installing a *lot* of extra packages)\n\nOr macOS:\n\n```\nbrew install vips\n```\n\n## Installation\n\n1. Add the dependency to your `shard.yml`:\n\n ```yaml\n dependencies:\n vips:\n github: naqvis/crystal-vips\n ```\n\n2. Run `shards install`\n\n## Usage\n\n```crystal\nrequire \"vips\"\n\nim = Vips::Image.new_from_file(\"image.jpg\")\n\n# put im at position (100, 100) in a 3000 x 3000 pixel image, \n# make the other pixels in the image by mirroring im up / down / \n# left / right, see\n# https://libvips.github.io/libvips/API/current/libvips-conversion.html#vips-embed\nim = im.embed(100, 100, 3000, 3000, extend: Vips::Enums::Extend::Mirror)\n\n# multiply the green (middle) band by 2, leave the other two alone\nim *= [1, 2, 1]\n\n# make an image from an array constant, convolve with it\nmask = Vips::Image.new_from_array([\n [-1, -1, -1],\n [-1, 16, -1],\n [-1, -1, -1]], 8)\nim = im.conv(mask, precision: Vips::Enums::Precision::Integer)\n\n# finally, write the result back to a file on disk\nim.write_to_file(\"output.jpg\")\n```\n\nRefer to [example](example) folder for more samples\n\n## Development\n\nTo run all tests:\n\n```\ncrystal spec\n```\n\n# Getting more help\n\nThe libvips website has a handy table of [all the libvips\noperators](http://libvips.github.io/libvips/API/current/func-list.html). Each\none links to the main API docs so you can see what you need to pass to it.\n\nA simple way to see the arguments for an operation is to try running it\nfrom the command-line. For example:\n\n```bash\n$ vips embed\nembed an image in a larger image\nusage:\n embed in out x y width height\nwhere:\n in - Input image, input VipsImage\n out - Output image, output VipsImage\n x - Left edge of input in output, input gint\n\t\t\tdefault: 0\n\t\t\tmin: -1000000000, max: 1000000000\n y - Top edge of input in output, input gint\n\t\t\tdefault: 0\n\t\t\tmin: -1000000000, max: 1000000000\n width - Image width in pixels, input gint\n\t\t\tdefault: 1\n\t\t\tmin: 1, max: 1000000000\n height - Image height in pixels, input gint\n\t\t\tdefault: 1\n\t\t\tmin: 1, max: 1000000000\noptional arguments:\n extend - How to generate the extra pixels, input VipsExtend\n\t\t\tdefault: black\n\t\t\tallowed: black, copy, repeat, mirror, white, background\n background - Color for background pixels, input VipsArrayDouble\noperation flags: sequential \n```\n\n## Contributing\n\n1. Fork it ()\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n\n## Contributors\n\n- [Ali Naqvi](https://github.com/naqvis) - creator and maintainer\n","program":{"html_id":"vips/toplevel","path":"toplevel.html","kind":"module","full_name":"Top Level Namespace","name":"Top Level Namespace","abstract":false,"locations":[],"repository_name":"vips","program":true,"enum":false,"alias":false,"const":false,"types":[{"html_id":"vips/Vips","path":"Vips.html","kind":"module","full_name":"Vips","name":"Vips","abstract":false,"locations":[{"filename":"src/vips.cr","line_number":25,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips.cr#L25"},{"filename":"src/vips/connection.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/connection.cr#L1"},{"filename":"src/vips/ext/image.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L12"},{"filename":"src/vips/ext/mutableimage.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L12"},{"filename":"src/vips/gobject.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L1"},{"filename":"src/vips/gvalue.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L1"},{"filename":"src/vips/image.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1"},{"filename":"src/vips/interpolate.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/interpolate.cr#L1"},{"filename":"src/vips/introspect.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L1"},{"filename":"src/vips/mutableimage.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L3"},{"filename":"src/vips/operation.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L1"},{"filename":"src/vips/region.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/region.cr#L1"},{"filename":"src/vips/source.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L1"},{"filename":"src/vips/stats.cr","line_number":6,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/stats.cr#L6"},{"filename":"src/vips/target.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L1"},{"filename":"src/vips/vips.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L1"},{"filename":"src/vips/vipsblob.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L3"},{"filename":"src/vips/vipsobject.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L1"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"VERSION","name":"VERSION","value":"{{ (`shards version \\\"/home/runner/work/crystal-vips/crystal-vips/src\\\"`).chomp.stringify }}"}],"doc":"Provides Crystal language interface to the [libvips](https://github.com/libvips/libvips) image processing library.\nPrograms that use libvips don't manipulate images directly, instead they create pipelines of image processing\noperations starting from a source image. When the pipe is connected to a destination, the whole pipeline executes\nat once and in parallel, streaming the image from source to destination in a set of small fragments.","summary":"

    Provides Crystal language interface to the libvips image processing library.

    ","class_methods":[{"html_id":"at_least_libvips?(x:Int,y:Int,z=0)-class-method","name":"at_least_libvips?","doc":"Is this at least libvips major.minor.[.patch]?","summary":"

    Is this at least libvips major.minor.[.patch]?

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int"},{"name":"y","external_name":"y","restriction":"Int"},{"name":"z","default_value":"0","external_name":"z","restriction":""}],"args_string":"(x : Int, y : Int, z = 0)","args_html":"(x : Int, y : Int, z = 0)","location":{"filename":"src/vips/vips.cr","line_number":87,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L87"},"def":{"name":"at_least_libvips?","args":[{"name":"x","external_name":"x","restriction":"Int"},{"name":"y","external_name":"y","restriction":"Int"},{"name":"z","default_value":"0","external_name":"z","restriction":""}],"visibility":"Public","body":"major = version(0)\nminor = version(1)\npatch = version(2)\n(major > x || ((major == x) && minor > y)) || (((major == x) && (minor == y)) && patch >= z)\n"}},{"html_id":"clear_error-class-method","name":"clear_error","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":186,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L186"},"def":{"name":"clear_error","visibility":"Public","body":"LibVips.vips_error_clear"}},{"html_id":"concurrency-class-method","name":"concurrency","doc":"Returns the number of worker threads that vips uses for image evaluation.","summary":"

    Returns the number of worker threads that vips uses for image evaluation.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L35"},"def":{"name":"concurrency","visibility":"Public","body":"LibVips.vips_concurrency_get"}},{"html_id":"concurrency=(value:Int)-class-method","name":"concurrency=","doc":"Set the size of the pools of worker threads vips uses for image evaluation.","summary":"

    Set the size of the pools of worker threads vips uses for image evaluation.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int"}],"args_string":"(value : Int)","args_html":"(value : Int)","location":{"filename":"src/vips/vips.cr","line_number":40,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L40"},"def":{"name":"concurrency=","args":[{"name":"value","external_name":"value","restriction":"Int"}],"visibility":"Public","body":"if value > 0\nelse\n value = default_concurrency\nend\nLibVips.vips_concurrency_set(value)\n"}},{"html_id":"default_concurrency:Int32-class-method","name":"default_concurrency","doc":"Track the original default concurrency so we can reset to it.","summary":"

    Track the original default concurrency so we can reset to it.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":206,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L206"},"def":{"name":"default_concurrency","return_type":"Int32","visibility":"Public","body":"if (value = @@default_concurrency).nil?\n @@default_concurrency = (LibVips.vips_concurrency_get)\nelse\n value\nend"}},{"html_id":"enum_values(type:LibC::ULong)-class-method","name":"enum_values","doc":"Get all values for a enum (GType).","summary":"

    Get all values for a enum (GType).

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":156,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L156"},"def":{"name":"enum_values","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"typecls = LibVips.g_type_class_ref(type)\nvalues = Hash(String, Int32).new\nif typecls.null?\n return values\nend\nenumcls = (typecls.as(Pointer(LibVips::GEnumClass))).value\nptr = enumcls.values.as(Pointer(LibVips::GEnumValue))\n0.upto(enumcls.n_values - 2) do |i|\n enumval = ptr[i]\n values[String.new(enumval.value_nick)] = enumval.value\nend\nvalues\n"}},{"html_id":"free(mem:Pointer(Void))-class-method","name":"free","doc":"Frees the memory pointed to by `mem`","summary":"

    Frees the memory pointed to by mem

    ","abstract":false,"args":[{"name":"mem","external_name":"mem","restriction":"::Pointer(Void)"}],"args_string":"(mem : Pointer(Void))","args_html":"(mem : Pointer(Void))","location":{"filename":"src/vips/vips.cr","line_number":172,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L172"},"def":{"name":"free","args":[{"name":"mem","external_name":"mem","restriction":"::Pointer(Void)"}],"visibility":"Public","body":"LibVips.g_free(mem)"}},{"html_id":"fundamental_type(type:LibC::ULong)-class-method","name":"fundamental_type","doc":"Extract the fundamental type ID portion.","summary":"

    Extract the fundamental type ID portion.

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":182,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L182"},"def":{"name":"fundamental_type","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"LibVips.g_type_fundamental(type)"}},{"html_id":"get_enums-class-method","name":"get_enums","doc":"Get a list of enums available within the libvips library.","summary":"

    Get a list of enums available within the libvips library.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":149,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L149"},"def":{"name":"get_enums","visibility":"Public","body":"enums = Array(String).new\nLibVips.vips_type_map(type_from_name(\"GEnum\"), ->enum_cb, Box.box(enums), nil)\nenums.sort!\n"}},{"html_id":"get_operations-class-method","name":"get_operations","doc":"Get a list of operations available within the libvips library.\nThis can be useful for documentation generators","summary":"

    Get a list of operations available within the libvips library.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":142,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L142"},"def":{"name":"get_operations","visibility":"Public","body":"nicknames = Array(String).new\nLibVips.vips_type_map(type_from_name(\"VipsOperation\"), ->ops_cb, Box.box(nicknames), nil)\nnicknames.uniq!.sort!\n"}},{"html_id":"get_suffixes-class-method","name":"get_suffixes","doc":"Get a list of all the filename suffixes supported by libvips\nNote: At least libvips 8.8 is needed","summary":"

    Get a list of all the filename suffixes supported by libvips Note: At least libvips 8.8 is needed

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":98,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L98"},"def":{"name":"get_suffixes","visibility":"Public","body":"names = [] of String\nif at_least_libvips?(8, 8)\nelse\n return names\nend\nptr = LibVips.vips_foreign_get_suffixes\ncount = 0\nwhile (strptr = (ptr + count).value)\n names << (String.new(strptr))\n LibVips.g_free(strptr)\n count = count + 1\nend\nLibVips.g_free(ptr)\nnames.uniq!.sort!\n"}},{"html_id":"init-class-method","name":"init","doc":"Starts up the world of VIPS.\nthis function is automatically called","summary":"

    Starts up the world of VIPS.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":16,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L16"},"def":{"name":"init","visibility":"Public","body":"@@initialized || (@@initialized = (LibVips.vips_init(\"CrystalVips\")) == 0)\nif @@initialized\nelse\n raise(VipsException.new(\"unable to initialize libvips\"))\nend\n@@initialized\n"}},{"html_id":"initialized?-class-method","name":"initialized?","doc":"Flag to tell if libvips has been initialized or not.\ninitialization will happen at the load of module and you should only call\n`Vips#init` if auto initialization failed.","summary":"

    Flag to tell if libvips has been initialized or not.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":193,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L193"},"def":{"name":"initialized?","visibility":"Public","body":"@@initialized"}},{"html_id":"leak=(leak)-class-method","name":"leak=","doc":"Enable or disable libvips leak checking.\nWhen enabled, libvips will check for object and area leaks on exit.\nEnabling this option will make libvips run slightly more slowly.","summary":"

    Enable or disable libvips leak checking.

    ","abstract":false,"args":[{"name":"leak","external_name":"leak","restriction":""}],"args_string":"(leak)","args_html":"(leak)","location":{"filename":"src/vips/vips.cr","line_number":198,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L198"},"def":{"name":"leak=","args":[{"name":"leak","external_name":"leak","restriction":""}],"visibility":"Public","body":"@@leak = leak"}},{"html_id":"leak?-class-method","name":"leak?","doc":"Enable or disable libvips leak checking.\nWhen enabled, libvips will check for object and area leaks on exit.\nEnabling this option will make libvips run slightly more slowly.","summary":"

    Enable or disable libvips leak checking.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":198,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L198"},"def":{"name":"leak?","visibility":"Public","body":"@@leak"}},{"html_id":"nickname(type:LibC::ULong)-class-method","name":"nickname","doc":"Return the nickname for a GType.","summary":"

    Return the nickname for a GType.

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":136,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L136"},"def":{"name":"nickname","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"String.new((LibVips.vips_nickname_find(type)) || Bytes.empty)"}},{"html_id":"profile(profile)-class-method","name":"profile","abstract":false,"args":[{"name":"profile","external_name":"profile","restriction":""}],"args_string":"(profile)","args_html":"(profile)","location":{"filename":"src/vips/vips.cr","line_number":30,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L30"},"def":{"name":"profile","args":[{"name":"profile","external_name":"profile","restriction":""}],"visibility":"Public","body":"@@profile = profile\nLibVips.vips_profile_set(@@profile)\n"}},{"html_id":"profile=(profile)-class-method","name":"profile=","doc":"Enable or disable libvips profile recording.\nIf set, vips will record profiling information, and dump it on program\nexit. These profiles can be analyzed with the `vipsprofile` program.","summary":"

    Enable or disable libvips profile recording.

    ","abstract":false,"args":[{"name":"profile","external_name":"profile","restriction":""}],"args_string":"(profile)","args_html":"(profile)","location":{"filename":"src/vips/vips.cr","line_number":203,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L203"},"def":{"name":"profile=","args":[{"name":"profile","external_name":"profile","restriction":""}],"visibility":"Public","body":"@@profile = profile"}},{"html_id":"profile?-class-method","name":"profile?","doc":"Enable or disable libvips profile recording.\nIf set, vips will record profiling information, and dump it on program\nexit. These profiles can be analyzed with the `vipsprofile` program.","summary":"

    Enable or disable libvips profile recording.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":203,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L203"},"def":{"name":"profile?","visibility":"Public","body":"@@profile"}},{"html_id":"report_leaks-class-method","name":"report_leaks","doc":"Reports leaks (hopefully there are none) it also tracks and reports peak memory use.","summary":"

    Reports leaks (hopefully there are none) it also tracks and reports peak memory use.

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":114,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L114"},"def":{"name":"report_leaks","visibility":"Public","body":"LibVips.vips_object_print_all\nputs(\"memory: #{Stats.allocations} allocations, #{Stats.mem} bytes\")\nputs(\"files: #{Stats.open_files} open\")\nputs(\"memory: high-water mark: #{Stats.mem_highwater}\")\nerrbuf = String.new(LibVips.vips_error_buffer)\nif errbuf.blank?\nelse\n puts(\"error buffer: #{errbuf}\")\nend\n"}},{"html_id":"shutdown-class-method","name":"shutdown","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":22,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L22"},"def":{"name":"shutdown","visibility":"Public","body":"LibVips.vips_shutdown"}},{"html_id":"type_from_name(nickname:String)-class-method","name":"type_from_name","doc":"Return the GType for a name.","summary":"

    Return the GType for a name.

    ","abstract":false,"args":[{"name":"nickname","external_name":"nickname","restriction":"String"}],"args_string":"(nickname : String)","args_html":"(nickname : String)","location":{"filename":"src/vips/vips.cr","line_number":177,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L177"},"def":{"name":"type_from_name","args":[{"name":"nickname","external_name":"nickname","restriction":"String"}],"visibility":"Public","body":"LibVips.g_type_from_name(nickname)"}},{"html_id":"typefind(basename:String,nickname:String)-class-method","name":"typefind","doc":"Get the GType for a name.\nLooks up the GType for a nickname. Types below basename in the type\nhierarchy are searched.","summary":"

    Get the GType for a name.

    ","abstract":false,"args":[{"name":"basename","external_name":"basename","restriction":"String"},{"name":"nickname","external_name":"nickname","restriction":"String"}],"args_string":"(basename : String, nickname : String)","args_html":"(basename : String, nickname : String)","location":{"filename":"src/vips/vips.cr","line_number":126,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L126"},"def":{"name":"typefind","args":[{"name":"basename","external_name":"basename","restriction":"String"},{"name":"nickname","external_name":"nickname","restriction":"String"}],"visibility":"Public","body":"LibVips.vips_type_find(basename, nickname)"}},{"html_id":"typename(type:LibC::ULong)-class-method","name":"typename","doc":"Returns the name for a GType","summary":"

    Returns the name for a GType

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"args_string":"(type : LibC::ULong)","args_html":"(type : LibC::ULong)","location":{"filename":"src/vips/vips.cr","line_number":131,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L131"},"def":{"name":"typename","args":[{"name":"type","external_name":"type","restriction":"LibC::ULong"}],"visibility":"Public","body":"String.new((LibVips.g_type_name(type)) || Bytes.empty)"}},{"html_id":"vector=(val:Bool)-class-method","name":"vector=","doc":"Enable SIMD and the run-time compiler.\nThis can give a nice speed-up, but can also be unstable on\nsome systems or with some versions of the run-time compiler.","summary":"

    Enable SIMD and the run-time compiler.

    ","abstract":false,"args":[{"name":"val","external_name":"val","restriction":"Bool"}],"args_string":"(val : Bool)","args_html":"(val : Bool)","location":{"filename":"src/vips/vips.cr","line_number":82,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L82"},"def":{"name":"vector=","args":[{"name":"val","external_name":"val","restriction":"Bool"}],"visibility":"Public","body":"LibVips.vips_vector_set_enabled(val)"}},{"html_id":"vector?-class-method","name":"vector?","doc":"Returns if SIMD and the run-time compiler is enabled or not","summary":"

    Returns if SIMD and the run-time compiler is enabled or not

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":75,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L75"},"def":{"name":"vector?","visibility":"Public","body":"LibVips.vips_vector_isenabled == 1"}},{"html_id":"version(flag:Int)-class-method","name":"version","doc":"Get the major, minor or patch version number of the libvips library.\nPass 0 to get the major version number\n1 to get minor, 2 to get patch.","summary":"

    Get the major, minor or patch version number of the libvips library.

    ","abstract":false,"args":[{"name":"flag","external_name":"flag","restriction":"Int"}],"args_string":"(flag : Int)","args_html":"(flag : Int)","location":{"filename":"src/vips/vips.cr","line_number":48,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L48"},"def":{"name":"version","args":[{"name":"flag","external_name":"flag","restriction":"Int"}],"visibility":"Public","body":"if (0..2).includes?(flag)\nelse\n raise(ArgumentError.new(\"Flag must be in the range of 0 to 2\"))\nend\n(LibVips.vips_version(flag)).tap do |v|\n if v < 0\n raise(VipsException.new(\"Unable to get library version\"))\n end\nend\n"}},{"html_id":"version-class-method","name":"version","doc":"Returns version of libvips in 3-byte integer","summary":"

    Returns version of libvips in 3-byte integer

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":56,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L56"},"def":{"name":"version","visibility":"Public","body":"if initialized\nelse\n raise(VipsException.new(\"Unable to initialize libvips\"))\nend\nvalue = 0\n0.upto(2) do |flag|\n if flag == 0\n value = version(flag)\n else\n value = (value << 8) + (version(flag))\n end\nend\nvalue\n"}},{"html_id":"version_string-class-method","name":"version_string","doc":"Returns version string of libvips","summary":"

    Returns version string of libvips

    ","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":70,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L70"},"def":{"name":"version_string","visibility":"Public","body":"String.new(LibVips.vips_version_string)"}}],"types":[{"html_id":"vips/Vips/Cache","path":"Vips/Cache.html","kind":"module","full_name":"Vips::Cache","name":"Cache","abstract":false,"locations":[{"filename":"src/vips/cache.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L1"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"class_methods":[{"html_id":"max:Int32-class-method","name":"max","doc":"Gets the maximum number of operations libvips keep in cache","summary":"

    Gets the maximum number of operations libvips keep in cache

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L3"},"def":{"name":"max","return_type":"Int32","visibility":"Public","body":"LibVips.vips_cache_get_max"}},{"html_id":"max=(value:Int32)-class-method","name":"max=","doc":"Sets the maximum number of operations libvips keep in cache","summary":"

    Sets the maximum number of operations libvips keep in cache

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32"}],"args_string":"(value : Int32)","args_html":"(value : Int32)","location":{"filename":"src/vips/cache.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L8"},"def":{"name":"max=","args":[{"name":"value","external_name":"value","restriction":"Int32"}],"visibility":"Public","body":"LibVips.vips_cache_set_max(value)"}},{"html_id":"max_files-class-method","name":"max_files","doc":"Gets the maximum amount of tracked files allowed.","summary":"

    Gets the maximum amount of tracked files allowed.

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":23,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L23"},"def":{"name":"max_files","visibility":"Public","body":"LibVips.vips_cache_get_max_files"}},{"html_id":"max_files=(value:Int32)-class-method","name":"max_files=","doc":"Sets the maximum amount of tracked files allowed.","summary":"

    Sets the maximum amount of tracked files allowed.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32"}],"args_string":"(value : Int32)","args_html":"(value : Int32)","location":{"filename":"src/vips/cache.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L28"},"def":{"name":"max_files=","args":[{"name":"value","external_name":"value","restriction":"Int32"}],"visibility":"Public","body":"LibVips.vips_cache_set_max_files(value)"}},{"html_id":"max_mem-class-method","name":"max_mem","doc":"Gets the maximum amount of tracked memory allowed.","summary":"

    Gets the maximum amount of tracked memory allowed.

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":13,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L13"},"def":{"name":"max_mem","visibility":"Public","body":"LibVips.vips_cache_get_max_mem"}},{"html_id":"max_mem=(value:LibC::SizeT)-class-method","name":"max_mem=","doc":"Sets the maximum amount of tracked memory allowed.","summary":"

    Sets the maximum amount of tracked memory allowed.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"LibC::SizeT"}],"args_string":"(value : LibC::SizeT)","args_html":"(value : LibC::SizeT)","location":{"filename":"src/vips/cache.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L18"},"def":{"name":"max_mem=","args":[{"name":"value","external_name":"value","restriction":"LibC::SizeT"}],"visibility":"Public","body":"LibVips.vips_cache_set_max_mem(value)"}},{"html_id":"size-class-method","name":"size","doc":"Gets the current number of operations in cache.","summary":"

    Gets the current number of operations in cache.

    ","abstract":false,"location":{"filename":"src/vips/cache.cr","line_number":33,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L33"},"def":{"name":"size","visibility":"Public","body":"LibVips.vips_cache_get_size"}},{"html_id":"trace=(value:Bool)-class-method","name":"trace=","doc":"Enable or disable libvips cache tracing.","summary":"

    Enable or disable libvips cache tracing.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"}],"args_string":"(value : Bool)","args_html":"(value : Bool)","location":{"filename":"src/vips/cache.cr","line_number":38,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/cache.cr#L38"},"def":{"name":"trace=","args":[{"name":"value","external_name":"value","restriction":"Bool"}],"visibility":"Public","body":"LibVips.vips_cache_set_trace(value)"}}]},{"html_id":"vips/Vips/Connection","path":"Vips/Connection.html","kind":"class","full_name":"Vips::Connection","name":"Connection","abstract":true,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/connection.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/connection.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"filename:String|Nil-instance-method","name":"filename","doc":"Get the filename associated with a connection or nil if there is no associated file","summary":"

    Get the filename associated with a connection or nil if there is no associated file

    ","abstract":false,"location":{"filename":"src/vips/connection.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/connection.cr#L8"},"def":{"name":"filename","return_type":"String | ::Nil","visibility":"Public","body":"ptr = LibVips.vips_connection_filename(@chandle)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"nick:String|Nil-instance-method","name":"nick","doc":"Make a human-readable name for a connection suitable for error messages","summary":"

    Make a human-readable name for a connection suitable for error messages

    ","abstract":false,"location":{"filename":"src/vips/connection.cr","line_number":14,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/connection.cr#L14"},"def":{"name":"nick","return_type":"String | ::Nil","visibility":"Public","body":"ptr = LibVips.vips_connection_nick(@chandle)\nptr.null? ? nil : String.new(ptr)\n"}}]},{"html_id":"vips/Vips/Enums","path":"Vips/Enums.html","kind":"module","full_name":"Vips::Enums","name":"Enums","abstract":false,"locations":[{"filename":"src/vips/enums.cr","line_number":1,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L1"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"types":[{"html_id":"vips/Vips/Enums/Access","path":"Vips/Enums/Access.html","kind":"enum","full_name":"Vips::Enums::Access","name":"Access","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L2"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Random","name":"Random","value":"0","doc":"Requests can come in any order","summary":"

    Requests can come in any order

    "},{"id":"Sequential","name":"Sequential","value":"1","doc":"Means requests will be top-to-bottom, but with some\namount of buffering behind the read point for small non-local\naccesses.","summary":"

    Means requests will be top-to-bottom, but with some amount of buffering behind the read point for small non-local accesses.

    "},{"id":"SequentialUnbuffered","name":"SequentialUnbuffered","value":"2","doc":"Top-to-bottom without a buffer.","summary":"

    Top-to-bottom without a buffer.

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"random?-instance-method","name":"random?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":4,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L4"},"def":{"name":"random?","visibility":"Public","body":"self == Random"}},{"html_id":"sequential?-instance-method","name":"sequential?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L9"},"def":{"name":"sequential?","visibility":"Public","body":"self == Sequential"}},{"html_id":"sequential_unbuffered?-instance-method","name":"sequential_unbuffered?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L12"},"def":{"name":"sequential_unbuffered?","visibility":"Public","body":"self == SequentialUnbuffered"}}]},{"html_id":"vips/Vips/Enums/Align","path":"Vips/Enums/Align.html","kind":"enum","full_name":"Vips::Enums::Align","name":"Align","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":16,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L16"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Low","name":"Low","value":"0","doc":"Align on the low coordinate edge","summary":"

    Align on the low coordinate edge

    "},{"id":"Centre","name":"Centre","value":"1","doc":"Align on the centre.","summary":"

    Align on the centre.

    "},{"id":"High","name":"High","value":"2","doc":"Align on the high coordinate edge","summary":"

    Align on the high coordinate edge

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"doc":"Various types of alignment.","summary":"

    Various types of alignment.

    ","instance_methods":[{"html_id":"centre?-instance-method","name":"centre?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":21,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L21"},"def":{"name":"centre?","visibility":"Public","body":"self == Centre"}},{"html_id":"high?-instance-method","name":"high?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":24,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L24"},"def":{"name":"high?","visibility":"Public","body":"self == High"}},{"html_id":"low?-instance-method","name":"low?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L18"},"def":{"name":"low?","visibility":"Public","body":"self == Low"}}]},{"html_id":"vips/Vips/Enums/Angle","path":"Vips/Enums/Angle.html","kind":"enum","full_name":"Vips::Enums::Angle","name":"Angle","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L27"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"D0","name":"D0","value":"0"},{"id":"D90","name":"D90","value":"1"},{"id":"D180","name":"D180","value":"2"},{"id":"D270","name":"D270","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"d0?-instance-method","name":"d0?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L28"},"def":{"name":"d0?","visibility":"Public","body":"self == D0"}},{"html_id":"d180?-instance-method","name":"d180?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":30,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L30"},"def":{"name":"d180?","visibility":"Public","body":"self == D180"}},{"html_id":"d270?-instance-method","name":"d270?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":31,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L31"},"def":{"name":"d270?","visibility":"Public","body":"self == D270"}},{"html_id":"d90?-instance-method","name":"d90?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":29,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L29"},"def":{"name":"d90?","visibility":"Public","body":"self == D90"}}]},{"html_id":"vips/Vips/Enums/Angle45","path":"Vips/Enums/Angle45.html","kind":"enum","full_name":"Vips::Enums::Angle45","name":"Angle45","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":34,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L34"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"D0","name":"D0","value":"0"},{"id":"D45","name":"D45","value":"1"},{"id":"D90","name":"D90","value":"2"},{"id":"D135","name":"D135","value":"3"},{"id":"D180","name":"D180","value":"4"},{"id":"D225","name":"D225","value":"5"},{"id":"D270","name":"D270","value":"6"},{"id":"D315","name":"D315","value":"7"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"d0?-instance-method","name":"d0?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L35"},"def":{"name":"d0?","visibility":"Public","body":"self == D0"}},{"html_id":"d135?-instance-method","name":"d135?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":38,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L38"},"def":{"name":"d135?","visibility":"Public","body":"self == D135"}},{"html_id":"d180?-instance-method","name":"d180?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":39,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L39"},"def":{"name":"d180?","visibility":"Public","body":"self == D180"}},{"html_id":"d225?-instance-method","name":"d225?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":40,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L40"},"def":{"name":"d225?","visibility":"Public","body":"self == D225"}},{"html_id":"d270?-instance-method","name":"d270?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":41,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L41"},"def":{"name":"d270?","visibility":"Public","body":"self == D270"}},{"html_id":"d315?-instance-method","name":"d315?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":42,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L42"},"def":{"name":"d315?","visibility":"Public","body":"self == D315"}},{"html_id":"d45?-instance-method","name":"d45?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":36,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L36"},"def":{"name":"d45?","visibility":"Public","body":"self == D45"}},{"html_id":"d90?-instance-method","name":"d90?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":37,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L37"},"def":{"name":"d90?","visibility":"Public","body":"self == D90"}}]},{"html_id":"vips/Vips/Enums/BandFormat","path":"Vips/Enums/BandFormat.html","kind":"enum","full_name":"Vips::Enums::BandFormat","name":"BandFormat","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":45,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L45"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Notset","name":"Notset","value":"-1"},{"id":"Uchar","name":"Uchar","value":"0"},{"id":"Char","name":"Char","value":"1"},{"id":"Ushort","name":"Ushort","value":"2"},{"id":"Short","name":"Short","value":"3"},{"id":"Uint","name":"Uint","value":"4"},{"id":"Int","name":"Int","value":"5"},{"id":"Float","name":"Float","value":"6"},{"id":"Complex","name":"Complex","value":"7"},{"id":"Double","name":"Double","value":"8"},{"id":"Dpcomplex","name":"Dpcomplex","value":"9"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"char?-instance-method","name":"char?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":48,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L48"},"def":{"name":"char?","visibility":"Public","body":"self == Char"}},{"html_id":"complex?-instance-method","name":"complex?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":54,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L54"},"def":{"name":"complex?","visibility":"Public","body":"self == Complex"}},{"html_id":"double?-instance-method","name":"double?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":55,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L55"},"def":{"name":"double?","visibility":"Public","body":"self == Double"}},{"html_id":"dpcomplex?-instance-method","name":"dpcomplex?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":56,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L56"},"def":{"name":"dpcomplex?","visibility":"Public","body":"self == Dpcomplex"}},{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":53,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L53"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"int?-instance-method","name":"int?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":52,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L52"},"def":{"name":"int?","visibility":"Public","body":"self == Int"}},{"html_id":"notset?-instance-method","name":"notset?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":46,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L46"},"def":{"name":"notset?","visibility":"Public","body":"self == Notset"}},{"html_id":"short?-instance-method","name":"short?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":50,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L50"},"def":{"name":"short?","visibility":"Public","body":"self == Short"}},{"html_id":"uchar?-instance-method","name":"uchar?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L47"},"def":{"name":"uchar?","visibility":"Public","body":"self == Uchar"}},{"html_id":"uint?-instance-method","name":"uint?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":51,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L51"},"def":{"name":"uint?","visibility":"Public","body":"self == Uint"}},{"html_id":"ushort?-instance-method","name":"ushort?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":49,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L49"},"def":{"name":"ushort?","visibility":"Public","body":"self == Ushort"}}]},{"html_id":"vips/Vips/Enums/BlendMode","path":"Vips/Enums/BlendMode.html","kind":"enum","full_name":"Vips::Enums::BlendMode","name":"BlendMode","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":59,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L59"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Clear","name":"Clear","value":"0"},{"id":"Source","name":"Source","value":"1"},{"id":"Over","name":"Over","value":"2"},{"id":"In","name":"In","value":"3"},{"id":"Out","name":"Out","value":"4"},{"id":"Atop","name":"Atop","value":"5"},{"id":"Dest","name":"Dest","value":"6"},{"id":"DestOver","name":"DestOver","value":"7"},{"id":"DestIn","name":"DestIn","value":"8"},{"id":"DestOut","name":"DestOut","value":"9"},{"id":"DestAtop","name":"DestAtop","value":"10"},{"id":"Xor","name":"Xor","value":"11"},{"id":"Add","name":"Add","value":"12"},{"id":"Saturate","name":"Saturate","value":"13"},{"id":"Multiply","name":"Multiply","value":"14"},{"id":"Screen","name":"Screen","value":"15"},{"id":"Overlay","name":"Overlay","value":"16"},{"id":"Darken","name":"Darken","value":"17"},{"id":"Lighten","name":"Lighten","value":"18"},{"id":"ColourDodge","name":"ColourDodge","value":"19"},{"id":"ColourBurn","name":"ColourBurn","value":"20"},{"id":"HardLight","name":"HardLight","value":"21"},{"id":"SoftLight","name":"SoftLight","value":"22"},{"id":"Difference","name":"Difference","value":"23"},{"id":"Exclusion","name":"Exclusion","value":"24"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"add?-instance-method","name":"add?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":72,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L72"},"def":{"name":"add?","visibility":"Public","body":"self == Add"}},{"html_id":"atop?-instance-method","name":"atop?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L65"},"def":{"name":"atop?","visibility":"Public","body":"self == Atop"}},{"html_id":"clear?-instance-method","name":"clear?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":60,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L60"},"def":{"name":"clear?","visibility":"Public","body":"self == Clear"}},{"html_id":"colour_burn?-instance-method","name":"colour_burn?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":80,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L80"},"def":{"name":"colour_burn?","visibility":"Public","body":"self == ColourBurn"}},{"html_id":"colour_dodge?-instance-method","name":"colour_dodge?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L79"},"def":{"name":"colour_dodge?","visibility":"Public","body":"self == ColourDodge"}},{"html_id":"darken?-instance-method","name":"darken?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":77,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L77"},"def":{"name":"darken?","visibility":"Public","body":"self == Darken"}},{"html_id":"dest?-instance-method","name":"dest?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":66,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L66"},"def":{"name":"dest?","visibility":"Public","body":"self == Dest"}},{"html_id":"dest_atop?-instance-method","name":"dest_atop?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":70,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L70"},"def":{"name":"dest_atop?","visibility":"Public","body":"self == DestAtop"}},{"html_id":"dest_in?-instance-method","name":"dest_in?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":68,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L68"},"def":{"name":"dest_in?","visibility":"Public","body":"self == DestIn"}},{"html_id":"dest_out?-instance-method","name":"dest_out?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":69,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L69"},"def":{"name":"dest_out?","visibility":"Public","body":"self == DestOut"}},{"html_id":"dest_over?-instance-method","name":"dest_over?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":67,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L67"},"def":{"name":"dest_over?","visibility":"Public","body":"self == DestOver"}},{"html_id":"difference?-instance-method","name":"difference?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":83,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L83"},"def":{"name":"difference?","visibility":"Public","body":"self == Difference"}},{"html_id":"exclusion?-instance-method","name":"exclusion?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":84,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L84"},"def":{"name":"exclusion?","visibility":"Public","body":"self == Exclusion"}},{"html_id":"hard_light?-instance-method","name":"hard_light?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":81,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L81"},"def":{"name":"hard_light?","visibility":"Public","body":"self == HardLight"}},{"html_id":"in?-instance-method","name":"in?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":63,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L63"},"def":{"name":"in?","visibility":"Public","body":"self == In"}},{"html_id":"lighten?-instance-method","name":"lighten?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":78,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L78"},"def":{"name":"lighten?","visibility":"Public","body":"self == Lighten"}},{"html_id":"multiply?-instance-method","name":"multiply?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":74,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L74"},"def":{"name":"multiply?","visibility":"Public","body":"self == Multiply"}},{"html_id":"out?-instance-method","name":"out?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":64,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L64"},"def":{"name":"out?","visibility":"Public","body":"self == Out"}},{"html_id":"over?-instance-method","name":"over?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":62,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L62"},"def":{"name":"over?","visibility":"Public","body":"self == Over"}},{"html_id":"overlay?-instance-method","name":"overlay?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":76,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L76"},"def":{"name":"overlay?","visibility":"Public","body":"self == Overlay"}},{"html_id":"saturate?-instance-method","name":"saturate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":73,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L73"},"def":{"name":"saturate?","visibility":"Public","body":"self == Saturate"}},{"html_id":"screen?-instance-method","name":"screen?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":75,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L75"},"def":{"name":"screen?","visibility":"Public","body":"self == Screen"}},{"html_id":"soft_light?-instance-method","name":"soft_light?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":82,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L82"},"def":{"name":"soft_light?","visibility":"Public","body":"self == SoftLight"}},{"html_id":"source?-instance-method","name":"source?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":61,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L61"},"def":{"name":"source?","visibility":"Public","body":"self == Source"}},{"html_id":"xor?-instance-method","name":"xor?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":71,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L71"},"def":{"name":"xor?","visibility":"Public","body":"self == Xor"}}]},{"html_id":"vips/Vips/Enums/Coding","path":"Vips/Enums/Coding.html","kind":"enum","full_name":"Vips::Enums::Coding","name":"Coding","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":87,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L87"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"None","name":"None","value":"0"},{"id":"Labq","name":"Labq","value":"2"},{"id":"Rad","name":"Rad","value":"6"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":88,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L88"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"labq?-instance-method","name":"labq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":90,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L90"},"def":{"name":"labq?","visibility":"Public","body":"self == Labq"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":89,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L89"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"rad?-instance-method","name":"rad?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":91,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L91"},"def":{"name":"rad?","visibility":"Public","body":"self == Rad"}}]},{"html_id":"vips/Vips/Enums/Combine","path":"Vips/Enums/Combine.html","kind":"enum","full_name":"Vips::Enums::Combine","name":"Combine","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":94,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L94"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Max","name":"Max","value":"0"},{"id":"Sum","name":"Sum","value":"1"},{"id":"Min","name":"Min","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"max?-instance-method","name":"max?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":95,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L95"},"def":{"name":"max?","visibility":"Public","body":"self == Max"}},{"html_id":"min?-instance-method","name":"min?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":97,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L97"},"def":{"name":"min?","visibility":"Public","body":"self == Min"}},{"html_id":"sum?-instance-method","name":"sum?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":96,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L96"},"def":{"name":"sum?","visibility":"Public","body":"self == Sum"}}]},{"html_id":"vips/Vips/Enums/CombineMode","path":"Vips/Enums/CombineMode.html","kind":"enum","full_name":"Vips::Enums::CombineMode","name":"CombineMode","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":100,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L100"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Set","name":"Set","value":"0"},{"id":"Add","name":"Add","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"add?-instance-method","name":"add?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":102,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L102"},"def":{"name":"add?","visibility":"Public","body":"self == Add"}},{"html_id":"set?-instance-method","name":"set?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":101,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L101"},"def":{"name":"set?","visibility":"Public","body":"self == Set"}}]},{"html_id":"vips/Vips/Enums/CompassDirection","path":"Vips/Enums/CompassDirection.html","kind":"enum","full_name":"Vips::Enums::CompassDirection","name":"CompassDirection","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":105,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L105"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Centre","name":"Centre","value":"0"},{"id":"North","name":"North","value":"1"},{"id":"East","name":"East","value":"2"},{"id":"South","name":"South","value":"3"},{"id":"West","name":"West","value":"4"},{"id":"NorthEast","name":"NorthEast","value":"5"},{"id":"SouthEast","name":"SouthEast","value":"6"},{"id":"SouthWest","name":"SouthWest","value":"7"},{"id":"NorthWest","name":"NorthWest","value":"8"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"centre?-instance-method","name":"centre?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":106,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L106"},"def":{"name":"centre?","visibility":"Public","body":"self == Centre"}},{"html_id":"east?-instance-method","name":"east?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":108,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L108"},"def":{"name":"east?","visibility":"Public","body":"self == East"}},{"html_id":"north?-instance-method","name":"north?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":107,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L107"},"def":{"name":"north?","visibility":"Public","body":"self == North"}},{"html_id":"north_east?-instance-method","name":"north_east?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":111,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L111"},"def":{"name":"north_east?","visibility":"Public","body":"self == NorthEast"}},{"html_id":"north_west?-instance-method","name":"north_west?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":114,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L114"},"def":{"name":"north_west?","visibility":"Public","body":"self == NorthWest"}},{"html_id":"south?-instance-method","name":"south?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":109,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L109"},"def":{"name":"south?","visibility":"Public","body":"self == South"}},{"html_id":"south_east?-instance-method","name":"south_east?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":112,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L112"},"def":{"name":"south_east?","visibility":"Public","body":"self == SouthEast"}},{"html_id":"south_west?-instance-method","name":"south_west?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":113,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L113"},"def":{"name":"south_west?","visibility":"Public","body":"self == SouthWest"}},{"html_id":"west?-instance-method","name":"west?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":110,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L110"},"def":{"name":"west?","visibility":"Public","body":"self == West"}}]},{"html_id":"vips/Vips/Enums/DemandStyle","path":"Vips/Enums/DemandStyle.html","kind":"enum","full_name":"Vips::Enums::DemandStyle","name":"DemandStyle","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":117,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L117"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"Smalltile","name":"Smalltile","value":"0"},{"id":"Fatstrip","name":"Fatstrip","value":"1"},{"id":"Thinstrip","name":"Thinstrip","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":118,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L118"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"fatstrip?-instance-method","name":"fatstrip?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":120,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L120"},"def":{"name":"fatstrip?","visibility":"Public","body":"self == Fatstrip"}},{"html_id":"smalltile?-instance-method","name":"smalltile?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":119,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L119"},"def":{"name":"smalltile?","visibility":"Public","body":"self == Smalltile"}},{"html_id":"thinstrip?-instance-method","name":"thinstrip?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":121,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L121"},"def":{"name":"thinstrip?","visibility":"Public","body":"self == Thinstrip"}}]},{"html_id":"vips/Vips/Enums/Direction","path":"Vips/Enums/Direction.html","kind":"enum","full_name":"Vips::Enums::Direction","name":"Direction","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":124,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L124"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Horizontal","name":"Horizontal","value":"0"},{"id":"Vertical","name":"Vertical","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"horizontal?-instance-method","name":"horizontal?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":125,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L125"},"def":{"name":"horizontal?","visibility":"Public","body":"self == Horizontal"}},{"html_id":"vertical?-instance-method","name":"vertical?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":126,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L126"},"def":{"name":"vertical?","visibility":"Public","body":"self == Vertical"}}]},{"html_id":"vips/Vips/Enums/Extend","path":"Vips/Enums/Extend.html","kind":"enum","full_name":"Vips::Enums::Extend","name":"Extend","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":129,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L129"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Black","name":"Black","value":"0"},{"id":"Copy","name":"Copy","value":"1"},{"id":"Repeat","name":"Repeat","value":"2"},{"id":"Mirror","name":"Mirror","value":"3"},{"id":"White","name":"White","value":"4"},{"id":"Background","name":"Background","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"background?-instance-method","name":"background?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":135,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L135"},"def":{"name":"background?","visibility":"Public","body":"self == Background"}},{"html_id":"black?-instance-method","name":"black?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":130,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L130"},"def":{"name":"black?","visibility":"Public","body":"self == Black"}},{"html_id":"copy?-instance-method","name":"copy?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":131,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L131"},"def":{"name":"copy?","visibility":"Public","body":"self == Copy"}},{"html_id":"mirror?-instance-method","name":"mirror?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":133,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L133"},"def":{"name":"mirror?","visibility":"Public","body":"self == Mirror"}},{"html_id":"repeat?-instance-method","name":"repeat?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":132,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L132"},"def":{"name":"repeat?","visibility":"Public","body":"self == Repeat"}},{"html_id":"white?-instance-method","name":"white?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":134,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L134"},"def":{"name":"white?","visibility":"Public","body":"self == White"}}]},{"html_id":"vips/Vips/Enums/FailOn","path":"Vips/Enums/FailOn.html","kind":"enum","full_name":"Vips::Enums::FailOn","name":"FailOn","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":142,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L142"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0","doc":"Never stop","summary":"

    Never stop

    "},{"id":"Truncated","name":"Truncated","value":"1","doc":"Stop on image truncated, nothing else","summary":"

    Stop on image truncated, nothing else

    "},{"id":"Error","name":"Error","value":"2","doc":"Stop on serious error or truncation","summary":"

    Stop on serious error or truncation

    "},{"id":"Warning","name":"Warning","value":"3","doc":"Stop on anything, even warnings","summary":"

    Stop on anything, even warnings

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"doc":"How sensitive loaders are to errors, from never stop (very insensitive), to\nstop on the smallest warning (very sensitive).\n\nEach one implies the ones before it, so `Error` implies `Truncated`","summary":"

    How sensitive loaders are to errors, from never stop (very insensitive), to stop on the smallest warning (very sensitive).

    ","instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":150,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L150"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":144,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L144"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"truncated?-instance-method","name":"truncated?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":147,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L147"},"def":{"name":"truncated?","visibility":"Public","body":"self == Truncated"}},{"html_id":"warning?-instance-method","name":"warning?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":153,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L153"},"def":{"name":"warning?","visibility":"Public","body":"self == Warning"}}]},{"html_id":"vips/Vips/Enums/ForeignDzContainer","path":"Vips/Enums/ForeignDzContainer.html","kind":"enum","full_name":"Vips::Enums::ForeignDzContainer","name":"ForeignDzContainer","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":156,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L156"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Fs","name":"Fs","value":"0"},{"id":"Zip","name":"Zip","value":"1"},{"id":"Szi","name":"Szi","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"fs?-instance-method","name":"fs?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":157,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L157"},"def":{"name":"fs?","visibility":"Public","body":"self == Fs"}},{"html_id":"szi?-instance-method","name":"szi?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":159,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L159"},"def":{"name":"szi?","visibility":"Public","body":"self == Szi"}},{"html_id":"zip?-instance-method","name":"zip?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":158,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L158"},"def":{"name":"zip?","visibility":"Public","body":"self == Zip"}}]},{"html_id":"vips/Vips/Enums/ForeignDzDepth","path":"Vips/Enums/ForeignDzDepth.html","kind":"enum","full_name":"Vips::Enums::ForeignDzDepth","name":"ForeignDzDepth","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":162,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L162"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Onepixel","name":"Onepixel","value":"0"},{"id":"Onetile","name":"Onetile","value":"1"},{"id":"One","name":"One","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"one?-instance-method","name":"one?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":165,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L165"},"def":{"name":"one?","visibility":"Public","body":"self == One"}},{"html_id":"onepixel?-instance-method","name":"onepixel?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":163,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L163"},"def":{"name":"onepixel?","visibility":"Public","body":"self == Onepixel"}},{"html_id":"onetile?-instance-method","name":"onetile?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":164,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L164"},"def":{"name":"onetile?","visibility":"Public","body":"self == Onetile"}}]},{"html_id":"vips/Vips/Enums/ForeignDzLayout","path":"Vips/Enums/ForeignDzLayout.html","kind":"enum","full_name":"Vips::Enums::ForeignDzLayout","name":"ForeignDzLayout","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":168,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L168"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Dz","name":"Dz","value":"0"},{"id":"Zoomify","name":"Zoomify","value":"1"},{"id":"Google","name":"Google","value":"2"},{"id":"Iiif","name":"Iiif","value":"3"},{"id":"Iiif3","name":"Iiif3","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"dz?-instance-method","name":"dz?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":169,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L169"},"def":{"name":"dz?","visibility":"Public","body":"self == Dz"}},{"html_id":"google?-instance-method","name":"google?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":171,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L171"},"def":{"name":"google?","visibility":"Public","body":"self == Google"}},{"html_id":"iiif3?-instance-method","name":"iiif3?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":173,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L173"},"def":{"name":"iiif3?","visibility":"Public","body":"self == Iiif3"}},{"html_id":"iiif?-instance-method","name":"iiif?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":172,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L172"},"def":{"name":"iiif?","visibility":"Public","body":"self == Iiif"}},{"html_id":"zoomify?-instance-method","name":"zoomify?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":170,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L170"},"def":{"name":"zoomify?","visibility":"Public","body":"self == Zoomify"}}]},{"html_id":"vips/Vips/Enums/ForeignFlags","path":"Vips/Enums/ForeignFlags.html","kind":"enum","full_name":"Vips::Enums::ForeignFlags","name":"ForeignFlags","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":414,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L414"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Partial","name":"Partial","value":"1"},{"id":"Bigendian","name":"Bigendian","value":"2"},{"id":"Sequential","name":"Sequential","value":"4"},{"id":"None","name":"None","value":"0"},{"id":"All","name":"All","value":"7"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"bigendian?-instance-method","name":"bigendian?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":416,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L416"},"def":{"name":"bigendian?","visibility":"Public","body":"self.includes?(Bigendian)"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":414,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L414"},"def":{"name":"none?","visibility":"Public","body":"value == 0"}},{"html_id":"partial?-instance-method","name":"partial?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":415,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L415"},"def":{"name":"partial?","visibility":"Public","body":"self.includes?(Partial)"}},{"html_id":"sequential?-instance-method","name":"sequential?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":417,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L417"},"def":{"name":"sequential?","visibility":"Public","body":"self.includes?(Sequential)"}}]},{"html_id":"vips/Vips/Enums/ForeignHeifCompression","path":"Vips/Enums/ForeignHeifCompression.html","kind":"enum","full_name":"Vips::Enums::ForeignHeifCompression","name":"ForeignHeifCompression","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":176,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L176"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Hevc","name":"Hevc","value":"1"},{"id":"Avc","name":"Avc","value":"2"},{"id":"Jpeg","name":"Jpeg","value":"3"},{"id":"Av1","name":"Av1","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"av1?-instance-method","name":"av1?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":180,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L180"},"def":{"name":"av1?","visibility":"Public","body":"self == Av1"}},{"html_id":"avc?-instance-method","name":"avc?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":178,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L178"},"def":{"name":"avc?","visibility":"Public","body":"self == Avc"}},{"html_id":"hevc?-instance-method","name":"hevc?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":177,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L177"},"def":{"name":"hevc?","visibility":"Public","body":"self == Hevc"}},{"html_id":"jpeg?-instance-method","name":"jpeg?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":179,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L179"},"def":{"name":"jpeg?","visibility":"Public","body":"self == Jpeg"}}]},{"html_id":"vips/Vips/Enums/ForeignJpegSubsample","path":"Vips/Enums/ForeignJpegSubsample.html","kind":"enum","full_name":"Vips::Enums::ForeignJpegSubsample","name":"ForeignJpegSubsample","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":183,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L183"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"On","name":"On","value":"1"},{"id":"Off","name":"Off","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":184,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L184"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":186,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L186"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":185,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L185"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"vips/Vips/Enums/ForeignPpmFormat","path":"Vips/Enums/ForeignPpmFormat.html","kind":"enum","full_name":"Vips::Enums::ForeignPpmFormat","name":"ForeignPpmFormat","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":189,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L189"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pbm","name":"Pbm","value":"0"},{"id":"Pgm","name":"Pgm","value":"1"},{"id":"Ppm","name":"Ppm","value":"2"},{"id":"Pfm","name":"Pfm","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"pbm?-instance-method","name":"pbm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":190,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L190"},"def":{"name":"pbm?","visibility":"Public","body":"self == Pbm"}},{"html_id":"pfm?-instance-method","name":"pfm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":193,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L193"},"def":{"name":"pfm?","visibility":"Public","body":"self == Pfm"}},{"html_id":"pgm?-instance-method","name":"pgm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":191,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L191"},"def":{"name":"pgm?","visibility":"Public","body":"self == Pgm"}},{"html_id":"ppm?-instance-method","name":"ppm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":192,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L192"},"def":{"name":"ppm?","visibility":"Public","body":"self == Ppm"}}]},{"html_id":"vips/Vips/Enums/ForeignSubsample","path":"Vips/Enums/ForeignSubsample.html","kind":"enum","full_name":"Vips::Enums::ForeignSubsample","name":"ForeignSubsample","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":196,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L196"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Auto","name":"Auto","value":"0"},{"id":"On","name":"On","value":"1"},{"id":"Off","name":"Off","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"auto?-instance-method","name":"auto?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":197,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L197"},"def":{"name":"auto?","visibility":"Public","body":"self == Auto"}},{"html_id":"off?-instance-method","name":"off?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":199,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L199"},"def":{"name":"off?","visibility":"Public","body":"self == Off"}},{"html_id":"on?-instance-method","name":"on?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":198,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L198"},"def":{"name":"on?","visibility":"Public","body":"self == On"}}]},{"html_id":"vips/Vips/Enums/ForeignTiffCompression","path":"Vips/Enums/ForeignTiffCompression.html","kind":"enum","full_name":"Vips::Enums::ForeignTiffCompression","name":"ForeignTiffCompression","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":202,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L202"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Jpeg","name":"Jpeg","value":"1"},{"id":"Deflate","name":"Deflate","value":"2"},{"id":"Packbits","name":"Packbits","value":"3"},{"id":"Ccittfax4","name":"Ccittfax4","value":"4"},{"id":"Lzw","name":"Lzw","value":"5"},{"id":"Webp","name":"Webp","value":"6"},{"id":"Zstd","name":"Zstd","value":"7"},{"id":"Jp2k","name":"Jp2k","value":"8"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"ccittfax4?-instance-method","name":"ccittfax4?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":207,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L207"},"def":{"name":"ccittfax4?","visibility":"Public","body":"self == Ccittfax4"}},{"html_id":"deflate?-instance-method","name":"deflate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":205,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L205"},"def":{"name":"deflate?","visibility":"Public","body":"self == Deflate"}},{"html_id":"jp2k?-instance-method","name":"jp2k?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":211,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L211"},"def":{"name":"jp2k?","visibility":"Public","body":"self == Jp2k"}},{"html_id":"jpeg?-instance-method","name":"jpeg?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":204,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L204"},"def":{"name":"jpeg?","visibility":"Public","body":"self == Jpeg"}},{"html_id":"lzw?-instance-method","name":"lzw?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":208,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L208"},"def":{"name":"lzw?","visibility":"Public","body":"self == Lzw"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":203,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L203"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"packbits?-instance-method","name":"packbits?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":206,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L206"},"def":{"name":"packbits?","visibility":"Public","body":"self == Packbits"}},{"html_id":"webp?-instance-method","name":"webp?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":209,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L209"},"def":{"name":"webp?","visibility":"Public","body":"self == Webp"}},{"html_id":"zstd?-instance-method","name":"zstd?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":210,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L210"},"def":{"name":"zstd?","visibility":"Public","body":"self == Zstd"}}]},{"html_id":"vips/Vips/Enums/ForeignTiffPredictor","path":"Vips/Enums/ForeignTiffPredictor.html","kind":"enum","full_name":"Vips::Enums::ForeignTiffPredictor","name":"ForeignTiffPredictor","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":214,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L214"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"1"},{"id":"Horizontal","name":"Horizontal","value":"2"},{"id":"Float","name":"Float","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":217,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L217"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"horizontal?-instance-method","name":"horizontal?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":216,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L216"},"def":{"name":"horizontal?","visibility":"Public","body":"self == Horizontal"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":215,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L215"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"vips/Vips/Enums/ForeignTiffResunit","path":"Vips/Enums/ForeignTiffResunit.html","kind":"enum","full_name":"Vips::Enums::ForeignTiffResunit","name":"ForeignTiffResunit","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":220,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L220"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Cm","name":"Cm","value":"0"},{"id":"Inch","name":"Inch","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"cm?-instance-method","name":"cm?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":221,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L221"},"def":{"name":"cm?","visibility":"Public","body":"self == Cm"}},{"html_id":"inch?-instance-method","name":"inch?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":222,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L222"},"def":{"name":"inch?","visibility":"Public","body":"self == Inch"}}]},{"html_id":"vips/Vips/Enums/ForeignWebpPreset","path":"Vips/Enums/ForeignWebpPreset.html","kind":"enum","full_name":"Vips::Enums::ForeignWebpPreset","name":"ForeignWebpPreset","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":225,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L225"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Default","name":"Default","value":"0"},{"id":"Picture","name":"Picture","value":"1"},{"id":"Photo","name":"Photo","value":"2"},{"id":"Drawing","name":"Drawing","value":"3"},{"id":"Icon","name":"Icon","value":"4"},{"id":"Text","name":"Text","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"default?-instance-method","name":"default?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":226,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L226"},"def":{"name":"default?","visibility":"Public","body":"self == Default"}},{"html_id":"drawing?-instance-method","name":"drawing?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":229,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L229"},"def":{"name":"drawing?","visibility":"Public","body":"self == Drawing"}},{"html_id":"icon?-instance-method","name":"icon?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":230,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L230"},"def":{"name":"icon?","visibility":"Public","body":"self == Icon"}},{"html_id":"photo?-instance-method","name":"photo?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":228,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L228"},"def":{"name":"photo?","visibility":"Public","body":"self == Photo"}},{"html_id":"picture?-instance-method","name":"picture?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":227,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L227"},"def":{"name":"picture?","visibility":"Public","body":"self == Picture"}},{"html_id":"text?-instance-method","name":"text?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":231,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L231"},"def":{"name":"text?","visibility":"Public","body":"self == Text"}}]},{"html_id":"vips/Vips/Enums/ImageType","path":"Vips/Enums/ImageType.html","kind":"enum","full_name":"Vips::Enums::ImageType","name":"ImageType","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":234,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L234"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"None","name":"None","value":"0"},{"id":"Setbuf","name":"Setbuf","value":"1"},{"id":"SetbufForeign","name":"SetbufForeign","value":"2"},{"id":"Openin","name":"Openin","value":"3"},{"id":"Mmapin","name":"Mmapin","value":"4"},{"id":"Mmapinrw","name":"Mmapinrw","value":"5"},{"id":"Openout","name":"Openout","value":"6"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":235,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L235"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"mmapin?-instance-method","name":"mmapin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":240,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L240"},"def":{"name":"mmapin?","visibility":"Public","body":"self == Mmapin"}},{"html_id":"mmapinrw?-instance-method","name":"mmapinrw?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":241,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L241"},"def":{"name":"mmapinrw?","visibility":"Public","body":"self == Mmapinrw"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":236,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L236"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"openin?-instance-method","name":"openin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":239,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L239"},"def":{"name":"openin?","visibility":"Public","body":"self == Openin"}},{"html_id":"openout?-instance-method","name":"openout?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":242,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L242"},"def":{"name":"openout?","visibility":"Public","body":"self == Openout"}},{"html_id":"setbuf?-instance-method","name":"setbuf?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":237,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L237"},"def":{"name":"setbuf?","visibility":"Public","body":"self == Setbuf"}},{"html_id":"setbuf_foreign?-instance-method","name":"setbuf_foreign?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":238,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L238"},"def":{"name":"setbuf_foreign?","visibility":"Public","body":"self == SetbufForeign"}}]},{"html_id":"vips/Vips/Enums/Intent","path":"Vips/Enums/Intent.html","kind":"enum","full_name":"Vips::Enums::Intent","name":"Intent","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":245,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L245"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Perceptual","name":"Perceptual","value":"0"},{"id":"Relative","name":"Relative","value":"1"},{"id":"Saturation","name":"Saturation","value":"2"},{"id":"Absolute","name":"Absolute","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"absolute?-instance-method","name":"absolute?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":249,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L249"},"def":{"name":"absolute?","visibility":"Public","body":"self == Absolute"}},{"html_id":"perceptual?-instance-method","name":"perceptual?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":246,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L246"},"def":{"name":"perceptual?","visibility":"Public","body":"self == Perceptual"}},{"html_id":"relative?-instance-method","name":"relative?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":247,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L247"},"def":{"name":"relative?","visibility":"Public","body":"self == Relative"}},{"html_id":"saturation?-instance-method","name":"saturation?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":248,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L248"},"def":{"name":"saturation?","visibility":"Public","body":"self == Saturation"}}]},{"html_id":"vips/Vips/Enums/Interesting","path":"Vips/Enums/Interesting.html","kind":"enum","full_name":"Vips::Enums::Interesting","name":"Interesting","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":252,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L252"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Centre","name":"Centre","value":"1"},{"id":"Entropy","name":"Entropy","value":"2"},{"id":"Attention","name":"Attention","value":"3"},{"id":"Low","name":"Low","value":"4"},{"id":"High","name":"High","value":"5"},{"id":"All","name":"All","value":"6"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"all?-instance-method","name":"all?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":259,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L259"},"def":{"name":"all?","visibility":"Public","body":"self == All"}},{"html_id":"attention?-instance-method","name":"attention?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":256,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L256"},"def":{"name":"attention?","visibility":"Public","body":"self == Attention"}},{"html_id":"centre?-instance-method","name":"centre?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":254,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L254"},"def":{"name":"centre?","visibility":"Public","body":"self == Centre"}},{"html_id":"entropy?-instance-method","name":"entropy?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":255,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L255"},"def":{"name":"entropy?","visibility":"Public","body":"self == Entropy"}},{"html_id":"high?-instance-method","name":"high?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":258,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L258"},"def":{"name":"high?","visibility":"Public","body":"self == High"}},{"html_id":"low?-instance-method","name":"low?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":257,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L257"},"def":{"name":"low?","visibility":"Public","body":"self == Low"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":253,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L253"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"vips/Vips/Enums/Interpretation","path":"Vips/Enums/Interpretation.html","kind":"enum","full_name":"Vips::Enums::Interpretation","name":"Interpretation","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":262,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L262"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Error","name":"Error","value":"-1"},{"id":"Multiband","name":"Multiband","value":"0"},{"id":"Bw","name":"Bw","value":"1"},{"id":"Histogram","name":"Histogram","value":"10"},{"id":"Xyz","name":"Xyz","value":"12"},{"id":"Lab","name":"Lab","value":"13"},{"id":"Cmyk","name":"Cmyk","value":"15"},{"id":"Labq","name":"Labq","value":"16"},{"id":"Rgb","name":"Rgb","value":"17"},{"id":"Cmc","name":"Cmc","value":"18"},{"id":"Lch","name":"Lch","value":"19"},{"id":"Labs","name":"Labs","value":"21"},{"id":"Srgb","name":"Srgb","value":"22"},{"id":"Yxy","name":"Yxy","value":"23"},{"id":"Fourier","name":"Fourier","value":"24"},{"id":"Rgb16","name":"Rgb16","value":"25"},{"id":"Grey16","name":"Grey16","value":"26"},{"id":"Matrix","name":"Matrix","value":"27"},{"id":"Scrgb","name":"Scrgb","value":"28"},{"id":"Hsv","name":"Hsv","value":"29"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"bw?-instance-method","name":"bw?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":265,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L265"},"def":{"name":"bw?","visibility":"Public","body":"self == Bw"}},{"html_id":"cmc?-instance-method","name":"cmc?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":272,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L272"},"def":{"name":"cmc?","visibility":"Public","body":"self == Cmc"}},{"html_id":"cmyk?-instance-method","name":"cmyk?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":269,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L269"},"def":{"name":"cmyk?","visibility":"Public","body":"self == Cmyk"}},{"html_id":"error?-instance-method","name":"error?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":263,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L263"},"def":{"name":"error?","visibility":"Public","body":"self == Error"}},{"html_id":"fourier?-instance-method","name":"fourier?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":277,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L277"},"def":{"name":"fourier?","visibility":"Public","body":"self == Fourier"}},{"html_id":"grey16?-instance-method","name":"grey16?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":279,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L279"},"def":{"name":"grey16?","visibility":"Public","body":"self == Grey16"}},{"html_id":"histogram?-instance-method","name":"histogram?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":266,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L266"},"def":{"name":"histogram?","visibility":"Public","body":"self == Histogram"}},{"html_id":"hsv?-instance-method","name":"hsv?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":282,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L282"},"def":{"name":"hsv?","visibility":"Public","body":"self == Hsv"}},{"html_id":"lab?-instance-method","name":"lab?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":268,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L268"},"def":{"name":"lab?","visibility":"Public","body":"self == Lab"}},{"html_id":"labq?-instance-method","name":"labq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":270,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L270"},"def":{"name":"labq?","visibility":"Public","body":"self == Labq"}},{"html_id":"labs?-instance-method","name":"labs?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":274,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L274"},"def":{"name":"labs?","visibility":"Public","body":"self == Labs"}},{"html_id":"lch?-instance-method","name":"lch?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":273,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L273"},"def":{"name":"lch?","visibility":"Public","body":"self == Lch"}},{"html_id":"matrix?-instance-method","name":"matrix?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":280,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L280"},"def":{"name":"matrix?","visibility":"Public","body":"self == Matrix"}},{"html_id":"multiband?-instance-method","name":"multiband?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":264,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L264"},"def":{"name":"multiband?","visibility":"Public","body":"self == Multiband"}},{"html_id":"rgb16?-instance-method","name":"rgb16?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":278,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L278"},"def":{"name":"rgb16?","visibility":"Public","body":"self == Rgb16"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":271,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L271"},"def":{"name":"rgb?","visibility":"Public","body":"self == Rgb"}},{"html_id":"scrgb?-instance-method","name":"scrgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":281,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L281"},"def":{"name":"scrgb?","visibility":"Public","body":"self == Scrgb"}},{"html_id":"srgb?-instance-method","name":"srgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":275,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L275"},"def":{"name":"srgb?","visibility":"Public","body":"self == Srgb"}},{"html_id":"xyz?-instance-method","name":"xyz?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":267,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L267"},"def":{"name":"xyz?","visibility":"Public","body":"self == Xyz"}},{"html_id":"yxy?-instance-method","name":"yxy?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":276,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L276"},"def":{"name":"yxy?","visibility":"Public","body":"self == Yxy"}}]},{"html_id":"vips/Vips/Enums/Kernel","path":"Vips/Enums/Kernel.html","kind":"enum","full_name":"Vips::Enums::Kernel","name":"Kernel","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":285,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L285"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Nearest","name":"Nearest","value":"0"},{"id":"Linear","name":"Linear","value":"1"},{"id":"Cubic","name":"Cubic","value":"2"},{"id":"Mitchell","name":"Mitchell","value":"3"},{"id":"Lanczos2","name":"Lanczos2","value":"4"},{"id":"Lanczos3","name":"Lanczos3","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"cubic?-instance-method","name":"cubic?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":288,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L288"},"def":{"name":"cubic?","visibility":"Public","body":"self == Cubic"}},{"html_id":"lanczos2?-instance-method","name":"lanczos2?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":290,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L290"},"def":{"name":"lanczos2?","visibility":"Public","body":"self == Lanczos2"}},{"html_id":"lanczos3?-instance-method","name":"lanczos3?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":291,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L291"},"def":{"name":"lanczos3?","visibility":"Public","body":"self == Lanczos3"}},{"html_id":"linear?-instance-method","name":"linear?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":287,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L287"},"def":{"name":"linear?","visibility":"Public","body":"self == Linear"}},{"html_id":"mitchell?-instance-method","name":"mitchell?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":289,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L289"},"def":{"name":"mitchell?","visibility":"Public","body":"self == Mitchell"}},{"html_id":"nearest?-instance-method","name":"nearest?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":286,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L286"},"def":{"name":"nearest?","visibility":"Public","body":"self == Nearest"}}]},{"html_id":"vips/Vips/Enums/OperationBoolean","path":"Vips/Enums/OperationBoolean.html","kind":"enum","full_name":"Vips::Enums::OperationBoolean","name":"OperationBoolean","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":294,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L294"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"And","name":"And","value":"0"},{"id":"Or","name":"Or","value":"1"},{"id":"Eor","name":"Eor","value":"2"},{"id":"Lshift","name":"Lshift","value":"3"},{"id":"Rshift","name":"Rshift","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"and?-instance-method","name":"and?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":295,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L295"},"def":{"name":"and?","visibility":"Public","body":"self == And"}},{"html_id":"eor?-instance-method","name":"eor?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":297,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L297"},"def":{"name":"eor?","visibility":"Public","body":"self == Eor"}},{"html_id":"lshift?-instance-method","name":"lshift?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":298,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L298"},"def":{"name":"lshift?","visibility":"Public","body":"self == Lshift"}},{"html_id":"or?-instance-method","name":"or?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":296,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L296"},"def":{"name":"or?","visibility":"Public","body":"self == Or"}},{"html_id":"rshift?-instance-method","name":"rshift?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":299,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L299"},"def":{"name":"rshift?","visibility":"Public","body":"self == Rshift"}}]},{"html_id":"vips/Vips/Enums/OperationComplex","path":"Vips/Enums/OperationComplex.html","kind":"enum","full_name":"Vips::Enums::OperationComplex","name":"OperationComplex","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":302,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L302"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Polar","name":"Polar","value":"0"},{"id":"Rect","name":"Rect","value":"1"},{"id":"Conj","name":"Conj","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"conj?-instance-method","name":"conj?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":305,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L305"},"def":{"name":"conj?","visibility":"Public","body":"self == Conj"}},{"html_id":"polar?-instance-method","name":"polar?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":303,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L303"},"def":{"name":"polar?","visibility":"Public","body":"self == Polar"}},{"html_id":"rect?-instance-method","name":"rect?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":304,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L304"},"def":{"name":"rect?","visibility":"Public","body":"self == Rect"}}]},{"html_id":"vips/Vips/Enums/OperationComplex2","path":"Vips/Enums/OperationComplex2.html","kind":"enum","full_name":"Vips::Enums::OperationComplex2","name":"OperationComplex2","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":308,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L308"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"CrossPhase","name":"CrossPhase","value":"0"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"cross_phase?-instance-method","name":"cross_phase?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":309,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L309"},"def":{"name":"cross_phase?","visibility":"Public","body":"self == CrossPhase"}}]},{"html_id":"vips/Vips/Enums/OperationComplexget","path":"Vips/Enums/OperationComplexget.html","kind":"enum","full_name":"Vips::Enums::OperationComplexget","name":"OperationComplexget","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":312,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L312"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Real","name":"Real","value":"0"},{"id":"Imag","name":"Imag","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"imag?-instance-method","name":"imag?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":314,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L314"},"def":{"name":"imag?","visibility":"Public","body":"self == Imag"}},{"html_id":"real?-instance-method","name":"real?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":313,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L313"},"def":{"name":"real?","visibility":"Public","body":"self == Real"}}]},{"html_id":"vips/Vips/Enums/OperationFlags","path":"Vips/Enums/OperationFlags.html","kind":"enum","full_name":"Vips::Enums::OperationFlags","name":"OperationFlags","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":406,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L406"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Sequential","name":"Sequential","value":"1"},{"id":"SequentialUnbuffered","name":"SequentialUnbuffered","value":"2"},{"id":"Nocache","name":"Nocache","value":"4"},{"id":"Deprecated","name":"Deprecated","value":"8"},{"id":"None","name":"None","value":"0"},{"id":"All","name":"All","value":"15"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"deprecated?-instance-method","name":"deprecated?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":410,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L410"},"def":{"name":"deprecated?","visibility":"Public","body":"self.includes?(Deprecated)"}},{"html_id":"nocache?-instance-method","name":"nocache?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":409,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L409"},"def":{"name":"nocache?","visibility":"Public","body":"self.includes?(Nocache)"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":406,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L406"},"def":{"name":"none?","visibility":"Public","body":"value == 0"}},{"html_id":"sequential?-instance-method","name":"sequential?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":407,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L407"},"def":{"name":"sequential?","visibility":"Public","body":"self.includes?(Sequential)"}},{"html_id":"sequential_unbuffered?-instance-method","name":"sequential_unbuffered?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":408,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L408"},"def":{"name":"sequential_unbuffered?","visibility":"Public","body":"self.includes?(SequentialUnbuffered)"}}]},{"html_id":"vips/Vips/Enums/OperationMath","path":"Vips/Enums/OperationMath.html","kind":"enum","full_name":"Vips::Enums::OperationMath","name":"OperationMath","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":317,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L317"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Sin","name":"Sin","value":"0"},{"id":"Cos","name":"Cos","value":"1"},{"id":"Tan","name":"Tan","value":"2"},{"id":"Asin","name":"Asin","value":"3"},{"id":"Acos","name":"Acos","value":"4"},{"id":"Atan","name":"Atan","value":"5"},{"id":"Log","name":"Log","value":"6"},{"id":"Log10","name":"Log10","value":"7"},{"id":"Exp","name":"Exp","value":"8"},{"id":"Exp10","name":"Exp10","value":"9"},{"id":"Sinh","name":"Sinh","value":"10"},{"id":"Cosh","name":"Cosh","value":"11"},{"id":"Tanh","name":"Tanh","value":"12"},{"id":"Asinh","name":"Asinh","value":"13"},{"id":"Acosh","name":"Acosh","value":"14"},{"id":"Atanh","name":"Atanh","value":"15"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"acos?-instance-method","name":"acos?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":322,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L322"},"def":{"name":"acos?","visibility":"Public","body":"self == Acos"}},{"html_id":"acosh?-instance-method","name":"acosh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":332,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L332"},"def":{"name":"acosh?","visibility":"Public","body":"self == Acosh"}},{"html_id":"asin?-instance-method","name":"asin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":321,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L321"},"def":{"name":"asin?","visibility":"Public","body":"self == Asin"}},{"html_id":"asinh?-instance-method","name":"asinh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":331,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L331"},"def":{"name":"asinh?","visibility":"Public","body":"self == Asinh"}},{"html_id":"atan?-instance-method","name":"atan?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":323,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L323"},"def":{"name":"atan?","visibility":"Public","body":"self == Atan"}},{"html_id":"atanh?-instance-method","name":"atanh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":333,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L333"},"def":{"name":"atanh?","visibility":"Public","body":"self == Atanh"}},{"html_id":"cos?-instance-method","name":"cos?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":319,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L319"},"def":{"name":"cos?","visibility":"Public","body":"self == Cos"}},{"html_id":"cosh?-instance-method","name":"cosh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":329,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L329"},"def":{"name":"cosh?","visibility":"Public","body":"self == Cosh"}},{"html_id":"exp10?-instance-method","name":"exp10?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":327,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L327"},"def":{"name":"exp10?","visibility":"Public","body":"self == Exp10"}},{"html_id":"exp?-instance-method","name":"exp?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":326,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L326"},"def":{"name":"exp?","visibility":"Public","body":"self == Exp"}},{"html_id":"log10?-instance-method","name":"log10?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":325,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L325"},"def":{"name":"log10?","visibility":"Public","body":"self == Log10"}},{"html_id":"log?-instance-method","name":"log?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":324,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L324"},"def":{"name":"log?","visibility":"Public","body":"self == Log"}},{"html_id":"sin?-instance-method","name":"sin?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":318,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L318"},"def":{"name":"sin?","visibility":"Public","body":"self == Sin"}},{"html_id":"sinh?-instance-method","name":"sinh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":328,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L328"},"def":{"name":"sinh?","visibility":"Public","body":"self == Sinh"}},{"html_id":"tan?-instance-method","name":"tan?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":320,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L320"},"def":{"name":"tan?","visibility":"Public","body":"self == Tan"}},{"html_id":"tanh?-instance-method","name":"tanh?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":330,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L330"},"def":{"name":"tanh?","visibility":"Public","body":"self == Tanh"}}]},{"html_id":"vips/Vips/Enums/OperationMath2","path":"Vips/Enums/OperationMath2.html","kind":"enum","full_name":"Vips::Enums::OperationMath2","name":"OperationMath2","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":336,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L336"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Pow","name":"Pow","value":"0"},{"id":"Wop","name":"Wop","value":"1"},{"id":"Atan2","name":"Atan2","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"atan2?-instance-method","name":"atan2?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":339,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L339"},"def":{"name":"atan2?","visibility":"Public","body":"self == Atan2"}},{"html_id":"pow?-instance-method","name":"pow?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":337,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L337"},"def":{"name":"pow?","visibility":"Public","body":"self == Pow"}},{"html_id":"wop?-instance-method","name":"wop?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":338,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L338"},"def":{"name":"wop?","visibility":"Public","body":"self == Wop"}}]},{"html_id":"vips/Vips/Enums/OperationMorphology","path":"Vips/Enums/OperationMorphology.html","kind":"enum","full_name":"Vips::Enums::OperationMorphology","name":"OperationMorphology","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":342,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L342"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Erode","name":"Erode","value":"0"},{"id":"Dilate","name":"Dilate","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"dilate?-instance-method","name":"dilate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":344,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L344"},"def":{"name":"dilate?","visibility":"Public","body":"self == Dilate"}},{"html_id":"erode?-instance-method","name":"erode?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":343,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L343"},"def":{"name":"erode?","visibility":"Public","body":"self == Erode"}}]},{"html_id":"vips/Vips/Enums/OperationRelational","path":"Vips/Enums/OperationRelational.html","kind":"enum","full_name":"Vips::Enums::OperationRelational","name":"OperationRelational","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":347,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L347"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Equal","name":"Equal","value":"0"},{"id":"Noteq","name":"Noteq","value":"1"},{"id":"Less","name":"Less","value":"2"},{"id":"Lesseq","name":"Lesseq","value":"3"},{"id":"More","name":"More","value":"4"},{"id":"Moreeq","name":"Moreeq","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":348,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L348"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"less?-instance-method","name":"less?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":350,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L350"},"def":{"name":"less?","visibility":"Public","body":"self == Less"}},{"html_id":"lesseq?-instance-method","name":"lesseq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":351,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L351"},"def":{"name":"lesseq?","visibility":"Public","body":"self == Lesseq"}},{"html_id":"more?-instance-method","name":"more?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":352,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L352"},"def":{"name":"more?","visibility":"Public","body":"self == More"}},{"html_id":"moreeq?-instance-method","name":"moreeq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":353,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L353"},"def":{"name":"moreeq?","visibility":"Public","body":"self == Moreeq"}},{"html_id":"noteq?-instance-method","name":"noteq?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":349,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L349"},"def":{"name":"noteq?","visibility":"Public","body":"self == Noteq"}}]},{"html_id":"vips/Vips/Enums/OperationRound","path":"Vips/Enums/OperationRound.html","kind":"enum","full_name":"Vips::Enums::OperationRound","name":"OperationRound","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":356,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L356"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Rint","name":"Rint","value":"0"},{"id":"Ceil","name":"Ceil","value":"1"},{"id":"Floor","name":"Floor","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"ceil?-instance-method","name":"ceil?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":358,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L358"},"def":{"name":"ceil?","visibility":"Public","body":"self == Ceil"}},{"html_id":"floor?-instance-method","name":"floor?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":359,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L359"},"def":{"name":"floor?","visibility":"Public","body":"self == Floor"}},{"html_id":"rint?-instance-method","name":"rint?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":357,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L357"},"def":{"name":"rint?","visibility":"Public","body":"self == Rint"}}]},{"html_id":"vips/Vips/Enums/PCS","path":"Vips/Enums/PCS.html","kind":"enum","full_name":"Vips::Enums::PCS","name":"PCS","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":362,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L362"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Lab","name":"Lab","value":"0"},{"id":"Xyz","name":"Xyz","value":"1"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"lab?-instance-method","name":"lab?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":363,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L363"},"def":{"name":"lab?","visibility":"Public","body":"self == Lab"}},{"html_id":"xyz?-instance-method","name":"xyz?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":364,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L364"},"def":{"name":"xyz?","visibility":"Public","body":"self == Xyz"}}]},{"html_id":"vips/Vips/Enums/Precision","path":"Vips/Enums/Precision.html","kind":"enum","full_name":"Vips::Enums::Precision","name":"Precision","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":367,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L367"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Integer","name":"Integer","value":"0"},{"id":"Float","name":"Float","value":"1"},{"id":"Approximate","name":"Approximate","value":"2"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"approximate?-instance-method","name":"approximate?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":370,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L370"},"def":{"name":"approximate?","visibility":"Public","body":"self == Approximate"}},{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":369,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L369"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"integer?-instance-method","name":"integer?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":368,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L368"},"def":{"name":"integer?","visibility":"Public","body":"self == Integer"}}]},{"html_id":"vips/Vips/Enums/RegionShrink","path":"Vips/Enums/RegionShrink.html","kind":"enum","full_name":"Vips::Enums::RegionShrink","name":"RegionShrink","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":373,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L373"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Mean","name":"Mean","value":"0"},{"id":"Median","name":"Median","value":"1"},{"id":"Mode","name":"Mode","value":"2"},{"id":"Max","name":"Max","value":"3"},{"id":"Min","name":"Min","value":"4"},{"id":"Nearest","name":"Nearest","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"max?-instance-method","name":"max?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":377,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L377"},"def":{"name":"max?","visibility":"Public","body":"self == Max"}},{"html_id":"mean?-instance-method","name":"mean?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":374,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L374"},"def":{"name":"mean?","visibility":"Public","body":"self == Mean"}},{"html_id":"median?-instance-method","name":"median?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":375,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L375"},"def":{"name":"median?","visibility":"Public","body":"self == Median"}},{"html_id":"min?-instance-method","name":"min?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":378,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L378"},"def":{"name":"min?","visibility":"Public","body":"self == Min"}},{"html_id":"mode?-instance-method","name":"mode?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":376,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L376"},"def":{"name":"mode?","visibility":"Public","body":"self == Mode"}},{"html_id":"nearest?-instance-method","name":"nearest?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":379,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L379"},"def":{"name":"nearest?","visibility":"Public","body":"self == Nearest"}}]},{"html_id":"vips/Vips/Enums/Saveable","path":"Vips/Enums/Saveable.html","kind":"enum","full_name":"Vips::Enums::Saveable","name":"Saveable","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":382,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L382"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Mono","name":"Mono","value":"0"},{"id":"Rgb","name":"Rgb","value":"1"},{"id":"Rgba","name":"Rgba","value":"2"},{"id":"RgbaOnly","name":"RgbaOnly","value":"3"},{"id":"RgbCmyk","name":"RgbCmyk","value":"4"},{"id":"Any","name":"Any","value":"5"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"any?-instance-method","name":"any?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":388,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L388"},"def":{"name":"any?","visibility":"Public","body":"self == Any"}},{"html_id":"mono?-instance-method","name":"mono?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":383,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L383"},"def":{"name":"mono?","visibility":"Public","body":"self == Mono"}},{"html_id":"rgb?-instance-method","name":"rgb?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":384,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L384"},"def":{"name":"rgb?","visibility":"Public","body":"self == Rgb"}},{"html_id":"rgb_cmyk?-instance-method","name":"rgb_cmyk?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":387,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L387"},"def":{"name":"rgb_cmyk?","visibility":"Public","body":"self == RgbCmyk"}},{"html_id":"rgba?-instance-method","name":"rgba?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":385,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L385"},"def":{"name":"rgba?","visibility":"Public","body":"self == Rgba"}},{"html_id":"rgba_only?-instance-method","name":"rgba_only?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":386,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L386"},"def":{"name":"rgba_only?","visibility":"Public","body":"self == RgbaOnly"}}]},{"html_id":"vips/Vips/Enums/Signal","path":"Vips/Enums/Signal.html","kind":"enum","full_name":"Vips::Enums::Signal","name":"Signal","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":421,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L421"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"PreEval","name":"PreEval","value":"0","doc":"Evaluation is starting\nThe preeval signal is emitted once before computation of `Image` starts.\nIt's a good place to set up evaluation feedback.","summary":"

    Evaluation is starting The preeval signal is emitted once before computation of Image starts.

    "},{"id":"Eval","name":"Eval","value":"1","doc":"The eval signal is emitted once per work unit (typically a 128 x 128 are of pixels)\nduring image computation\n\nYou can use this signal to update user-interfaces with progress feedback.\nBeware of updating too frequently: you will usually need some throttling mechanism","summary":"

    The eval signal is emitted once per work unit (typically a 128 x 128 are of pixels) during image computation

    "},{"id":"PostEval","name":"PostEval","value":"2","doc":"Ealuation is ending\nThe posteval signal is emitted once at the end of the computation of `Image`.\nIt's a good place to shut down evaluation feedback.","summary":"

    Ealuation is ending The posteval signal is emitted once at the end of the computation of Image.

    "}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"doc":"Signals that can be used on an `Image`. See `GObject#signal_connect`","summary":"

    Signals that can be used on an Image.

    ","instance_methods":[{"html_id":"eval?-instance-method","name":"eval?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":432,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L432"},"def":{"name":"eval?","visibility":"Public","body":"self == Eval"}},{"html_id":"post_eval?-instance-method","name":"post_eval?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":437,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L437"},"def":{"name":"post_eval?","visibility":"Public","body":"self == PostEval"}},{"html_id":"pre_eval?-instance-method","name":"pre_eval?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":425,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L425"},"def":{"name":"pre_eval?","visibility":"Public","body":"self == PreEval"}}]},{"html_id":"vips/Vips/Enums/Size","path":"Vips/Enums/Size.html","kind":"enum","full_name":"Vips::Enums::Size","name":"Size","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":391,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L391"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Both","name":"Both","value":"0"},{"id":"Up","name":"Up","value":"1"},{"id":"Down","name":"Down","value":"2"},{"id":"Force","name":"Force","value":"3"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"both?-instance-method","name":"both?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":392,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L392"},"def":{"name":"both?","visibility":"Public","body":"self == Both"}},{"html_id":"down?-instance-method","name":"down?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":394,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L394"},"def":{"name":"down?","visibility":"Public","body":"self == Down"}},{"html_id":"force?-instance-method","name":"force?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":395,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L395"},"def":{"name":"force?","visibility":"Public","body":"self == Force"}},{"html_id":"up?-instance-method","name":"up?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":393,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L393"},"def":{"name":"up?","visibility":"Public","body":"self == Up"}}]},{"html_id":"vips/Vips/Enums/Token","path":"Vips/Enums/Token.html","kind":"enum","full_name":"Vips::Enums::Token","name":"Token","abstract":false,"ancestors":[{"html_id":"vips/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"vips/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/enums.cr","line_number":398,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L398"}],"repository_name":"vips","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Left","name":"Left","value":"1"},{"id":"Right","name":"Right","value":"2"},{"id":"String","name":"String","value":"3"},{"id":"Equals","name":"Equals","value":"4"}],"namespace":{"html_id":"vips/Vips/Enums","kind":"module","full_name":"Vips::Enums","name":"Enums"},"instance_methods":[{"html_id":"equals?-instance-method","name":"equals?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":402,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L402"},"def":{"name":"equals?","visibility":"Public","body":"self == Equals"}},{"html_id":"left?-instance-method","name":"left?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":399,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L399"},"def":{"name":"left?","visibility":"Public","body":"self == Left"}},{"html_id":"right?-instance-method","name":"right?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":400,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L400"},"def":{"name":"right?","visibility":"Public","body":"self == Right"}},{"html_id":"string?-instance-method","name":"string?","abstract":false,"location":{"filename":"src/vips/enums.cr","line_number":401,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/enums.cr#L401"},"def":{"name":"string?","visibility":"Public","body":"self == String"}}]}]},{"html_id":"vips/Vips/GObject","path":"Vips/GObject.html","kind":"class","full_name":"Vips::GObject","name":"GObject","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/gobject.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"finalize-instance-method","name":"finalize","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L79"},"def":{"name":"finalize","visibility":"Public","body":"LibVips.g_object_unref(@handle)"}},{"html_id":"get(name:String,gval:GValue)-instance-method","name":"get","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"args_string":"(name : String, gval : GValue)","args_html":"(name : String, gval : GValue)","location":{"filename":"src/vips/gobject.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L65"},"def":{"name":"get","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"visibility":"Public","body":"LibVips.g_object_get_property(@handle, name, gval)\ngval.get\n"}},{"html_id":"object_ref-instance-method","name":"object_ref","doc":"Increases the reference count of object","summary":"

    Increases the reference count of object

    ","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":56,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L56"},"def":{"name":"object_ref","visibility":"Public","body":"LibVips.g_object_ref(@handle)"}},{"html_id":"ref_count-instance-method","name":"ref_count","doc":"Get the reference count of object.","summary":"

    Get the reference count of object.

    ","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":61,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L61"},"def":{"name":"ref_count","visibility":"Public","body":"@handle.value.ref_count"}},{"html_id":"release_handle-instance-method","name":"release_handle","doc":"Decreases the reference count of object.\nWhen its reference count drops to 0, its memory is freed.","summary":"

    Decreases the reference count of object.

    ","abstract":false,"location":{"filename":"src/vips/gobject.cr","line_number":50,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L50"},"def":{"name":"release_handle","visibility":"Public","body":"if @handle.null?\nelse\n LibVips.g_object_unref(@handle)\nend\ntrue\n"}},{"html_id":"set(name:String,gval:GValue)-instance-method","name":"set","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"args_string":"(name : String, gval : GValue)","args_html":"(name : String, gval : GValue)","location":{"filename":"src/vips/gobject.cr","line_number":70,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L70"},"def":{"name":"set","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"gval","external_name":"gval","restriction":"GValue"}],"visibility":"Public","body":"LibVips.g_object_set_property(@handle, name, gval)"}},{"html_id":"signal_connect(signal:String,callback:Proc,data:Pointer(Void)=Pointer(Void).null):LibVips::Gulong-instance-method","name":"signal_connect","doc":"Connects a `callback` to a signal on this object.\nThe callback will be triggered every time this signal is issued on this instance.","summary":"

    Connects a callback to a signal on this object.

    ","abstract":false,"args":[{"name":"signal","external_name":"signal","restriction":"String"},{"name":"callback","external_name":"callback","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"args_string":"(signal : String, callback : Proc, data : Pointer(Void) = Pointer(Void).null) : LibVips::Gulong","args_html":"(signal : String, callback : Proc, data : Pointer(Void) = Pointer(Void).null) : LibVips::Gulong","location":{"filename":"src/vips/gobject.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L8"},"def":{"name":"signal_connect","args":[{"name":"signal","external_name":"signal","restriction":"String"},{"name":"callback","external_name":"callback","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"return_type":"LibVips::Gulong","visibility":"Public","body":"if (cb = callback.as?(Image::EvalProc))\n em = LibVips::EvalSignal.new do |imgptr, progressptr, data|\n if imgptr.null? || progressptr.null?\n next\n end\n img = Image.new(imgptr)\n progress = progressptr.value\n cb.call(img, progress)\n end\n callback = em\nend\n(LibVips.g_signal_connect_data(@handle, signal, callback.pointer, data, nil, LibVips::GConnectFlags::GConnectAfter)).tap do |ret|\n if ret == 0\n raise(VipsException.new(\"Couldn't connect signal #{signal}\"))\n end\nend\n"}},{"html_id":"signal_disconnect(handler_id:LibVips::Gulong)-instance-method","name":"signal_disconnect","doc":"Disconnects a handler from this object","summary":"

    Disconnects a handler from this object

    ","abstract":false,"args":[{"name":"handler_id","external_name":"handler_id","restriction":"LibVips::Gulong"}],"args_string":"(handler_id : LibVips::Gulong)","args_html":"(handler_id : LibVips::Gulong)","location":{"filename":"src/vips/gobject.cr","line_number":29,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L29"},"def":{"name":"signal_disconnect","args":[{"name":"handler_id","external_name":"handler_id","restriction":"LibVips::Gulong"}],"visibility":"Public","body":"if handler_id == 0\nelse\n LibVips.g_signal_handler_disconnect(@handle, handler_id)\nend"}},{"html_id":"signal_disconnect(func:Proc,data:Pointer(Void)=Pointer(Void).null)-instance-method","name":"signal_disconnect","doc":"Disconnects all handlers from this object that match `func` and `data`","summary":"

    Disconnects all handlers from this object that match func and data

    ","abstract":false,"args":[{"name":"func","external_name":"func","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"::Pointer(Void)"}],"args_string":"(func : Proc, data : Pointer(Void) = Pointer(Void).null)","args_html":"(func : Proc, data : Pointer(Void) = Pointer(Void).null)","location":{"filename":"src/vips/gobject.cr","line_number":34,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L34"},"def":{"name":"signal_disconnect","args":[{"name":"func","external_name":"func","restriction":"Proc"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"::Pointer(Void)"}],"visibility":"Public","body":"LibVips.g_signal_handlers_disconnect_matched(@handle, LibVips::GSignalMatchType::GSignalMatchFunc | LibVips::GSignalMatchType::GSignalMatchData, 0, 0, Pointer(LibVips::GClosure).null, nil, data)"}},{"html_id":"signal_disconnect(data:LibVips::Gpointer)-instance-method","name":"signal_disconnect","doc":"Disconnects all handlers from this object that match","summary":"

    Disconnects all handlers from this object that match

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"LibVips::Gpointer"}],"args_string":"(data : LibVips::Gpointer)","args_html":"(data : LibVips::Gpointer)","location":{"filename":"src/vips/gobject.cr","line_number":42,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gobject.cr#L42"},"def":{"name":"signal_disconnect","args":[{"name":"data","external_name":"data","restriction":"LibVips::Gpointer"}],"visibility":"Public","body":"LibVips.g_signal_handlers_disconnect_matched(@handle, LibVips::GSignalMatchType::GSignalMatchData, 0, 0, Pointer(LibVips::GClosure).null, nil, data)"}}]},{"html_id":"vips/Vips/GValue","path":"Vips/GValue.html","kind":"class","full_name":"Vips::GValue","name":"GValue","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/gvalue.cr","line_number":8,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L8"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"GBool","name":"GBool","value":"Vips.type_from_name(\"gboolean\")","doc":"The fundamental type corresponding to gboolean","summary":"

    The fundamental type corresponding to gboolean

    "},{"id":"GDouble","name":"GDouble","value":"Vips.type_from_name(\"gdouble\")","doc":"The fundamental type corresponding to gdouble","summary":"

    The fundamental type corresponding to gdouble

    "},{"id":"GEnum","name":"GEnum","value":"Vips.type_from_name(\"GEnum\")","doc":"The fundamental type from which all enumeration types are derived","summary":"

    The fundamental type from which all enumeration types are derived

    "},{"id":"GFlags","name":"GFlags","value":"Vips.type_from_name(\"GFlags\")","doc":"The fundamental type from which all flags types are derived","summary":"

    The fundamental type from which all flags types are derived

    "},{"id":"GInt","name":"GInt","value":"Vips.type_from_name(\"gint\")","doc":"The fundamental type corresponding to gint","summary":"

    The fundamental type corresponding to gint

    "},{"id":"GObject","name":"GObject","value":"Vips.type_from_name(\"GObject\")","doc":"The fundamental type for GObject","summary":"

    The fundamental type for GObject

    "},{"id":"GString","name":"GString","value":"Vips.type_from_name(\"gchararray\")","doc":"The fundamental type corresponding to null-terminated C strings.","summary":"

    The fundamental type corresponding to null-terminated C strings.

    "},{"id":"GUint64","name":"GUint64","value":"Vips.type_from_name(\"guint64\")","doc":"The fundamental type corresponding to guint64","summary":"

    The fundamental type corresponding to guint64

    "},{"id":"VArrayDouble","name":"VArrayDouble","value":"Vips.type_from_name(\"VipsArrayDouble\")","doc":"The fundamental type for VipsArrayDouble","summary":"

    The fundamental type for VipsArrayDouble

    "},{"id":"VArrayImage","name":"VArrayImage","value":"Vips.type_from_name(\"VipsArrayImage\")","doc":"The fundamental type for VipsArrayImage","summary":"

    The fundamental type for VipsArrayImage

    "},{"id":"VArrayInt","name":"VArrayInt","value":"Vips.type_from_name(\"VipsArrayInt\")","doc":"The fundamental type for VipsArrayInt","summary":"

    The fundamental type for VipsArrayInt

    "},{"id":"VBandFormat","name":"VBandFormat","value":"LibVips.vips_band_format_get_type","doc":"The fundamental type for VipsBandFormat","summary":"

    The fundamental type for VipsBandFormat

    "},{"id":"VBlendMode","name":"VBlendMode","value":"Vips.at_least_libvips?(8, 6) ? LibVips.vips_blend_mode_get_type : 0","doc":"The fundamental type for VipsBlendMode","summary":"

    The fundamental type for VipsBlendMode

    "},{"id":"VBlob","name":"VBlob","value":"Vips.type_from_name(\"VipsBlob\")","doc":"The fundamental type for VipsBlob","summary":"

    The fundamental type for VipsBlob

    "},{"id":"VImageType","name":"VImageType","value":"Vips.type_from_name(\"VipsImage\")","doc":"The fundamental type for VipsImage","summary":"

    The fundamental type for VipsImage

    "},{"id":"VRefStr","name":"VRefStr","value":"Vips.type_from_name(\"VipsRefString\")","doc":"The fundamental type for VipsRefString","summary":"

    The fundamental type for VipsRefString

    "},{"id":"VSource","name":"VSource","value":"Vips.at_least_libvips?(8, 9) ? Vips.type_from_name(\"VipsSource\") : 0","doc":"The fundamental type for VipsSource","summary":"

    The fundamental type for VipsSource

    "},{"id":"VTarget","name":"VTarget","value":"Vips.at_least_libvips?(8, 9) ? Vips.type_from_name(\"VipsTarget\") : 0","doc":"The fundamental type for VipsTarget","summary":"

    The fundamental type for VipsTarget

    "}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Class to wrap `LibVips::GValue` in a Crystal class.\nThis class wraps `LibVips::GValue` in a convenient interface. You can use\ninstances of this class to get and set `GObject` properties.\nOn construction, `LibVips::GValue` is all zero (empty). You can pass it to\na get function to have it filled by `GObject`, or use `initialize(gvalue)` to\nset a type, `set` to set a value, then use it to set an object property.","summary":"

    Class to wrap LibVips::GValue in a Crystal class.

    ","constructors":[{"html_id":"new(value:GValue)-class-method","name":"new","doc":"Initialize new instance with specified `GValue`","summary":"

    Initialize new instance with specified GValue

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"GValue"}],"args_string":"(value : GValue)","args_html":"(value : GValue)","location":{"filename":"src/vips/gvalue.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L18"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"GValue"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}},{"html_id":"new-class-method","name":"new","doc":"Initialize new instance of `GValue`","summary":"

    Initialize new instance of GValue

    ","abstract":false,"location":{"filename":"src/vips/gvalue.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L12"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"get:Type-instance-method","name":"get","doc":"Get the contents of a GValue\nThe contents of the GValue are read out as a Crystal type","summary":"

    Get the contents of a GValue The contents of the GValue are read out as a Crystal type

    ","abstract":false,"location":{"filename":"src/vips/gvalue.cr","line_number":113,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L113"},"def":{"name":"get","return_type":"Type","visibility":"Public","body":"gtype = get_type\nfundamental = Vips.fundamental_type(gtype)\nresult = if gtype == GBool\n LibVips.g_value_get_boolean(self)\nelse\n if gtype == GInt\n LibVips.g_value_get_int(self)\n else\n if gtype == GUint64\n LibVips.g_value_get_uint64(self)\n else\n if gtype == GDouble\n LibVips.g_value_get_double(self)\n else\n if fundamental == GEnum\n LibVips.g_value_get_enum(self)\n else\n if fundamental == GFlags\n LibVips.g_value_get_flags(self)\n else\n if gtype == GString\n String.new((LibVips.g_value_get_string(self)) || Bytes.empty)\n else\n if gtype == VRefStr\n res = LibVips.vips_value_get_ref_string(self, out size)\n String.new(res, size)\n else\n if gtype == VImageType\n vi = LibVips.g_value_get_object(self)\n image = Image.new(vi.as(::Pointer(LibVips::VipsImage)))\n image.object_ref\n image\n else\n if gtype == VArrayInt\n ptr = LibVips.vips_value_get_array_int(self, out vsize)\n Array(Int32).new(vsize) do |i|\n ptr[i]\n end\n else\n if gtype == VArrayDouble\n ptr = LibVips.vips_value_get_array_double(self, out dsize)\n Array(Float64).new(dsize) do |i|\n ptr[i]\n end\n else\n if gtype == VArrayImage\n ptr = LibVips.vips_value_get_array_image(self, out isize)\n Array(Image).new(isize) do |i|\n image = Image.new(ptr[i])\n image.object_ref\n image\n end\n else\n if gtype == VBlob\n ptr = LibVips.vips_value_get_blob(self, out bsize)\n res = Bytes.new(bsize)\n res.to_unsafe.copy_from(ptr.as(::Pointer(UInt8)), bsize.to_i)\n res\n else\n raise(VipsException.new(\"unsupported gtype for get #{Vips.typename(gtype)}, fundamental #{Vips.typename(fundamental)}\"))\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\nend\nType.new(result)\n"}},{"html_id":"get_type-instance-method","name":"get_type","doc":"Get the GType of this GValue","summary":"

    Get the GType of this GValue

    ","abstract":false,"location":{"filename":"src/vips/gvalue.cr","line_number":170,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L170"},"def":{"name":"get_type","visibility":"Public","body":"@value.g_type"}},{"html_id":"set(value)-instance-method","name":"set","doc":"Set a GValue\nThe value is converted to the type of the GValue, if possible, and assigned","summary":"

    Set a GValue The value is converted to the type of the GValue, if possible, and assigned

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""}],"args_string":"(value)","args_html":"(value)","location":{"filename":"src/vips/gvalue.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L35"},"def":{"name":"set","args":[{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gtype = get_type\nfundamental = Vips.fundamental_type(gtype)\nif value.is_a?(Type)\n value = value.value\nend\nif gtype == GBool\n LibVips.g_value_set_boolean(self, ( value ? 1 : 0))\nelse\n if gtype == GInt\n LibVips.g_value_set_int(self, Converter.to_i32(value))\n else\n if gtype == GUint64\n LibVips.g_value_set_uint64(self, Converter.to_u64(value))\n else\n if gtype == GDouble\n LibVips.g_value_set_double(self, Converter.to_double(value))\n else\n if fundamental == GEnum\n LibVips.g_value_set_enum(self, Converter.to_i32(value))\n else\n if fundamental == GFlags\n LibVips.g_value_set_flags(self, Converter.to_u32(value))\n else\n if gtype == GString\n LibVips.g_value_set_string(self, Converter.to_string(value))\n else\n if gtype == VRefStr\n LibVips.vips_value_set_ref_string(self, Converter.to_string(value))\n else\n if (fundamental == GObject) && (obj = value.as?(Vips::GObject))\n LibVips.g_value_set_object(self, obj.handle)\n else\n if gtype == VArrayInt\n aval = value.is_a?(Array) ? value : [value]\n intarr = case aval\n when Array(Int32)\n aval\n when Array\n Array(Int32).new(aval.size) do |i|\n Converter.to_i32(aval[i])\n end\n else\n raise(VipsException.new(\"unsuported value type #{typeof(value)} for gtype #{Vips.typename(gtype)} \"))\n end\n LibVips.vips_value_set_array_int(self, intarr, intarr.size)\n else\n if gtype == VArrayDouble\n aval = value.is_a?(Array) ? value : [value]\n intarr = case aval\n when Array(Float64)\n aval\n when Array\n Array(Float64).new(aval.size) do |i|\n Converter.to_double(aval[i])\n end\n else\n raise(VipsException.new(\"unsuported value type #{typeof(value)} for gtype #{Vips.typename(gtype)} \"))\n end\n LibVips.vips_value_set_array_double(self, intarr, intarr.size)\n else\n if (gtype == VArrayImage) && (images = value.as?(Array(Image)))\n size = images.size\n LibVips.vips_value_set_array_image(self, size)\n ptr = LibVips.vips_value_get_array_image(self, out _)\n ptr.map_with_index!(size) do |_, i|\n images[i].object_ref.as(::Pointer(LibVips::VipsImage))\n end\n else\n if (gtype == VBlob) && (blob = value.as?(VipsBlob))\n LibVips.g_value_set_boxed(self, blob)\n else\n if gtype == VBlob\n mem = case value\n when String\n value.to_slice\n when Array(Char)\n (String.new(value)).to_slice\n when Bytes\n value\n else\n raise(VipsException.new(\"unsuported value type #{typeof(value)} for gtype #{Vips.typename(gtype)} \"))\n end\n ptr = LibVips.g_malloc(mem.size)\n ptr.copy_from(mem.to_unsafe.as(::Pointer(Void)), mem.size)\n if Vips.at_least_libvips?(8, 6)\n LibVips.vips_value_set_blob_free(self, ptr, mem.size)\n else\n free = LibVips::VipsCallbackFn.new do |a, b|\n LibVips.g_free(a)\n 0\n end\n LibVips.vips_value_set_blob(self, free, ptr, mem.size)\n end\n else\n raise(VipsException.new(\"unsupported gtype for set #{Vips.typename(gtype)}, fundamental #{Vips.typename(fundamental)}, value type #{typeof(value)}\"))\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\n end\nend\n"}},{"html_id":"set_type(type):Nil-instance-method","name":"set_type","doc":"Set the type of a GValue\nGValues have a set type, fixed at creation time. Use this method to set\nthe type of GValue before assiging to it.\n\nGTypes are 32 or 64-bit integers (depending on platform).","summary":"

    Set the type of a GValue GValues have a set type, fixed at creation time.

    ","abstract":false,"args":[{"name":"type","external_name":"type","restriction":""}],"args_string":"(type) : Nil","args_html":"(type) : Nil","location":{"filename":"src/vips/gvalue.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/gvalue.cr#L28"},"def":{"name":"set_type","args":[{"name":"type","external_name":"type","restriction":""}],"return_type":"Nil","visibility":"Public","body":"LibVips.g_value_init(self, type)\n@initialized = true\n"}}]},{"html_id":"vips/Vips/Image","path":"Vips/Image.html","kind":"class","full_name":"Vips::Image","name":"Image","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/ext/image.cr","line_number":13,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L13"},{"filename":"src/vips/image.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/MutableImage","kind":"class","full_name":"Vips::MutableImage","name":"MutableImage"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"class_methods":[{"html_id":"analyzeload(filename:String,**kwargs)-class-method","name":"analyzeload","doc":"Load an analyze6 image\n\n```\n# out_, flags = Vips::Image.analyzeload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load an analyze6 image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":125,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L125"},"def":{"name":"analyzeload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"analyzeload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"arrayjoin(in_:Array(Image),**kwargs)-class-method","name":"arrayjoin","doc":"Join an array of images\n\n```\n# out_ = Vips::Image.arrayjoin(in_, {across: Int32, shim: Int32, background: Array(Float64), halign: Enums::Align, valign: Enums::Align, hspacing: Int32, vspacing: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*in* : Array(Image) - Array of input images\n\n_Optionals_\n\n*across* : Int32 - Number of images across grid\n\n*shim* : Int32 - Pixels between images\n\n*background* : Array(Float64) - Colour for new pixels\n\n*halign* : Enums::Align - Align on the left, centre or right\n\n*valign* : Enums::Align - Align on the top, centre or bottom\n\n*hspacing* : Int32 - Horizontal spacing between images\n\n*vspacing* : Int32 - Vertical spacing between images\n\n\n**Returns**\n\nOutput image\n","summary":"

    Join an array of images

    ","abstract":false,"args":[{"name":"in_","external_name":"in_","restriction":"Array(Image)"}],"args_string":"(in_ : Array(Image), **kwargs)","args_html":"(in_ : Array(Image), **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":172,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L172"},"def":{"name":"arrayjoin","args":[{"name":"in_","external_name":"in_","restriction":"Array(Image)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"arrayjoin\", options, in_)).as(Type)).as_image\n"}},{"html_id":"black(width:Int32,height:Int32,**kwargs)-class-method","name":"black","doc":"Make a black image\n\n```\n# out_ = Vips::Image.black(width, height, {bands: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*bands* : Int32 - Number of bands in image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a black image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":354,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L354"},"def":{"name":"black","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"black\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"csvload(filename:String,**kwargs)-class-method","name":"csvload","doc":"Load csv\n\n```\n# out_, flags = Vips::Image.csvload(filename, {skip: Int32, lines: Int32, whitespace: String, separator: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*skip* : Int32 - Skip this many lines at the start of the file\n\n*lines* : Int32 - Read this many lines from the file\n\n*whitespace* : String - Set of whitespace characters\n\n*separator* : String - Set of separator characters\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load csv

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1010,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1010"},"def":{"name":"csvload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"csvload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"csvload_source(source:Source,**kwargs)-class-method","name":"csvload_source","doc":"Load csv\n\n```\n# out_, flags = Vips::Image.csvload_source(source, {skip: Int32, lines: Int32, whitespace: String, separator: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*skip* : Int32 - Skip this many lines at the start of the file\n\n*lines* : Int32 - Read this many lines from the file\n\n*whitespace* : String - Set of whitespace characters\n\n*separator* : String - Set of separator characters\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load csv

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1061,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1061"},"def":{"name":"csvload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"csvload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"csvload_stream(stream:IO,**kwargs)-class-method","name":"csvload_stream","doc":"Load csv\n\n```\n# out_, flags = Vips::Image.csvload_stream(stream, {skip: Int32, lines: Int32, whitespace: String, separator: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*skip* : Int32 - Skip this many lines at the start of the file\n\n*lines* : Int32 - Read this many lines from the file\n\n*whitespace* : String - Set of whitespace characters\n\n*separator* : String - Set of separator characters\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load csv

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1107,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1107"},"def":{"name":"csvload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\ncsvload_source(source, **kwargs)\n"}},{"html_id":"eye(width:Int32,height:Int32,**kwargs)-class-method","name":"eye","doc":"Make an image showing the eye's spatial response\n\n```\n# out_ = Vips::Image.eye(width, height, {uchar: Bool, factor: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*factor* : Float64 - Maximum spatial frequency\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an image showing the eye's spatial response

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1635,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1635"},"def":{"name":"eye","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"eye\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"find_load(filename:String)-class-method","name":"find_load","doc":"Find the name of the load operation vips will use to load a file.\nFor example \"VipsForeignLoadJpegFile\". You can use this to work out what\noptions to pass to `new_from_file`","summary":"

    Find the name of the load operation vips will use to load a file.

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String)","args_html":"(filename : String)","location":{"filename":"src/vips/image.cr","line_number":58,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L58"},"def":{"name":"find_load","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"visibility":"Public","body":"ptr = LibVips.vips_foreign_find_load(filename)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"find_load_buffer(data:Bytes)-class-method","name":"find_load_buffer","doc":"Find the name of the load operation vips will use to load a buffer.\nFor example \"VipsForeignLoadJpegBuffer\". You can use this to work out what\noptions to pass to `new_from_buffer`","summary":"

    Find the name of the load operation vips will use to load a buffer.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"args_string":"(data : Bytes)","args_html":"(data : Bytes)","location":{"filename":"src/vips/image.cr","line_number":66,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L66"},"def":{"name":"find_load_buffer","args":[{"name":"data","external_name":"data","restriction":"Bytes"}],"visibility":"Public","body":"ptr = LibVips.vips_foreign_find_load_buffer(Box.box(data), data.size)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"find_load_buffer(data:String)-class-method","name":"find_load_buffer","doc":"Find the name of the load operation vips will use to load a buffer.\nFor example \"VipsForeignLoadJpegBuffer\". You can use this to work out what\noptions to pass to `new_from_buffer`","summary":"

    Find the name of the load operation vips will use to load a buffer.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String"}],"args_string":"(data : String)","args_html":"(data : String)","location":{"filename":"src/vips/image.cr","line_number":74,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L74"},"def":{"name":"find_load_buffer","args":[{"name":"data","external_name":"data","restriction":"String"}],"visibility":"Public","body":"find_load_buffer(data.to_slice)"}},{"html_id":"find_load_source(source:Source)-class-method","name":"find_load_source","doc":" Find the name of the load operation vips will use to load a source.\nFor example \"VipsForeignLoadJpegSource\". You can use this to work out what\noptions to pass to `new_from_source`","summary":"

    Find the name of the load operation vips will use to load a source.

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source)","args_html":"(source : Source)","location":{"filename":"src/vips/image.cr","line_number":81,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L81"},"def":{"name":"find_load_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"visibility":"Public","body":"ptr = LibVips.vips_foreign_find_load_source(source)\nptr.null? ? nil : String.new(ptr)\n"}},{"html_id":"find_load_stream(stream:Stream)-class-method","name":"find_load_stream","doc":"Find the name of the load operation vips will use to load a stream.\nFor example \"VipsForeignLoadJpegSource\". You can use this to work out what\noptions to pass to `new_from_stream`","summary":"

    Find the name of the load operation vips will use to load a stream.

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"Stream"}],"args_string":"(stream : Stream)","args_html":"(stream : Stream)","location":{"filename":"src/vips/image.cr","line_number":89,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L89"},"def":{"name":"find_load_stream","args":[{"name":"stream","external_name":"stream","restriction":"Stream"}],"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nfind_load_source(source)\n"}},{"html_id":"fitsload(filename:String,**kwargs)-class-method","name":"fitsload","doc":"Load a fits image\n\n```\n# out_, flags = Vips::Image.fitsload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a fits image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1769,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1769"},"def":{"name":"fitsload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"fitsload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"fitsload_source(source:Source,**kwargs)-class-method","name":"fitsload_source","doc":"Load fits from a source\n\n```\n# out_, flags = Vips::Image.fitsload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load fits from a source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1812,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1812"},"def":{"name":"fitsload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"fitsload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"fitsload_stream(stream:IO,**kwargs)-class-method","name":"fitsload_stream","doc":"Load fits from a stream\n\n```\n# out_, flags = Vips::Image.fitsload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load fits from a stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1850,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1850"},"def":{"name":"fitsload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nfitsload_source(source, **kwargs)\n"}},{"html_id":"fractsurf(width:Int32,height:Int32,fractal_dimension:Float64)-class-method","name":"fractsurf","doc":"Make a fractal surface\n\n```\n# out_ = Vips::Image.fractsurf(width, height, fractal_dimension)\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*fractal_dimension* : Float64 - Fractal dimension\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a fractal surface

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, fractal_dimension : Float64)","args_html":"(width : Int32, height : Int32, fractal_dimension : Float64)","location":{"filename":"src/vips/ext/image.cr","line_number":1967,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1967"},"def":{"name":"fractsurf","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"visibility":"Public","body":"((Operation.call(\"fractsurf\", width, height, fractal_dimension)).as(Type)).as_image"}},{"html_id":"gaussmat(sigma:Float64,min_ampl:Float64,**kwargs)-class-method","name":"gaussmat","doc":"Make a gaussian image\n\n```\n# out_ = Vips::Image.gaussmat(sigma, min_ampl, {separable: Bool, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sigma* : Float64 - Sigma of Gaussian\n\n*min_ampl* : Float64 - Minimum amplitude of Gaussian\n\n_Optionals_\n\n*separable* : Bool - Generate separable Gaussian\n\n*precision* : Enums::Precision - Generate with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian image

    ","abstract":false,"args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"args_string":"(sigma : Float64, min_ampl : Float64, **kwargs)","args_html":"(sigma : Float64, min_ampl : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2088,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2088"},"def":{"name":"gaussmat","args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"gaussmat\", options, sigma, min_ampl)).as(Type)).as_image\n"}},{"html_id":"gaussnoise(width:Int32,height:Int32,**kwargs)-class-method","name":"gaussnoise","doc":"Make a gaussnoise image\n\n```\n# out_ = Vips::Image.gaussnoise(width, height, {sigma: Float64, mean: Float64, seed: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*sigma* : Float64 - Standard deviation of pixels in generated image\n\n*mean* : Float64 - Mean of pixels in generated image\n\n*seed* : Int32 - Random number seed\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussnoise image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2122,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2122"},"def":{"name":"gaussnoise","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"gaussnoise\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"gifload(filename:String,**kwargs)-class-method","name":"gifload","doc":"Load gif with libnsgif\n\n```\n# out_, flags = Vips::Image.gifload(filename, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load gif with libnsgif

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2186,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2186"},"def":{"name":"gifload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"gifload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"gifload_buffer(buffer:Bytes,**kwargs)-class-method","name":"gifload_buffer","doc":"Load gif with libnsgif\n\n```\n# out_, flags = Vips::Image.gifload_buffer(buffer, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load gif with libnsgif

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2233,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2233"},"def":{"name":"gifload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"gifload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"gifload_source(source:Source,**kwargs)-class-method","name":"gifload_source","doc":"Load gif from source\n\n```\n# out_, flags = Vips::Image.gifload_source(source, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load gif from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2280,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2280"},"def":{"name":"gifload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"gifload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"gifload_stream(stream:IO,**kwargs)-class-method","name":"gifload_stream","doc":"Load gif from stream\n\n```\n# out_, flags = Vips::Image.gifload_stream(stream, {n: Int32, page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*page* : Int32 - First page to load\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load gif from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2322,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2322"},"def":{"name":"gifload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\ngifload_source(source, **kwargs)\n"}},{"html_id":"grey(width:Int32,height:Int32,**kwargs)-class-method","name":"grey","doc":"Make a grey ramp image\n\n```\n# out_ = Vips::Image.grey(width, height, {uchar: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a grey ramp image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2573,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2573"},"def":{"name":"grey","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"grey\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"heifload(filename:String,**kwargs)-class-method","name":"heifload","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload(filename, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2643,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2643"},"def":{"name":"heifload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"heifload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"heifload_buffer(buffer:Bytes,**kwargs)-class-method","name":"heifload_buffer","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload_buffer(buffer, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2694,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2694"},"def":{"name":"heifload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"heifload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"heifload_source(source:Source,**kwargs)-class-method","name":"heifload_source","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload_source(source, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2745,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2745"},"def":{"name":"heifload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"heifload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"heifload_stream(stream:IO,**kwargs)-class-method","name":"heifload_stream","doc":"Load a heif image\n\n```\n# out_, flags = Vips::Image.heifload_stream(stream, {page: Int32, n: Int32, thumbnail: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*thumbnail* : Bool - Fetch thumbnail image\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load a heif image

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2791,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2791"},"def":{"name":"heifload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nheifload_source(source, **kwargs)\n"}},{"html_id":"identity(**kwargs)-class-method","name":"identity","doc":"Make a 1d image where pixel values are indexes\n\n```\n# out_ = Vips::Image.identity({bands: Int32, ushort: Bool, size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*bands* : Int32 - Number of bands in LUT\n\n*ushort* : Bool - Create a 16-bit LUT\n\n*size* : Int32 - Size of 16-bit LUT\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a 1d image where pixel values are indexes

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3216,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3216"},"def":{"name":"identity","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"identity\", options)).as(Type)).as_image\n"}},{"html_id":"jp2kload(filename:String,**kwargs)-class-method","name":"jp2kload","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload(filename, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3387,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3387"},"def":{"name":"jp2kload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jp2kload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jp2kload_buffer(buffer:Bytes,**kwargs)-class-method","name":"jp2kload_buffer","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload_buffer(buffer, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3432,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3432"},"def":{"name":"jp2kload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jp2kload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jp2kload_source(source:Source,**kwargs)-class-method","name":"jp2kload_source","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload_source(source, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3477,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3477"},"def":{"name":"jp2kload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jp2kload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jp2kload_stream(stream:IO,**kwargs)-class-method","name":"jp2kload_stream","doc":"Load jpeg2000 image\n\n```\n# out_, flags = Vips::Image.jp2kload_stream(stream, {page: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - Load this page from the image\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load jpeg2000 image

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3517,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3517"},"def":{"name":"jp2kload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\njp2kload_source(source, **kwargs)\n"}},{"html_id":"jpegload(filename:String,**kwargs)-class-method","name":"jpegload","doc":"Load jpeg from file\n\n```\n# out_, flags = Vips::Image.jpegload(filename, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3704,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3704"},"def":{"name":"jpegload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jpegload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jpegload_buffer(buffer:Bytes,**kwargs)-class-method","name":"jpegload_buffer","doc":"Load jpeg from buffer\n\n```\n# out_, flags = Vips::Image.jpegload_buffer(buffer, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3753,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3753"},"def":{"name":"jpegload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jpegload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jpegload_source(source:Source,**kwargs)-class-method","name":"jpegload_source","doc":"Load image from jpeg source\n\n```\n# out_, flags = Vips::Image.jpegload_source(source, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load image from jpeg source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3802,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3802"},"def":{"name":"jpegload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jpegload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jpegload_stream(stream:IO,**kwargs)-class-method","name":"jpegload_stream","doc":"Load image from jpeg stream\n\n```\n# out_, flags = Vips::Image.jpegload_stream(stream, {shrink: Int32, autorotate: Bool, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*shrink* : Int32 - Shrink factor on load\n\n*autorotate* : Bool - Rotate image using exif orientation\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load image from jpeg stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3846,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3846"},"def":{"name":"jpegload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\njpegload_source(source, **kwargs)\n"}},{"html_id":"jxlload(filename:String,**kwargs)-class-method","name":"jxlload","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4110,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4110"},"def":{"name":"jxlload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jxlload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jxlload_buffer(buffer:Bytes,**kwargs)-class-method","name":"jxlload_buffer","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload_buffer(buffer, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4153,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4153"},"def":{"name":"jxlload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jxlload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jxlload_source(source:Source,**kwargs)-class-method","name":"jxlload_source","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4196,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4196"},"def":{"name":"jxlload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"jxlload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"jxlload_stream(stream:IO,**kwargs)-class-method","name":"jxlload_stream","doc":"Load jpeg-xl image\n\n```\n# out_, flags = Vips::Image.jxlload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load jpeg-xl image

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4234,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4234"},"def":{"name":"jxlload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\njxlload_source(source, **kwargs)\n"}},{"html_id":"logmat(sigma:Float64,min_ampl:Float64,**kwargs)-class-method","name":"logmat","doc":"Make a laplacian of gaussian image\n\n```\n# out_ = Vips::Image.logmat(sigma, min_ampl, {separable: Bool, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sigma* : Float64 - Radius of Gaussian\n\n*min_ampl* : Float64 - Minimum amplitude of Gaussian\n\n_Optionals_\n\n*separable* : Bool - Generate separable Gaussian\n\n*precision* : Enums::Precision - Generate with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a laplacian of gaussian image

    ","abstract":false,"args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"args_string":"(sigma : Float64, min_ampl : Float64, **kwargs)","args_html":"(sigma : Float64, min_ampl : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4672,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4672"},"def":{"name":"logmat","args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"},{"name":"min_ampl","external_name":"min_ampl","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"logmat\", options, sigma, min_ampl)).as(Type)).as_image\n"}},{"html_id":"magickload(filename:String,**kwargs)-class-method","name":"magickload","doc":"Load file with imagemagick7\n\n```\n# out_, flags = Vips::Image.magickload(filename, {density: String, page: Int32, n: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*density* : String - Canvas resolution for rendering vector formats like SVG\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load file with imagemagick7

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4714,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4714"},"def":{"name":"magickload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"magickload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"magickload_buffer(buffer:Bytes,**kwargs)-class-method","name":"magickload_buffer","doc":"Load buffer with imagemagick7\n\n```\n# out_, flags = Vips::Image.magickload_buffer(buffer, {density: String, page: Int32, n: Int32, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*density* : String - Canvas resolution for rendering vector formats like SVG\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load buffer with imagemagick7

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4763,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4763"},"def":{"name":"magickload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"magickload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"mask_butterworth(width:Int32,height:Int32,order:Float64,frequency_cutoff:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_butterworth","doc":"Make a butterworth filter\n\n```\n# out_ = Vips::Image.mask_butterworth(width, height, order, frequency_cutoff, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*order* : Float64 - Filter order\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a butterworth filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5024,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5024"},"def":{"name":"mask_butterworth","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_butterworth\", options, width, height, order, frequency_cutoff, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_butterworth_band(width:Int32,height:Int32,order:Float64,frequency_cutoff_x:Float64,frequency_cutoff_y:Float64,radius:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_butterworth_band","doc":"Make a butterworth_band filter\n\n```\n# out_ = Vips::Image.mask_butterworth_band(width, height, order, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*order* : Float64 - Filter order\n\n*frequency_cutoff_x* : Float64 - Frequency cutoff x\n\n*frequency_cutoff_y* : Float64 - Frequency cutoff y\n\n*radius* : Float64 - Radius of circle\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a butterworth_band filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, order : Float64, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, order : Float64, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5070,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5070"},"def":{"name":"mask_butterworth_band","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_butterworth_band\", options, width, height, order, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_butterworth_ring(width:Int32,height:Int32,order:Float64,frequency_cutoff:Float64,amplitude_cutoff:Float64,ringwidth:Float64,**kwargs)-class-method","name":"mask_butterworth_ring","doc":"Make a butterworth ring filter\n\n```\n# out_ = Vips::Image.mask_butterworth_ring(width, height, order, frequency_cutoff, amplitude_cutoff, ringwidth, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*order* : Float64 - Filter order\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n*ringwidth* : Float64 - Ringwidth\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a butterworth ring filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, order : Float64, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5114,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5114"},"def":{"name":"mask_butterworth_ring","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"order","external_name":"order","restriction":"Float64"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_butterworth_ring\", options, width, height, order, frequency_cutoff, amplitude_cutoff, ringwidth)).as(Type)).as_image\n"}},{"html_id":"mask_fractal(width:Int32,height:Int32,fractal_dimension:Float64,**kwargs)-class-method","name":"mask_fractal","doc":"Make fractal filter\n\n```\n# out_ = Vips::Image.mask_fractal(width, height, fractal_dimension, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*fractal_dimension* : Float64 - Fractal dimension\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make fractal filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, fractal_dimension : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, fractal_dimension : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5152,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5152"},"def":{"name":"mask_fractal","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"fractal_dimension","external_name":"fractal_dimension","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_fractal\", options, width, height, fractal_dimension)).as(Type)).as_image\n"}},{"html_id":"mask_gaussian(width:Int32,height:Int32,frequency_cutoff:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_gaussian","doc":"Make a gaussian filter\n\n```\n# out_ = Vips::Image.mask_gaussian(width, height, frequency_cutoff, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5192,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5192"},"def":{"name":"mask_gaussian","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_gaussian\", options, width, height, frequency_cutoff, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_gaussian_band(width:Int32,height:Int32,frequency_cutoff_x:Float64,frequency_cutoff_y:Float64,radius:Float64,amplitude_cutoff:Float64,**kwargs)-class-method","name":"mask_gaussian_band","doc":"Make a gaussian filter\n\n```\n# out_ = Vips::Image.mask_gaussian_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff_x* : Float64 - Frequency cutoff x\n\n*frequency_cutoff_y* : Float64 - Frequency cutoff y\n\n*radius* : Float64 - Radius of circle\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, amplitude_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5236,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5236"},"def":{"name":"mask_gaussian_band","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_gaussian_band\", options, width, height, frequency_cutoff_x, frequency_cutoff_y, radius, amplitude_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_gaussian_ring(width:Int32,height:Int32,frequency_cutoff:Float64,amplitude_cutoff:Float64,ringwidth:Float64,**kwargs)-class-method","name":"mask_gaussian_ring","doc":"Make a gaussian ring filter\n\n```\n# out_ = Vips::Image.mask_gaussian_ring(width, height, frequency_cutoff, amplitude_cutoff, ringwidth, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*amplitude_cutoff* : Float64 - Amplitude cutoff\n\n*ringwidth* : Float64 - Ringwidth\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a gaussian ring filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, amplitude_cutoff : Float64, ringwidth : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5278,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5278"},"def":{"name":"mask_gaussian_ring","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"amplitude_cutoff","external_name":"amplitude_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_gaussian_ring\", options, width, height, frequency_cutoff, amplitude_cutoff, ringwidth)).as(Type)).as_image\n"}},{"html_id":"mask_ideal(width:Int32,height:Int32,frequency_cutoff:Float64,**kwargs)-class-method","name":"mask_ideal","doc":"Make an ideal filter\n\n```\n# out_ = Vips::Image.mask_ideal(width, height, frequency_cutoff, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an ideal filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5316,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5316"},"def":{"name":"mask_ideal","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_ideal\", options, width, height, frequency_cutoff)).as(Type)).as_image\n"}},{"html_id":"mask_ideal_band(width:Int32,height:Int32,frequency_cutoff_x:Float64,frequency_cutoff_y:Float64,radius:Float64,**kwargs)-class-method","name":"mask_ideal_band","doc":"Make an ideal band filter\n\n```\n# out_ = Vips::Image.mask_ideal_band(width, height, frequency_cutoff_x, frequency_cutoff_y, radius, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff_x* : Float64 - Frequency cutoff x\n\n*frequency_cutoff_y* : Float64 - Frequency cutoff y\n\n*radius* : Float64 - Radius of circle\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an ideal band filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff_x : Float64, frequency_cutoff_y : Float64, radius : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5358,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5358"},"def":{"name":"mask_ideal_band","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff_x","external_name":"frequency_cutoff_x","restriction":"Float64"},{"name":"frequency_cutoff_y","external_name":"frequency_cutoff_y","restriction":"Float64"},{"name":"radius","external_name":"radius","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_ideal_band\", options, width, height, frequency_cutoff_x, frequency_cutoff_y, radius)).as(Type)).as_image\n"}},{"html_id":"mask_ideal_ring(width:Int32,height:Int32,frequency_cutoff:Float64,ringwidth:Float64,**kwargs)-class-method","name":"mask_ideal_ring","doc":"Make an ideal ring filter\n\n```\n# out_ = Vips::Image.mask_ideal_ring(width, height, frequency_cutoff, ringwidth, {uchar: Bool, nodc: Bool, reject: Bool, optical: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*frequency_cutoff* : Float64 - Frequency cutoff\n\n*ringwidth* : Float64 - Ringwidth\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*nodc* : Bool - Remove DC component\n\n*reject* : Bool - Invert the sense of the filter\n\n*optical* : Bool - Rotate quadrants to optical space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an ideal ring filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"args_string":"(width : Int32, height : Int32, frequency_cutoff : Float64, ringwidth : Float64, **kwargs)","args_html":"(width : Int32, height : Int32, frequency_cutoff : Float64, ringwidth : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5398,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5398"},"def":{"name":"mask_ideal_ring","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"frequency_cutoff","external_name":"frequency_cutoff","restriction":"Float64"},{"name":"ringwidth","external_name":"ringwidth","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"mask_ideal_ring\", options, width, height, frequency_cutoff, ringwidth)).as(Type)).as_image\n"}},{"html_id":"matload(filename:String,**kwargs)-class-method","name":"matload","doc":"Load mat from file\n\n```\n# out_, flags = Vips::Image.matload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load mat from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5554,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5554"},"def":{"name":"matload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"matload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"matrixload(filename:String,**kwargs)-class-method","name":"matrixload","doc":"Load matrix\n\n```\n# out_, flags = Vips::Image.matrixload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load matrix

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5612,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5612"},"def":{"name":"matrixload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"matrixload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"matrixload_source(source:Source,**kwargs)-class-method","name":"matrixload_source","doc":"Load matrix\n\n```\n# out_, flags = Vips::Image.matrixload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load matrix

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5655,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5655"},"def":{"name":"matrixload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"matrixload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"matrixload_stream(stream:IO,**kwargs)-class-method","name":"matrixload_stream","doc":"Load matrix\n\n```\n# out_, flags = Vips::Image.matrixload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load matrix

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5693,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5693"},"def":{"name":"matrixload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nmatrixload_source(source, **kwargs)\n"}},{"html_id":"openexrload(filename:String,**kwargs)-class-method","name":"openexrload","doc":"Load an openexr image\n\n```\n# out_, flags = Vips::Image.openexrload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load an openexr image

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6200,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6200"},"def":{"name":"openexrload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"openexrload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"openslideload(filename:String,**kwargs)-class-method","name":"openslideload","doc":"Load file with openslide\n\n```\n# out_, flags = Vips::Image.openslideload(filename, {level: Int32, autocrop: Bool, associated: String, attach_associated: Bool, rgb: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*level* : Int32 - Load this level from the file\n\n*autocrop* : Bool - Crop to image bounds\n\n*associated* : String - Load this associated image\n\n*attach_associated* : Bool - Attach all associated images\n\n*rgb* : Bool - Output RGB (not RGBA)\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load file with openslide

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6253,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6253"},"def":{"name":"openslideload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"openslideload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"openslideload_source(source:Source,**kwargs)-class-method","name":"openslideload_source","doc":"Load source with openslide\n\n```\n# out_, flags = Vips::Image.openslideload_source(source, {level: Int32, autocrop: Bool, associated: String, attach_associated: Bool, rgb: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*level* : Int32 - Load this level from the file\n\n*autocrop* : Bool - Crop to image bounds\n\n*associated* : String - Load this associated image\n\n*attach_associated* : Bool - Attach all associated images\n\n*rgb* : Bool - Output RGB (not RGBA)\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load source with openslide

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6306,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6306"},"def":{"name":"openslideload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"openslideload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"openslideload_stream(stream:IO,**kwargs)-class-method","name":"openslideload_stream","doc":"Load stream with openslide\n\n```\n# out_, flags = Vips::Image.openslideload_stream(stream, {level: Int32, autocrop: Bool, associated: String, attach_associated: Bool, rgb: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*level* : Int32 - Load this level from the file\n\n*autocrop* : Bool - Crop to image bounds\n\n*associated* : String - Load this associated image\n\n*attach_associated* : Bool - Attach all associated images\n\n*rgb* : Bool - Output RGB (not RGBA)\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load stream with openslide

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6354,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6354"},"def":{"name":"openslideload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nopenslideload_source(source, **kwargs)\n"}},{"html_id":"pdfload(filename:String,**kwargs)-class-method","name":"pdfload","doc":"Load pdf from file\n\n```\n# out_, flags = Vips::Image.pdfload(filename, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load pdf from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6464,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6464"},"def":{"name":"pdfload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pdfload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pdfload_buffer(buffer:Bytes,**kwargs)-class-method","name":"pdfload_buffer","doc":"Load pdf from buffer\n\n```\n# out_, flags = Vips::Image.pdfload_buffer(buffer, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load pdf from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6519,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6519"},"def":{"name":"pdfload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pdfload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pdfload_source(source:Source,**kwargs)-class-method","name":"pdfload_source","doc":"Load pdf from source\n\n```\n# out_, flags = Vips::Image.pdfload_source(source, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load pdf from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6574,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6574"},"def":{"name":"pdfload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pdfload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pdfload_stream(stream:IO,**kwargs)-class-method","name":"pdfload_stream","doc":"Load pdf from stream\n\n```\n# out_, flags = Vips::Image.pdfload_stream(stream, {page: Int32, n: Int32, dpi: Float64, scale: Float64, background: Array(Float64), password: String, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*dpi* : Float64 - DPI to render at\n\n*scale* : Float64 - Factor to scale by\n\n*background* : Array(Float64) - Background colour\n\n*password* : String - Password to decrypt with\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load pdf from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6624,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6624"},"def":{"name":"pdfload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\npdfload_source(source, **kwargs)\n"}},{"html_id":"perlin(width:Int32,height:Int32,**kwargs)-class-method","name":"perlin","doc":"Make a perlin noise image\n\n```\n# out_ = Vips::Image.perlin(width, height, {cell_size: Int32, uchar: Bool, seed: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*cell_size* : Int32 - Size of Perlin cells\n\n*uchar* : Bool - Output an unsigned char image\n\n*seed* : Int32 - Random number seed\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a perlin noise image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6679,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6679"},"def":{"name":"perlin","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"perlin\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"pngload(filename:String,**kwargs)-class-method","name":"pngload","doc":"Load png from file\n\n```\n# out_, flags = Vips::Image.pngload(filename, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load png from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6865,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6865"},"def":{"name":"pngload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pngload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pngload_buffer(buffer:Bytes,**kwargs)-class-method","name":"pngload_buffer","doc":"Load png from buffer\n\n```\n# out_, flags = Vips::Image.pngload_buffer(buffer, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load png from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6910,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6910"},"def":{"name":"pngload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pngload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pngload_source(source:Source,**kwargs)-class-method","name":"pngload_source","doc":"Load png from source\n\n```\n# out_, flags = Vips::Image.pngload_source(source, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load png from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6955,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6955"},"def":{"name":"pngload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"pngload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"pngload_stream(stream:IO,**kwargs)-class-method","name":"pngload_stream","doc":"Load png from stream\n\n```\n# out_, flags = Vips::Image.pngload_stream(stream, {unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*unlimited* : Bool - Remove all denial of service limits\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load png from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6995,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6995"},"def":{"name":"pngload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\npngload_source(source, **kwargs)\n"}},{"html_id":"ppmload(filename:String,**kwargs)-class-method","name":"ppmload","doc":"Load ppm from file\n\n```\n# out_, flags = Vips::Image.ppmload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load ppm from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7271,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7271"},"def":{"name":"ppmload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"ppmload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"ppmload_source(source:Source,**kwargs)-class-method","name":"ppmload_source","doc":"Load ppm base class\n\n```\n# out_, flags = Vips::Image.ppmload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load ppm base class

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7314,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7314"},"def":{"name":"ppmload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"ppmload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"ppmload_stream(stream:IO,**kwargs)-class-method","name":"ppmload_stream","doc":"Load ppm base class\n\n```\n# out_, flags = Vips::Image.ppmload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load ppm base class

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7352,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7352"},"def":{"name":"ppmload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nppmload_source(source, **kwargs)\n"}},{"html_id":"profile_load(name:String)-class-method","name":"profile_load","doc":"Load named icc profile\n\n```\n# profile = Vips::Image.profile_load(name)\n```\n\n\nInput Parameters\n\n**Required**\n\n*name* : String - Profile name\n\n\n**Returns**\n\nLoaded profile\n","summary":"

    Load named icc profile

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/ext/image.cr","line_number":7514,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7514"},"def":{"name":"profile_load","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"((Operation.call(\"profile_load\", name)).as(Type)).as_bytes"}},{"html_id":"radload(filename:String,**kwargs)-class-method","name":"radload","doc":"Load a radiance image from a file\n\n```\n# out_, flags = Vips::Image.radload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load a radiance image from a file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7610,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7610"},"def":{"name":"radload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"radload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"radload_buffer(buffer:Bytes,**kwargs)-class-method","name":"radload_buffer","doc":"Load rad from buffer\n\n```\n# out_, flags = Vips::Image.radload_buffer(buffer, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load rad from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7653,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7653"},"def":{"name":"radload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"radload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"radload_source(source:Source,**kwargs)-class-method","name":"radload_source","doc":"Load rad from source\n\n```\n# out_, flags = Vips::Image.radload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load rad from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7696,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7696"},"def":{"name":"radload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"radload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"radload_stream(stream:IO,**kwargs)-class-method","name":"radload_stream","doc":"Load rad from stream\n\n```\n# out_, flags = Vips::Image.radload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load rad from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7734,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7734"},"def":{"name":"radload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nradload_source(source, **kwargs)\n"}},{"html_id":"rawload(filename:String,width:Int32,height:Int32,bands:Int32,**kwargs)-class-method","name":"rawload","doc":"Load raw data from a file\n\n```\n# out_, flags = Vips::Image.rawload(filename, width, height, bands, {offset: UInt32, format: Enums::BandFormat, interpretation: Enums::Interpretation, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*bands* : Int32 - Number of bands in image\n\n_Optionals_\n\n*offset* : UInt32 - Offset in bytes from start of file\n\n*format* : Enums::BandFormat - Pixel format in image\n\n*interpretation* : Enums::Interpretation - Pixel interpretation\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load raw data from a file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"}],"args_string":"(filename : String, width : Int32, height : Int32, bands : Int32, **kwargs)","args_html":"(filename : String, width : Int32, height : Int32, bands : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7913,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7913"},"def":{"name":"rawload","args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"rawload\", options, filename, width, height, bands)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"run_cmplx(image:Image,&block:Image->Image)-class-method","name":"run_cmplx","doc":"run a complex operation on a complex image, or an image with an even\nnumber of bands ... handy for things like running .polar on .index\nimages","summary":"

    run a complex operation on a complex image, or an image with an even number of bands ...

    ","abstract":false,"args":[{"name":"image","external_name":"image","restriction":"Image"}],"args_string":"(image : Image, &block : Image -> Image)","args_html":"(image : Image, &block : Image -> Image)","location":{"filename":"src/vips/image.cr","line_number":15,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L15"},"def":{"name":"run_cmplx","args":[{"name":"image","external_name":"image","restriction":"Image"}],"yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Image -> Image)"},"visibility":"Public","body":"original_format = image.format\nif ((image.format != Enums::BandFormat::Complex) && (image.format != Enums::BandFormat::Dpcomplex))\n if (image.bands % 2) != 0\n raise(VipsException.new(\"not an even number of bands\"))\n end\n if ( (image.format != Enums::BandFormat::Float) && (image.format != Enums::BandFormat::Double))\n image = image.cast(Enums::BandFormat::Float)\n end\n new_format = image.format == Enums::BandFormat::Double ? Enums::BandFormat::Dpcomplex : Enums::BandFormat::Complex\n image = image.copy(format: new_format, bands: image.bands / 2)\nend\nimage = block.call(image)\nif ((original_format != Enums::BandFormat::Complex) && (original_format != Enums::BandFormat::Dpcomplex))\n new_format = image.format == Enums::BandFormat::Dpcomplex ? Enums::BandFormat::Double : Enums::BandFormat::Float\n image = image.copy(format: new_format, bands: image.bands * 2)\nend\nimage\n"}},{"html_id":"sines(width:Int32,height:Int32,**kwargs)-class-method","name":"sines","doc":"Make a 2d sine wave\n\n```\n# out_ = Vips::Image.sines(width, height, {uchar: Bool, hfreq: Float64, vfreq: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n*hfreq* : Float64 - Horizontal spatial frequency\n\n*vfreq* : Float64 - Vertical spatial frequency\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a 2d sine wave

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8636,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8636"},"def":{"name":"sines","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"sines\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"sum(*in_:Image)-class-method","name":"sum","doc":"Sum an array of images\n\n```\n# out_ = Vips::Image.sum(in_)\n```\n\n\nInput Parameters\n\n**Required**\n\n*in* : Array(Image) - Array of input images\n\n\n**Returns**\n\nOutput image\n","summary":"

    Sum an array of images

    ","abstract":false,"args":[{"name":"in_","external_name":"in_","restriction":"Image"}],"args_string":"(*in_ : Image)","args_html":"(*in_ : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8890,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8890"},"def":{"name":"sum","args":[{"name":"in_","external_name":"in_","restriction":"Image"}],"splat_index":0,"visibility":"Public","body":"((Operation.call(\"sum\", in_)).as(Type)).as_image"}},{"html_id":"svgload(filename:String,**kwargs)-class-method","name":"svgload","doc":"Load svg with rsvg\n\n```\n# out_, flags = Vips::Image.svgload(filename, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load svg with rsvg

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8930,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8930"},"def":{"name":"svgload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"svgload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"svgload_buffer(buffer:Bytes,**kwargs)-class-method","name":"svgload_buffer","doc":"Load svg with rsvg\n\n```\n# out_, flags = Vips::Image.svgload_buffer(buffer, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load svg with rsvg

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8979,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8979"},"def":{"name":"svgload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"svgload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"svgload_source(source:Source,**kwargs)-class-method","name":"svgload_source","doc":"Load svg from source\n\n```\n# out_, flags = Vips::Image.svgload_source(source, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load svg from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9028,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9028"},"def":{"name":"svgload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"svgload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"svgload_stream(stream:IO,**kwargs)-class-method","name":"svgload_stream","doc":"Load svg from stream\n\n```\n# out_, flags = Vips::Image.svgload_stream(stream, {dpi: Float64, scale: Float64, unlimited: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*dpi* : Float64 - Render at this DPI\n\n*scale* : Float64 - Scale output by this factor\n\n*unlimited* : Bool - Allow SVG of any size\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load svg from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9072,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9072"},"def":{"name":"svgload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nsvgload_source(source, **kwargs)\n"}},{"html_id":"switch(*tests:Image)-class-method","name":"switch","doc":"Find the index of the first non-zero pixel in tests\n\n```\n# out_ = Vips::Image.switch(tests)\n```\n\n\nInput Parameters\n\n**Required**\n\n*tests* : Array(Image) - Table of images to test\n\n\n**Returns**\n\nOutput image\n","summary":"

    Find the index of the first non-zero pixel in tests

    ","abstract":false,"args":[{"name":"tests","external_name":"tests","restriction":"Image"}],"args_string":"(*tests : Image)","args_html":"(*tests : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":9095,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9095"},"def":{"name":"switch","args":[{"name":"tests","external_name":"tests","restriction":"Image"}],"splat_index":0,"visibility":"Public","body":"((Operation.call(\"switch\", tests)).as(Type)).as_image"}},{"html_id":"system(cmd_format:String,**kwargs)-class-method","name":"system","doc":"Run an external command\n\n```\n, out_, log = Vips::Image.system(cmd_format, {in_: Array(Image), out_format: String, in_format: String})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*cmd_format* : String - Command to run\n\n_Optionals_\n\n*in* : Array(Image) - Array of input images\n\n*out_format* : String - Format for output filename\n\n*in_format* : String - Format for input filename\n\n\n**Returns**\n\n_Optionals_\n\n*out* : Image? - Output image\n\n*log* : String? - Command log\n","summary":"

    Run an external command

    ","abstract":false,"args":[{"name":"cmd_format","external_name":"cmd_format","restriction":"String"}],"args_string":"(cmd_format : String, **kwargs)","args_html":"(cmd_format : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9130,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9130"},"def":{"name":"system","args":[{"name":"cmd_format","external_name":"cmd_format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"out\"] = true\noptions[\"log\"] = true\n((optsOperation.call(\"system\", options, cmd_format)).as(Type)).as_h\n"}},{"html_id":"thumbnail(filename:String,width:Int32,**kwargs)-class-method","name":"thumbnail","doc":"Generate thumbnail from file\n\n```\n# out_ = Vips::Image.thumbnail(filename, width, {height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to read from\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(filename : String, width : Int32, **kwargs)","args_html":"(filename : String, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9178,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9178"},"def":{"name":"thumbnail","args":[{"name":"filename","external_name":"filename","restriction":"String"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"thumbnail\", options, filename, width)).as(Type)).as_image\n"}},{"html_id":"thumbnail_buffer(buffer:Bytes,width:Int32,**kwargs)-class-method","name":"thumbnail_buffer","doc":"Generate thumbnail from buffer\n\n```\n# out_ = Vips::Image.thumbnail_buffer(buffer, width, {option_string: String, height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*option_string* : String - Options that are passed on to the underlying loader\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(buffer : Bytes, width : Int32, **kwargs)","args_html":"(buffer : Bytes, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9226,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9226"},"def":{"name":"thumbnail_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"thumbnail_buffer\", options, buffer, width)).as(Type)).as_image\n"}},{"html_id":"thumbnail_source(source:Source,width:Int32,**kwargs)-class-method","name":"thumbnail_source","doc":"Generate thumbnail from source\n\n```\n# out_ = Vips::Image.thumbnail_source(source, width, {option_string: String, height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*option_string* : String - Options that are passed on to the underlying loader\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(source : Source, width : Int32, **kwargs)","args_html":"(source : Source, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9318,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9318"},"def":{"name":"thumbnail_source","args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"thumbnail_source\", options, source, width)).as(Type)).as_image\n"}},{"html_id":"thumbnail_stream(stream:IO,width:Int32,**kwargs)-class-method","name":"thumbnail_stream","doc":"Generate thumbnail from stream\n\n```\n# out_ = Vips::Image.thumbnail_stream(stream, width, {option_string: String, height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n\n*width : Int32* - Size to this width\n_Optionals_\n\n*option_string* : String - Options that are passed on to the underlying loader\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_","summary":"

    Generate thumbnail from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(stream : IO, width : Int32, **kwargs)","args_html":"(stream : IO, width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9363,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9363"},"def":{"name":"thumbnail_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nthumbnail_source(source, width, **kwargs)\n"}},{"html_id":"tiffload(filename:String,**kwargs)-class-method","name":"tiffload","doc":"Load tiff from file\n\n```\n# out_, flags = Vips::Image.tiffload(filename, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load tiff from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9406,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9406"},"def":{"name":"tiffload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"tiffload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"tiffload_buffer(buffer:Bytes,**kwargs)-class-method","name":"tiffload_buffer","doc":"Load tiff from buffer\n\n```\n# out_, flags = Vips::Image.tiffload_buffer(buffer, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load tiff from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9457,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9457"},"def":{"name":"tiffload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"tiffload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"tiffload_source(source:Source,**kwargs)-class-method","name":"tiffload_source","doc":"Load tiff from source\n\n```\n# out_, flags = Vips::Image.tiffload_source(source, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load tiff from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9508,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9508"},"def":{"name":"tiffload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"tiffload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"tiffload_stream(stream:IO,**kwargs)-class-method","name":"tiffload_stream","doc":"Load tiff from stream\n\n```\n# out_, flags = Vips::Image.tiffload_stream(stream, {page: Int32, subifd: Int32, n: Int32, autorotate: Bool, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*subifd* : Int32 - Subifd index\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*autorotate* : Bool - Rotate image using orientation tag\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load tiff from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9554,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9554"},"def":{"name":"tiffload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\ntiffload_source(source, **kwargs)\n"}},{"html_id":"tonelut(**kwargs)-class-method","name":"tonelut","doc":"Build a look-up table\n\n```\n# out_ = Vips::Image.tonelut({in_max: Int32, out_max: Int32, lb: Float64, lw: Float64, ps: Float64, pm: Float64, ph: Float64, s: Float64, m: Float64, h: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*in_max* : Int32 - Size of LUT to build\n\n*out_max* : Int32 - Maximum value in output LUT\n\n*lb* : Float64 - Lowest value in output\n\n*lw* : Float64 - Highest value in output\n\n*ps* : Float64 - Position of shadow\n\n*pm* : Float64 - Position of mid-tones\n\n*ph* : Float64 - Position of highlights\n\n*s* : Float64 - Adjust shadows by this much\n\n*m* : Float64 - Adjust mid-tones by this much\n\n*h* : Float64 - Adjust highlights by this much\n\n\n**Returns**\n\nOutput image\n","summary":"

    Build a look-up table

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9903,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9903"},"def":{"name":"tonelut","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"tonelut\", options)).as(Type)).as_image\n"}},{"html_id":"vipsload(filename:String,**kwargs)-class-method","name":"vipsload","doc":"Load vips from file\n\n```\n# out_, flags = Vips::Image.vipsload(filename, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load vips from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9989,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9989"},"def":{"name":"vipsload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"vipsload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"vipsload_source(source:Source,**kwargs)-class-method","name":"vipsload_source","doc":"Load vips from source\n\n```\n# out_, flags = Vips::Image.vipsload_source(source, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load vips from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10032,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10032"},"def":{"name":"vipsload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"vipsload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"vipsload_stream(stream:IO,**kwargs)-class-method","name":"vipsload_stream","doc":"Load vips from stream\n\n```\n# out_, flags = Vips::Image.vipsload_stream(stream, {memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load vips from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10070,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10070"},"def":{"name":"vipsload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nvipsload_source(source, **kwargs)\n"}},{"html_id":"webpload(filename:String,**kwargs)-class-method","name":"webpload","doc":"Load webp from file\n\n```\n# out_, flags = Vips::Image.webpload(filename, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load webp from file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10189,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10189"},"def":{"name":"webpload","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"webpload\", options, filename)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"webpload_buffer(buffer:Bytes,**kwargs)-class-method","name":"webpload_buffer","doc":"Load webp from buffer\n\n```\n# out_, flags = Vips::Image.webpload_buffer(buffer, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*buffer* : Bytes - Buffer to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load webp from buffer

    ","abstract":false,"args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"args_string":"(buffer : Bytes, **kwargs)","args_html":"(buffer : Bytes, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10238,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10238"},"def":{"name":"webpload_buffer","args":[{"name":"buffer","external_name":"buffer","restriction":"Bytes"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"webpload_buffer\", options, buffer)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"webpload_source(source:Source,**kwargs)-class-method","name":"webpload_source","doc":"Load webp from source\n\n```\n# out_, flags = Vips::Image.webpload_source(source, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*source* : Source - Source to load from\n\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file\n","summary":"

    Load webp from source

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"}],"args_string":"(source : Source, **kwargs)","args_html":"(source : Source, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10287,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10287"},"def":{"name":"webpload_source","args":[{"name":"source","external_name":"source","restriction":"Source"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"flags\"] = true\nresults = (Operation.call(\"webpload_source\", options, source)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nflags = ((o = opts) && (val = o[\"flags\"]?)) ? val.as_enum(Enums::ForeignFlags) : nil\n{final_result, flags}\n"}},{"html_id":"webpload_stream(stream:IO,**kwargs)-class-method","name":"webpload_stream","doc":"Load webp from stream\n\n```\n# out_, flags = Vips::Image.webpload_stream(stream, {page: Int32, n: Int32, scale: Float64, memory: Bool, access: Enums::Access, fail_on: Enums::FailOn})\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to load from\n_Optionals_\n\n*page* : Int32 - First page to load\n\n*n* : Int32 - Number of pages to load, -1 for all\n\n*scale* : Float64 - Factor to scale by\n\n*memory* : Bool - Force open via memory\n\n*access* : Enums::Access - Required access pattern for this file\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n**Returns**\n\n*out* : Image - Output image\n_Optionals_\n\n*flags* : Enums::ForeignFlags? - Flags for this file","summary":"

    Load webp from stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10331,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10331"},"def":{"name":"webpload_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nwebpload_source(source, **kwargs)\n"}},{"html_id":"worley(width:Int32,height:Int32,**kwargs)-class-method","name":"worley","doc":"Make a worley noise image\n\n```\n# out_ = Vips::Image.worley(width, height, {cell_size: Int32, seed: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*cell_size* : Int32 - Size of Worley cells\n\n*seed* : Int32 - Random number seed\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a worley noise image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10611,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10611"},"def":{"name":"worley","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"worley\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"xyz(width:Int32,height:Int32,**kwargs)-class-method","name":"xyz","doc":"Make an image where pixel values are coordinates\n\n```\n# out_ = Vips::Image.xyz(width, height, {csize: Int32, dsize: Int32, esize: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*csize* : Int32 - Size of third dimension\n\n*dsize* : Int32 - Size of fourth dimension\n\n*esize* : Int32 - Size of fifth dimension\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make an image where pixel values are coordinates

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10671,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10671"},"def":{"name":"xyz","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"xyz\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"zone(width:Int32,height:Int32,**kwargs)-class-method","name":"zone","doc":"Make a zone plate\n\n```\n# out_ = Vips::Image.zone(width, height, {uchar: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*uchar* : Bool - Output an unsigned char image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make a zone plate

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10785,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10785"},"def":{"name":"zone","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"zone\", options, width, height)).as(Type)).as_image\n"}}],"constructors":[{"html_id":"imageize(match_image:Image,value):Image-class-method","name":"imageize","doc":"expand a constant into an image","summary":"

    expand a constant into an image

    ","abstract":false,"args":[{"name":"match_image","external_name":"match_image","restriction":"Image"},{"name":"value","external_name":"value","restriction":""}],"args_string":"(match_image : Image, value) : Image","args_html":"(match_image : Image, value) : Image","location":{"filename":"src/vips/image.cr","line_number":41,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L41"},"def":{"name":"imageize","args":[{"name":"match_image","external_name":"match_image","restriction":"Image"},{"name":"value","external_name":"value","restriction":""}],"return_type":"Image","visibility":"Public","body":"case value\nwhen Image\n value\nwhen Array(Array(Float64))\n new_from_array(value)\nwhen Array(Array(Int32))\n new_from_array(value)\nwhen Array(Float64)\n match_image.new_from_image(value)\nwhen Array(Int32)\n match_image.new_from_image(value)\nwhen Float64\n match_image.new_from_image(value)\nwhen Int32\n match_image.new_from_image(value)\nelse\n raise(VipsException.new(\"unsupported value type #{typeof(value)} for imageize\"))\nend"}},{"html_id":"new_from_array(array:Array,scale=1.0,offset=0.0):Image-class-method","name":"new_from_array","doc":"Create a new Image from a 1D or 2D array. A 1D array becomes an\nimage with height 1. Use `scale` and `offset` to set the scale and\noffset fields in the header. These are useful for integer\nconvolutions.\n\nFor example:\n\n```\nimage = Vips::Image.new_from_array [1, 2, 3]\n```\n\nor\n\n```\nimage = Vips::Image.new_from_array [\n [-1, -1, -1],\n [-1, 16, -1],\n [-1, -1, -1],\n], 8\n```\n\nfor a simple sharpening mask.","summary":"

    Create a new Image from a 1D or 2D array.

    ","abstract":false,"args":[{"name":"array","external_name":"array","restriction":"Array"},{"name":"scale","default_value":"1.0","external_name":"scale","restriction":""},{"name":"offset","default_value":"0.0","external_name":"offset","restriction":""}],"args_string":"(array : Array, scale = 1.0, offset = 0.0) : Image","args_html":"(array : Array, scale = 1.0, offset = 0.0) : Image","location":{"filename":"src/vips/image.cr","line_number":279,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L279"},"def":{"name":"new_from_array","args":[{"name":"array","external_name":"array","restriction":"Array"},{"name":"scale","default_value":"1.0","external_name":"scale","restriction":""},{"name":"offset","default_value":"0.0","external_name":"offset","restriction":""}],"return_type":"Image","visibility":"Public","body":"if (darr = array[0].as?(Array))\n height = array.size\n width = darr.size\n if array.all? do |x|\n x.is_a?(Array)\n end\n else\n raise(VipsException.new(\"Not a 2D array.\"))\n end\n if array.all? do |x|\n (x.as?(Array)).try(&.size) == width\n end\n else\n raise(VipsException.new(\"Array not rectangular.\"))\n end\n array = array.flatten\nelse\n height = 1\n width = array.size\nend\nif array.size == (width * height)\nelse\n raise(VipsException.new(\"Bad array dimensions.\"))\nend\nif array.all? do |x|\n x.is_a?(Number)\nend\nelse\n raise(VipsException.new(\"Not all array elements are Numeric.\"))\nend\ndblarr = Array(Float64).new(array.size) do |i|\n (array[i].as(Number)).to_f\nend\nvi = LibVips.vips_image_new_matrix_from_array(width, height, dblarr, dblarr.size)\nif vi.null?\n raise(VipsException.new(\"unable to make image from matrix\"))\nend\nimage = new(vi)\nimage.mutate do |mutable|\n mutable.set(GValue::GDouble, \"scale\", scale)\n mutable.set(GValue::GDouble, \"offset\", offset)\nend\n"}},{"html_id":"new_from_buffer(data:String|Bytes|IO,option_string:String=\"\",access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_buffer","doc":"Create a new `Image` for an image encoded in a format such as\nJPEG in a binary `String`, `Bytes` or `IO`. Load options may be passed as\nstrings or appended as a keyword arguments. For example:\n\n```\nimage = Vips::Image.new_from_buffer memory_buffer, \"shrink=2\"\n```\n\nor alternatively:\n\n```\nimage = Vips::Image.new_from_buffer memory_buffer, \"\", shrink: 2\n```\n\nThe options available depend on the file format. Try something like:\n\n```\n$ vips jpegload_buffer\n```\n\nat the command-line to see the available options. Not all loaders\nsupport load from buffer, but at least JPEG, PNG and\nTIFF images will work.\n\n**Loading is fast**: only enough of the image is loaded to be able to fill\nout the header. Pixels will only be decompressed when they are needed.","summary":"

    Create a new Image for an image encoded in a format such as JPEG in a binary String, Bytes or IO.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(data : String | Bytes | IO, option_string : String = \"\", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(data : String | Bytes | IO, option_string : String = "", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":165,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L165"},"def":{"name":"new_from_buffer","args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"buffer = case data\nwhen String\n data.to_slice\nwhen IO\n data.gets_to_end.to_slice\nelse\n data\nend\nloader = String.new((LibVips.vips_foreign_find_load_buffer(buffer, buffer.bytesize)) || Bytes.empty)\nif loader.blank?\n raise(VipsException.new(\"Unable to load from buffer\"))\nend\noptions = Optional.new(**opts)\nif access.nil?\nelse\n options[\"access\"] = access.value\nend\nEnums.add_failon(options, failon)\noptions[\"string_options\"] = option_string\n((Operation.call(loader, options, buffer)).as(Type)).as_image\n"}},{"html_id":"new_from_file(name:String,memory:Bool|Nil=nil,access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_file","doc":"Return a new `Image` for a file on disc. This method can load\nimages in any format supported by vips. The filename can include\nload options, for example:\n\n```\nimage = Vips::Image.new_from_file \"fred.jpg[shrink=2]\"\n```\n\nYou can also supply options as keyword arguments (NamedTuple), for example:\n\n```\nimage = Vips::Image.new_from_file \"fred.jpg\", shrink: 2\n```\n\nThe full set of options available depend upon the load operation that\nwill be executed. Try something like:\n\n```\n$ vips jpegload\n```\n\nat the command-line to see a summary of the available options for the\nJPEG loader.\n\n**Loading is fast**: only enough of the image is loaded to be able to fill\nout the header. Pixels will only be decompressed when they are needed.","summary":"

    Return a new Image for a file on disc.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"memory","default_value":"nil","external_name":"memory","restriction":"Bool | ::Nil"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(name : String, memory : Bool | Nil = nil, access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(name : String, memory : Bool | Nil = nil, access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":120,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L120"},"def":{"name":"new_from_file","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"memory","default_value":"nil","external_name":"memory","restriction":"Bool | ::Nil"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"filename = String.new(LibVips.vips_filename_get_filename(name))\nfile_options = String.new(LibVips.vips_filename_get_options(name))\nloader = String.new((LibVips.vips_foreign_find_load(filename)) || Bytes.empty)\nif loader.blank?\n raise(VipsException.new(\"Unable to load from #{filename}\"))\nend\noptions = Optional.new(**opts)\nif memory.nil?\nelse\n options[\"memory\"] = memory\nend\nif access.nil?\nelse\n options[\"access\"] = access.value\nend\nEnums.add_failon(options, failon)\noptions[\"string_options\"] = file_options\n((Operation.call(loader, options, filename)).as(Type)).as_image\n"}},{"html_id":"new_from_memory(data:Bytes,width:Int32,height:Int32,bands:Int32,format:Enums::BandFormat):Image-class-method","name":"new_from_memory","doc":"Wraps an Image around an area of memory containing a C-style array. For\nexample, if the `data` memory array contains four bytes with the\nvalues 1, 2, 3, 4, you can make a one-band, 2x2 uchar image from\nit like this:\n```\nimage = Image.new_from_memory(data, 2, 2, 1, Enums::BandFormat::Uchar)\n```\n\nA reference is kept to the data object, so it will not be\ngarbage-collected until the returned image is garbage-collected.\n\nThis method is useful for efficiently transferring images from GDI+\ninto libvips.","summary":"

    Wraps an Image around an area of memory containing a C-style array.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"args_string":"(data : Bytes, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","args_html":"(data : Bytes, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","location":{"filename":"src/vips/image.cr","line_number":330,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L330"},"def":{"name":"new_from_memory","args":[{"name":"data","external_name":"data","restriction":"Bytes"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"return_type":"Image","visibility":"Public","body":"vi = LibVips.vips_image_new_from_memory(Box.box(data), data.size, width, height, bands, LibVips::VipsBandFormat.from_value(format.value))\nif vi.null?\n raise(VipsException.new(\"unable to make image from memory\"))\nend\nimage = new(vi)\n(image.@references) << data\nimage\n"}},{"html_id":"new_from_memory_copy(data:Pointer(Void),size:UInt64,width:Int32,height:Int32,bands:Int32,format:Enums::BandFormat):Image-class-method","name":"new_from_memory_copy","doc":"Create a new `Image` from memory and copies the memory area. See\n`new_from_memory` for a version of this method which does not copy the\nmemory area.","summary":"

    Create a new Image from memory and copies the memory area.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"::Pointer(Void)"},{"name":"size","external_name":"size","restriction":"UInt64"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"args_string":"(data : Pointer(Void), size : UInt64, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","args_html":"(data : Pointer(Void), size : UInt64, width : Int32, height : Int32, bands : Int32, format : Enums::BandFormat) : Image","location":{"filename":"src/vips/image.cr","line_number":345,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L345"},"def":{"name":"new_from_memory_copy","args":[{"name":"data","external_name":"data","restriction":"::Pointer(Void)"},{"name":"size","external_name":"size","restriction":"UInt64"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"bands","external_name":"bands","restriction":"Int32"},{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"return_type":"Image","visibility":"Public","body":"vi = LibVips.vips_image_new_from_memory_copy(data, size, width, height, bands, LibVips::VipsBandFormat.from_value(format.value))\nif vi.null?\n raise(VipsException.new(\"unable to make image from memory\"))\nend\nnew(vi)\n"}},{"html_id":"new_from_source(source:Source,option_string:String=\"\",access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_source","doc":"Create a new `Image` from a source. Load options may be passed as\nstrings or appended as a hash. For example:\n\n```\nsource = Vips::Source.new_from_file(\"k2.jpg\")\nimage = Vips::Image.new_from_source source, \"shrink=2\"\n```\n\nor alternatively:\n\n```\nimage = Vips::Image.new_from_source source, shrink: 2\n```\n\nThe options available depend on the file format. Try something like:\n\n```\n$ vips jpegload_source\n```\n\nat the command-line to see the available options. Not all loaders\nsupport load from source, but at least JPEG, PNG and\nTIFF images will work.\n\n**Loading is fast**: only enough data is read to be able to fill\nout the header. Pixels will only be read and decompressed when they are\nneeded.","summary":"

    Create a new Image from a source.

    ","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(source : Source, option_string : String = \"\", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(source : Source, option_string : String = "", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":212,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L212"},"def":{"name":"new_from_source","args":[{"name":"source","external_name":"source","restriction":"Source"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"LibVips.vips_error_freeze\nopname = find_load_source(source)\nLibVips.vips_error_thaw\noptions = Optional.new(**opts)\nif access.nil?\nelse\n options[\"access\"] = access.value\nend\nEnums.add_failon(options, failon)\noptions[\"string_options\"] = option_string\nif opname.nil?\nelse\n return ((Operation.call(opname, options, source)).as(Type)).as_image\nend\nif (filename = source.filename)\n opname = find_load(filename)\n if opname.nil?\n raise(VipsException.new(\"unable to load from source\"))\n end\n return ((Operation.call(opname, options, filename)).as(Type)).as_image\nend\nptr = LibVips.vips_source_map_blob(source)\nif ptr.null?\n raise(VipsException.new(\"unable to load from source\"))\nend\nblob = VipsBlob.new(ptr)\nbuff, size = blob.get_data\nopname = LibVips.vips_foreign_find_load_buffer(buff, size)\nif opname.null?\n raise(VipsException.new(\"unable to load from source\"))\nend\nreturn ((Operation.call(String.new(opname), options, blob)).as(Type)).as_image\n"}},{"html_id":"new_from_stream(stream:IO,option_string:String=\"\",access:Enums::Access|Nil=nil,failon:Enums::FailOn|Nil=nil,**opts):Image-class-method","name":"new_from_stream","doc":"Load a formatted image from a stream\nThis behaves exactly as `new_from_source`, but the image is loaded from a stream rathar than from a source.\nNote: AT least libvips 8.9 is needed","summary":"

    Load a formatted image from a stream This behaves exactly as .new_from_source, but the image is loaded from a stream rathar than from a source.

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"args_string":"(stream : IO, option_string : String = \"\", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","args_html":"(stream : IO, option_string : String = "", access : Enums::Access | Nil = nil, failon : Enums::FailOn | Nil = nil, **opts) : Image","location":{"filename":"src/vips/image.cr","line_number":251,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L251"},"def":{"name":"new_from_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"option_string","default_value":"\"\"","external_name":"option_string","restriction":"String"},{"name":"access","default_value":"nil","external_name":"access","restriction":"Enums::Access | ::Nil"},{"name":"failon","default_value":"nil","external_name":"failon","restriction":"Enums::FailOn | ::Nil"}],"double_splat":{"name":"opts","external_name":"opts","restriction":""},"return_type":"Image","visibility":"Public","body":"source = SourceStream.new_from_stream(stream)\nnew_from_source(source, option_string, access, failon, **opts)\n"}},{"html_id":"new_temp_file(format:String):Image-class-method","name":"new_temp_file","doc":"Make a new temporary image.\nReturns an image backed by a temporary file. When written to with `write`, a temporary\nfile will be created on disc in the specified format. When the image is closed, the file will be deleted\nautomatically.\n\nThe file is created in the temporary directory. This is set with the environment variable `TMPDIR`.\nIf this is not set, then on Unix systems, vips will default to `/tmp`. On Windows, vips uses\n`GetTempPath()` to find the temporary director.\n\nvips uses `g_mkstemp()` to make the temporary filename. They generally look something like `vips-12-EJKFGH.v`\n*format* is the format for the temp file, for example `%s.v` for a vips format file. The `%s` is\nsubsituted by the file path.\n\nNote: `VipsException` is raised, if unable to make temp file from *format*","summary":"

    Make a new temporary image.

    ","abstract":false,"args":[{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(format : String) : Image","args_html":"(format : String) : Image","location":{"filename":"src/vips/image.cr","line_number":365,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L365"},"def":{"name":"new_temp_file","args":[{"name":"format","external_name":"format","restriction":"String"}],"return_type":"Image","visibility":"Public","body":"vi = LibVips.vips_image_new_temp_file(format)\nif vi.null?\n raise(VipsException.new(\"unable to make temp file\"))\nend\nnew(vi)\n"}}],"instance_methods":[{"html_id":"!=(other)-instance-method","name":"!=","doc":"Returns `true` if this object is not equal to *other*.\n\nBy default this method is implemented as `!(self == other)`\nso there's no need to override this unless there's a more efficient\nway to do it.","summary":"

    Returns true if this object is not equal to other.

    ","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1148,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1148"},"def":{"name":"!=","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Noteq)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Noteq, other)).as(Type)).as_image\nend"}},{"html_id":"%(other)-instance-method","name":"%","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1092,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1092"},"def":{"name":"%","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n remainder(other)\nelse\n ((call(\"remainder_const\", other)).as(Type)).as_image\nend"}},{"html_id":"&(other)-instance-method","name":"&","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1100,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1100"},"def":{"name":"&","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::And)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::And, other)).as(Type)).as_image\nend"}},{"html_id":"*(other)-instance-method","name":"*","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1076,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1076"},"def":{"name":"*","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n subtract(other)\nelse\n ((call(\"linear\", convert(other, \"multiplication\") do |x|\n x.to_f\n end, 0.0)).as(Type)).as_image\nend"}},{"html_id":"**(exp:Image)-instance-method","name":"**","doc":"Raise to the power of an image","summary":"

    Raise to the power of an image

    ","abstract":false,"args":[{"name":"exp","external_name":"exp","restriction":"Image"}],"args_string":"(exp : Image)","args_html":"(exp : Image)","location":{"filename":"src/vips/image.cr","line_number":953,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L953"},"def":{"name":"**","args":[{"name":"exp","external_name":"exp","restriction":"Image"}],"visibility":"Public","body":"self.math2(exp, Enums::OperationMath2::Pow)"}},{"html_id":"**(exp:Array(Number))-instance-method","name":"**","doc":"Raise to the power of a constant or an array of constants","summary":"

    Raise to the power of a constant or an array of constants

    ","abstract":false,"args":[{"name":"exp","external_name":"exp","restriction":"Array(Number)"}],"args_string":"(exp : Array(Number))","args_html":"(exp : Array(Number))","location":{"filename":"src/vips/image.cr","line_number":963,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L963"},"def":{"name":"**","args":[{"name":"exp","external_name":"exp","restriction":"Array(Number)"}],"visibility":"Public","body":"self.math2_const(Enums::OperationMath2::Pow, exp.map(&.to_f))"}},{"html_id":"**(*exp:Number)-instance-method","name":"**","doc":"Arc tangent of a constant or an array of constants in degrees","summary":"

    Arc tangent of a constant or an array of constants in degrees

    ","abstract":false,"args":[{"name":"exp","external_name":"exp","restriction":"Number"}],"args_string":"(*exp : Number)","args_html":"(*exp : Number)","location":{"filename":"src/vips/image.cr","line_number":973,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L973"},"def":{"name":"**","args":[{"name":"exp","external_name":"exp","restriction":"Number"}],"splat_index":0,"visibility":"Public","body":"self.math2_const(Enums::OperationMath2::Atan2, exp.map(&.to_f).to_a)"}},{"html_id":"+(other)-instance-method","name":"+","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1060,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1060"},"def":{"name":"+","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n add(other)\nelse\n ((call(\"linear\", 1.0, convert(other, \"addition\") do |x|\n x.to_f\n end)).as(Type)).as_image\nend"}},{"html_id":"-(other)-instance-method","name":"-","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1068,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1068"},"def":{"name":"-","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n subtract(other)\nelse\n ((call(\"linear\", 1.0, convert(other, \"subtraction\") do |x|\n x.to_f * -1\n end)).as(Type)).as_image\nend"}},{"html_id":"/(other)-instance-method","name":"/","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1084,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1084"},"def":{"name":"/","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n subtract(other)\nelse\n ((call(\"linear\", convert(other, \"division\") do |x|\n 1.0 / x\n end, 0.0)).as(Type)).as_image\nend"}},{"html_id":"<(other)-instance-method","name":"<","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1156,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1156"},"def":{"name":"<","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Less)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Less, other)).as(Type)).as_image\nend"}},{"html_id":"<<(other)-instance-method","name":"<<","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1124,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1124"},"def":{"name":"<<","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Lshift)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Lshift, other)).as(Type)).as_image\nend"}},{"html_id":"<=(other)-instance-method","name":"<=","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1172,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1172"},"def":{"name":"<=","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Lesseq)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Lesseq, other)).as(Type)).as_image\nend"}},{"html_id":"==(other)-instance-method","name":"==","doc":"Returns `false` (other can only be a `Value` here).","summary":"

    Returns false (other can only be a Value here).

    ","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1140,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1140"},"def":{"name":"==","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Equal)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Equal, other)).as(Type)).as_image\nend"}},{"html_id":">(other)-instance-method","name":">","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1164,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1164"},"def":{"name":">","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::More)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::More, other)).as(Type)).as_image\nend"}},{"html_id":">=(other)-instance-method","name":">=","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1180,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1180"},"def":{"name":">=","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n relational(other, Enums::OperationRelational::Moreeq)\nelse\n ((call(\"relational_const\", Enums::OperationRelational::Moreeq, other)).as(Type)).as_image\nend"}},{"html_id":">>(other)-instance-method","name":">>","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1132,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1132"},"def":{"name":">>","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Rshift)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Rshift, other)).as(Type)).as_image\nend"}},{"html_id":"[](x:Int32,y:Int32)-instance-method","name":"[]","doc":"A synonym for `getpoint`","summary":"

    A synonym for #getpoint

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32)","args_html":"(x : Int32, y : Int32)","location":{"filename":"src/vips/image.cr","line_number":1284,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1284"},"def":{"name":"[]","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"getpoint(x, y)"}},{"html_id":"[](i:Int32)-instance-method","name":"[]","doc":"pull out band elements from an image","summary":"

    pull out band elements from an image

    ","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"Int32"}],"args_string":"(i : Int32)","args_html":"(i : Int32)","location":{"filename":"src/vips/image.cr","line_number":1271,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1271"},"def":{"name":"[]","args":[{"name":"i","external_name":"i","restriction":"Int32"}],"visibility":"Public","body":"if band_exists?(i)\nelse\n raise(ArgumentError.new(\"Band index out of bounds\"))\nend\nextract_band(i)\n"}},{"html_id":"[](index:Range)-instance-method","name":"[]","doc":"Fetch bands using a range","summary":"

    Fetch bands using a range

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Range"}],"args_string":"(index : Range)","args_html":"(index : Range)","location":{"filename":"src/vips/image.cr","line_number":1277,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1277"},"def":{"name":"[]","args":[{"name":"index","external_name":"index","restriction":"Range"}],"visibility":"Public","body":"if band_exists?(index.begin)\nelse\n raise(ArgumentError.new(\"Band index out of bounds for range start\"))\nend\nif band_exists?(index.end)\nelse\n raise(ArgumentError.new(\"Band index out of bounds for range start\"))\nend\nextract_band(index.begin, n: index.end)\n"}},{"html_id":"^(other)-instance-method","name":"^","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1116,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1116"},"def":{"name":"^","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Eor)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Eor, other)).as(Type)).as_image\nend"}},{"html_id":"|(other)-instance-method","name":"|","abstract":false,"args":[{"name":"other","external_name":"other","restriction":""}],"args_string":"(other)","args_html":"(other)","location":{"filename":"src/vips/image.cr","line_number":1108,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1108"},"def":{"name":"|","args":[{"name":"other","external_name":"other","restriction":""}],"visibility":"Public","body":"if other.is_a?(Image)\n boolean(other, Enums::OperationBoolean::Or)\nelse\n ((call(\"boolean_const\", Enums::OperationBoolean::Or, other)).as(Type)).as_image\nend"}},{"html_id":"a_cosh:Image-instance-method","name":"a_cosh","doc":"Return the inverse hyperbolic cosine of an image in degrees.","summary":"

    Return the inverse hyperbolic cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":923,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L923"},"def":{"name":"a_cosh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Acosh)"}},{"html_id":"a_sinh:Image-instance-method","name":"a_sinh","doc":"Return the inverse hyperbolic sine of an image in degrees.","summary":"

    Return the inverse hyperbolic sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":918,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L918"},"def":{"name":"a_sinh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Asinh)"}},{"html_id":"a_tan2(x:Image)-instance-method","name":"a_tan2","doc":"Arc tangent of an image in degrees.","summary":"

    Arc tangent of an image in degrees.

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Image"}],"args_string":"(x : Image)","args_html":"(x : Image)","location":{"filename":"src/vips/image.cr","line_number":968,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L968"},"def":{"name":"a_tan2","args":[{"name":"x","external_name":"x","restriction":"Image"}],"visibility":"Public","body":"self.math2(x, Enums::OperationMath2::Atan2)"}},{"html_id":"a_tanh:Image-instance-method","name":"a_tanh","doc":"Return the inverse hyperbolic tangent of an image in degrees.","summary":"

    Return the inverse hyperbolic tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":928,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L928"},"def":{"name":"a_tanh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Atanh)"}},{"html_id":"abs-instance-method","name":"abs","doc":"Absolute value of an image\n\n```\n# out_ = in.abs()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Absolute value of an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":25,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L25"},"def":{"name":"abs","visibility":"Public","body":"((self.call(\"abs\")).as(Type)).as_image"}},{"html_id":"acos:Image-instance-method","name":"acos","doc":"Return the inverse cosine of an image in degrees.","summary":"

    Return the inverse cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":893,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L893"},"def":{"name":"acos","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Acos)"}},{"html_id":"add(right:Image)-instance-method","name":"add","doc":"Add two images\n\n```\n# out_ = left.add(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Add two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L47"},"def":{"name":"add","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"add\", right)).as(Type)).as_image"}},{"html_id":"add_alpha:Image-instance-method","name":"add_alpha","doc":"Append an alpha channel to an image.","summary":"

    Append an alpha channel to an image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1197,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1197"},"def":{"name":"add_alpha","return_type":"Image","visibility":"Public","body":"if Vips.at_least_libvips?(8, 6)\n (LibVips.vips_addalpha(self, out vi)).tap do |ret|\n if ret == 0\n else\n raise(VipsException.new(\"unable to append alpha channel to image\"))\n end\n end\n return Image.new(vi)\nend\nmax_alpha = [Enums::Interpretation::Grey16, Enums::Interpretation::Rgb16].includes?(interpretation) ? 65535 : 255\nbandjoin(max_alpha)\n"}},{"html_id":"affine(matrix:Array(Float64),**kwargs)-instance-method","name":"affine","doc":"Affine transform of an image\n\n```\n# out_ = in.affine(matrix, {interpolate: Interpolate, oarea: Array(Int32), odx: Float64, ody: Float64, idx: Float64, idy: Float64, background: Array(Float64), premultiplied: Bool, extend: Enums::Extend})\n```\n\n\nInput Parameters\n\n**Required**\n\n*matrix* : Array(Float64) - Transformation matrix\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*oarea* : Array(Int32) - Area of output to generate\n\n*odx* : Float64 - Horizontal output displacement\n\n*ody* : Float64 - Vertical output displacement\n\n*idx* : Float64 - Horizontal input displacement\n\n*idy* : Float64 - Vertical input displacement\n\n*background* : Array(Float64) - Background value\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Affine transform of an image

    ","abstract":false,"args":[{"name":"matrix","external_name":"matrix","restriction":"Array(Float64)"}],"args_string":"(matrix : Array(Float64), **kwargs)","args_html":"(matrix : Array(Float64), **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":89,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L89"},"def":{"name":"affine","args":[{"name":"matrix","external_name":"matrix","restriction":"Array(Float64)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"affine\", options, matrix)).as(Type)).as_image\n"}},{"html_id":"asin:Image-instance-method","name":"asin","doc":"Return the inverse sine of an image in degrees.","summary":"

    Return the inverse sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":888,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L888"},"def":{"name":"asin","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Asin)"}},{"html_id":"atan:Image-instance-method","name":"atan","doc":"Return the inverse tangent of an image in degrees.","summary":"

    Return the inverse tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":898,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L898"},"def":{"name":"atan","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Atan)"}},{"html_id":"autorot-instance-method","name":"autorot","doc":"Autorotate image by exif tag\n\n```\n# out_, angle, flip = in.autorot()\n```\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*angle* : Enums::Angle? - Angle image was rotated by\n\n*flip* : Bool? - Whether the image was flipped or not\n","summary":"

    Autorotate image by exif tag

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":195,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L195"},"def":{"name":"autorot","visibility":"Public","body":"optional_output = Optional.new(**{angle: true, flip: true})\nresults = (self.call(\"autorot\", optional_output)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nangle = ((o = opts) && (val = o[\"angle\"]?)) ? val.as_enum(Enums::Angle) : nil\nflip = ((o = opts) && (val = o[\"flip\"]?)) ? val.as_b : nil\n{final_result, angle, flip}\n"}},{"html_id":"avg-instance-method","name":"avg","doc":"Find image average\n\n```\n# out_ = in.avg()\n```\n\n\n**Returns**\n\nOutput value\n","summary":"

    Find image average

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":219,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L219"},"def":{"name":"avg","visibility":"Public","body":"((self.call(\"avg\")).as(Type)).as_f64"}},{"html_id":"band_exists?(i:Int32)-instance-method","name":"band_exists?","doc":"Does band exist in image.","summary":"

    Does band exist in image.

    ","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"Int32"}],"args_string":"(i : Int32)","args_html":"(i : Int32)","location":{"filename":"src/vips/image.cr","line_number":1266,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1266"},"def":{"name":"band_exists?","args":[{"name":"i","external_name":"i","restriction":"Int32"}],"visibility":"Public","body":"i >= 0 && i <= (bands - 1)"}},{"html_id":"bandand-instance-method","name":"bandand","doc":"AND the bands of an image together","summary":"

    AND the bands of an image together

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1033,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1033"},"def":{"name":"bandand","visibility":"Public","body":"((self.call(\"bandbool\", Enums::OperationBoolean::And)).as(Type)).as_image"}},{"html_id":"bandbool(boolean:Enums::OperationBoolean)-instance-method","name":"bandbool","doc":"Boolean operation across image bands\n\n```\n# out_ = in.bandbool(boolean)\n```\n\n\nInput Parameters\n\n**Required**\n\n*boolean* : Enums::OperationBoolean - Boolean to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Boolean operation across image bands

    ","abstract":false,"args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"args_string":"(boolean : Enums::OperationBoolean)","args_html":"(boolean : Enums::OperationBoolean)","location":{"filename":"src/vips/ext/image.cr","line_number":241,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L241"},"def":{"name":"bandbool","args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"visibility":"Public","body":"((self.call(\"bandbool\", boolean)).as(Type)).as_image"}},{"html_id":"bandeor-instance-method","name":"bandeor","doc":"EOR the bands of an image together","summary":"

    EOR the bands of an image together

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1043,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1043"},"def":{"name":"bandeor","visibility":"Public","body":"((self.call(\"bandbool\", Enums::OperationBoolean::Eor)).as(Type)).as_image"}},{"html_id":"bandfold(**kwargs)-instance-method","name":"bandfold","doc":"Fold up x axis into bands\n\n```\n# out_ = in.bandfold({factor: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*factor* : Int32 - Fold by this factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Fold up x axis into bands

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":263,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L263"},"def":{"name":"bandfold","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"bandfold\", options)).as(Type)).as_image\n"}},{"html_id":"bandjoin(arr:Array(Int32)):Image-instance-method","name":"bandjoin","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(Int32)"}],"args_string":"(arr : Array(Int32)) : Image","args_html":"(arr : Array(Int32)) : Image","location":{"filename":"src/vips/image.cr","line_number":705,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L705"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Array(Int32)"}],"return_type":"Image","visibility":"Public","body":"bandjoin(arr.map(&.to_f))"}},{"html_id":"bandjoin(arr:Array(Float64)):Image-instance-method","name":"bandjoin","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(Float64)"}],"args_string":"(arr : Array(Float64)) : Image","args_html":"(arr : Array(Float64)) : Image","location":{"filename":"src/vips/image.cr","line_number":709,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L709"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Array(Float64)"}],"return_type":"Image","visibility":"Public","body":"bandjoin_const(arr)"}},{"html_id":"bandjoin(arr:Array(Image)):Image-instance-method","name":"bandjoin","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(Image)"}],"args_string":"(arr : Array(Image)) : Image","args_html":"(arr : Array(Image)) : Image","location":{"filename":"src/vips/image.cr","line_number":718,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L718"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Array(Image)"}],"return_type":"Image","visibility":"Public","body":"((call(\"bandjoin\", arr.unshift(self))).as(Type)).as_image"}},{"html_id":"bandjoin(*arr:Float64):Image-instance-method","name":"bandjoin","doc":"Append a set of constants bandwise","summary":"

    Append a set of constants bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Float64"}],"args_string":"(*arr : Float64) : Image","args_html":"(*arr : Float64) : Image","location":{"filename":"src/vips/image.cr","line_number":696,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L696"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Float64"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"bandjoin(arr.to_a)"}},{"html_id":"bandjoin(*arr:Int32):Image-instance-method","name":"bandjoin","doc":"Append a set of constants bandwise","summary":"

    Append a set of constants bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Int32"}],"args_string":"(*arr : Int32) : Image","args_html":"(*arr : Int32) : Image","location":{"filename":"src/vips/image.cr","line_number":701,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L701"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Int32"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"bandjoin(arr.to_a)"}},{"html_id":"bandjoin(*arr:Image):Image-instance-method","name":"bandjoin","doc":"Append a set of images bandwise","summary":"

    Append a set of images bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Image"}],"args_string":"(*arr : Image) : Image","args_html":"(*arr : Image) : Image","location":{"filename":"src/vips/image.cr","line_number":714,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L714"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Image"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"bandjoin(arr.to_a)"}},{"html_id":"bandjoin(*arr:Image|Number):Image-instance-method","name":"bandjoin","doc":"Append a set of mixed images and constants bandwise","summary":"

    Append a set of mixed images and constants bandwise

    ","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Image | Number"}],"args_string":"(*arr : Image | Number) : Image","args_html":"(*arr : Image | Number) : Image","location":{"filename":"src/vips/image.cr","line_number":723,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L723"},"def":{"name":"bandjoin","args":[{"name":"arr","external_name":"arr","restriction":"Image | Number"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"bandjoin\", arr.to_a.unshift(self))).as(Type)).as_image"}},{"html_id":"bandjoin_const(c:Array(Float64))-instance-method","name":"bandjoin_const","doc":"Append a constant band to an image\n\n```\n# out_ = in.bandjoin_const(c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*c* : Array(Float64) - Array of constants to add\n\n\n**Returns**\n\nOutput image\n","summary":"

    Append a constant band to an image

    ","abstract":false,"args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(c : Array(Float64))","args_html":"(c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":287,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L287"},"def":{"name":"bandjoin_const","args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"bandjoin_const\", c)).as(Type)).as_image"}},{"html_id":"bandmean-instance-method","name":"bandmean","doc":"Band-wise average\n\n```\n# out_ = in.bandmean()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Band-wise average

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":302,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L302"},"def":{"name":"bandmean","visibility":"Public","body":"((self.call(\"bandmean\")).as(Type)).as_image"}},{"html_id":"bandor-instance-method","name":"bandor","doc":"OR the bands of an image together","summary":"

    OR the bands of an image together

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1038,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1038"},"def":{"name":"bandor","visibility":"Public","body":"((self.call(\"bandbool\", Enums::OperationBoolean::Or)).as(Type)).as_image"}},{"html_id":"bandrank(*vals:Float64,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of constants.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of constants.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":"Float64"}],"args_string":"(*vals : Float64, **kwargs)","args_html":"(*vals : Float64, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":732,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L732"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"options = Optional.new(**kwargs)\n((call(\"bandrank\", options, vals.to_a)).as(Type)).as_image\n"}},{"html_id":"bandrank(*vals:Int32,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of constants.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of constants.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":"Int32"}],"args_string":"(*vals : Int32, **kwargs)","args_html":"(*vals : Int32, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":742,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L742"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"bandrank(*vals.map(&.to_f), **kwargs)"}},{"html_id":"bandrank(*vals:Image,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of images.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of images.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":"Image"}],"args_string":"(*vals : Image, **kwargs)","args_html":"(*vals : Image, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":751,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L751"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"options = Optional.new(**kwargs)\n((call(\"bandrank\", options, vals.to_a.unshift(self))).as(Type)).as_image\n"}},{"html_id":"bandrank(*vals,**kwargs)-instance-method","name":"bandrank","doc":"Band-wise rank a set of mixed images and constants.\n\n_Optionals_\n\n*index* : Int32 - Select this band element from sorted list","summary":"

    Band-wise rank a set of mixed images and constants.

    ","abstract":false,"args":[{"name":"vals","external_name":"vals","restriction":""}],"args_string":"(*vals, **kwargs)","args_html":"(*vals, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":761,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L761"},"def":{"name":"bandrank","args":[{"name":"vals","external_name":"vals","restriction":""}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"splat_index":0,"visibility":"Public","body":"options = Optional.new(**kwargs)\n((call(\"bandrank\", options, vals.to_a.unshift(self))).as(Type)).as_image\n"}},{"html_id":"bands:Int32-instance-method","name":"bands","doc":"Number of bands in image","summary":"

    Number of bands in image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10826,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10826"},"def":{"name":"bands","return_type":"Int32","visibility":"Public","body":"(get(\"bands\")).as_i32"}},{"html_id":"bandsplit:Array(Image)-instance-method","name":"bandsplit","doc":"Split an n-band image into n separate images.","summary":"

    Split an n-band image into n separate images.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1289,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1289"},"def":{"name":"bandsplit","return_type":"Array(Image)","visibility":"Public","body":"(0...bands).map do |i|\n extract_band(i)\nend"}},{"html_id":"bandunfold(**kwargs)-instance-method","name":"bandunfold","doc":"Unfold image bands into x axis\n\n```\n# out_ = in.bandunfold({factor: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*factor* : Int32 - Unfold by this factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unfold image bands into x axis

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":324,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L324"},"def":{"name":"bandunfold","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"bandunfold\", options)).as(Type)).as_image\n"}},{"html_id":"boolean(right:Image,boolean:Enums::OperationBoolean)-instance-method","name":"boolean","doc":"Boolean operation on two images\n\n```\n# out_ = left.boolean(right, boolean)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*boolean* : Enums::OperationBoolean - Boolean to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Boolean operation on two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"args_string":"(right : Image, boolean : Enums::OperationBoolean)","args_html":"(right : Image, boolean : Enums::OperationBoolean)","location":{"filename":"src/vips/ext/image.cr","line_number":380,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L380"},"def":{"name":"boolean","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"}],"visibility":"Public","body":"((self.call(\"boolean\", right, boolean)).as(Type)).as_image"}},{"html_id":"boolean_const(boolean:Enums::OperationBoolean,c:Array(Float64))-instance-method","name":"boolean_const","doc":"Boolean operations against a constant\n\n```\n# out_ = in.boolean_const(boolean, c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*boolean* : Enums::OperationBoolean - Boolean to perform\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Boolean operations against a constant

    ","abstract":false,"args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(boolean : Enums::OperationBoolean, c : Array(Float64))","args_html":"(boolean : Enums::OperationBoolean, c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":404,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L404"},"def":{"name":"boolean_const","args":[{"name":"boolean","external_name":"boolean","restriction":"Enums::OperationBoolean"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"boolean_const\", boolean, c)).as(Type)).as_image"}},{"html_id":"buildlut-instance-method","name":"buildlut","doc":"Build a look-up table\n\n```\n# out_ = in.buildlut()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Build a look-up table

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":419,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L419"},"def":{"name":"buildlut","visibility":"Public","body":"((self.call(\"buildlut\")).as(Type)).as_image"}},{"html_id":"byteswap-instance-method","name":"byteswap","doc":"Byteswap an image\n\n```\n# out_ = in.byteswap()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Byteswap an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":434,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L434"},"def":{"name":"byteswap","visibility":"Public","body":"((self.call(\"byteswap\")).as(Type)).as_image"}},{"html_id":"cache(**kwargs)-instance-method","name":"cache","doc":"Cache an image\n\n```\n# out_ = in.cache({max_tiles: Int32, tile_height: Int32, tile_width: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*max_tiles* : Int32 - Maximum number of tiles to cache\n\n*tile_height* : Int32 - Tile height in pixels\n\n*tile_width* : Int32 - Tile width in pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cache an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":460,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L460"},"def":{"name":"cache","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"cache\", options)).as(Type)).as_image\n"}},{"html_id":"canny(**kwargs)-instance-method","name":"canny","doc":"Canny edge detector\n\n```\n# out_ = in.canny({sigma: Float64, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*sigma* : Float64 - Sigma of Gaussian\n\n*precision* : Enums::Precision - Convolve with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Canny edge detector

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":486,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L486"},"def":{"name":"canny","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"canny\", options)).as(Type)).as_image\n"}},{"html_id":"case(*args:Float64):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an array of constants","summary":"

    Use pixel values to pick cases from an array of constants

    ","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Float64"}],"args_string":"(*args : Float64) : Image","args_html":"(*args : Float64) : Image","location":{"filename":"src/vips/image.cr","line_number":676,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L676"},"def":{"name":"case","args":[{"name":"args","external_name":"args","restriction":"Float64"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"case\", args.to_a)).as(Type)).as_image"}},{"html_id":"case(*args:Int32):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an array of constants","summary":"

    Use pixel values to pick cases from an array of constants

    ","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Int32"}],"args_string":"(*args : Int32) : Image","args_html":"(*args : Int32) : Image","location":{"filename":"src/vips/image.cr","line_number":681,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L681"},"def":{"name":"case","args":[{"name":"args","external_name":"args","restriction":"Int32"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"self.case(*args.map(&.to_f))"}},{"html_id":"case(*images:Image):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an array of images.","summary":"

    Use pixel values to pick cases from an array of images.

    ","abstract":false,"args":[{"name":"images","external_name":"images","restriction":"Image"}],"args_string":"(*images : Image) : Image","args_html":"(*images : Image) : Image","location":{"filename":"src/vips/image.cr","line_number":686,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L686"},"def":{"name":"case","args":[{"name":"images","external_name":"images","restriction":"Image"}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"case\", images.to_a)).as(Type)).as_image"}},{"html_id":"case(*args):Image-instance-method","name":"case","doc":"Use pixel values to pick cases from an a set of mixed images and constants.","summary":"

    Use pixel values to pick cases from an a set of mixed images and constants.

    ","abstract":false,"args":[{"name":"args","external_name":"args","restriction":""}],"args_string":"(*args) : Image","args_html":"(*args) : Image","location":{"filename":"src/vips/image.cr","line_number":691,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L691"},"def":{"name":"case","args":[{"name":"args","external_name":"args","restriction":""}],"splat_index":0,"return_type":"Image","visibility":"Public","body":"((call(\"case\", args.to_a)).as(Type)).as_image"}},{"html_id":"cast(format:Enums::BandFormat,**kwargs)-instance-method","name":"cast","doc":"Cast an image\n\n```\n# out_ = in.cast(format, {shift: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*format* : Enums::BandFormat - Format to cast to\n\n_Optionals_\n\n*shift* : Bool - Shift integer values up and down\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cast an image

    ","abstract":false,"args":[{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"args_string":"(format : Enums::BandFormat, **kwargs)","args_html":"(format : Enums::BandFormat, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":514,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L514"},"def":{"name":"cast","args":[{"name":"format","external_name":"format","restriction":"Enums::BandFormat"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"cast\", options, format)).as(Type)).as_image\n"}},{"html_id":"ceil:Image-instance-method","name":"ceil","doc":"Return the smallest integral value not less than the argument.","summary":"

    Return the smallest integral value not less than the argument.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1023,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1023"},"def":{"name":"ceil","return_type":"Image","visibility":"Public","body":"((self.call(\"round\", Enums::OperationRound::Ceil)).as(Type)).as_image"}},{"html_id":"cmc2lch-instance-method","name":"cmc2lch","doc":"Transform lch to cmc\n\n```\n# out_ = in.cmc2lch()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lch to cmc

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":531,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L531"},"def":{"name":"cmc2lch","visibility":"Public","body":"((self.call(\"cmc2lch\")).as(Type)).as_image"}},{"html_id":"cmyk2xyz-instance-method","name":"cmyk2xyz","doc":"Transform cmyk to xyz\n\n```\n# out_ = in.cmyk2xyz()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform cmyk to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":546,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L546"},"def":{"name":"cmyk2xyz","visibility":"Public","body":"((self.call(\"cmyk2xyz\")).as(Type)).as_image"}},{"html_id":"coding:Enums::Coding-instance-method","name":"coding","doc":"Pixel coding","summary":"

    Pixel coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10836,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10836"},"def":{"name":"coding","return_type":"Enums::Coding","visibility":"Public","body":"(get(\"coding\")).as_enum(Enums::Coding)"}},{"html_id":"colourspace(space:Enums::Interpretation,**kwargs)-instance-method","name":"colourspace","doc":"Convert to a new colorspace\n\n```\n# out_ = in.colourspace(space, {source_space: Enums::Interpretation})\n```\n\n\nInput Parameters\n\n**Required**\n\n*space* : Enums::Interpretation - Destination color space\n\n_Optionals_\n\n*source_space* : Enums::Interpretation - Source color space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert to a new colorspace

    ","abstract":false,"args":[{"name":"space","external_name":"space","restriction":"Enums::Interpretation"}],"args_string":"(space : Enums::Interpretation, **kwargs)","args_html":"(space : Enums::Interpretation, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":572,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L572"},"def":{"name":"colourspace","args":[{"name":"space","external_name":"space","restriction":"Enums::Interpretation"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"colourspace\", options, space)).as(Type)).as_image\n"}},{"html_id":"compass(mask:Image,**kwargs)-instance-method","name":"compass","doc":"Convolve with rotating mask\n\n```\n# out_ = in.compass(mask, {times: Int32, angle: Enums::Angle45, combine: Enums::Combine, precision: Enums::Precision, layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*times* : Int32 - Rotate and convolve this many times\n\n*angle* : Enums::Angle45 - Rotate mask by this much between convolutions\n\n*combine* : Enums::Combine - Combine convolution results like this\n\n*precision* : Enums::Precision - Convolve with this precision\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convolve with rotating mask

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":610,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L610"},"def":{"name":"compass","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"compass\", options, mask)).as(Type)).as_image\n"}},{"html_id":"complex(cmplx:Enums::OperationComplex)-instance-method","name":"complex","doc":"Perform a complex operation on an image\n\n```\n# out_ = in.complex(cmplx)\n```\n\n\nInput Parameters\n\n**Required**\n\n*cmplx* : Enums::OperationComplex - Complex to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Perform a complex operation on an image

    ","abstract":false,"args":[{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex"}],"args_string":"(cmplx : Enums::OperationComplex)","args_html":"(cmplx : Enums::OperationComplex)","location":{"filename":"src/vips/ext/image.cr","line_number":634,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L634"},"def":{"name":"complex","args":[{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex"}],"visibility":"Public","body":"((self.call(\"complex\", cmplx)).as(Type)).as_image"}},{"html_id":"complex2(right:Image,cmplx:Enums::OperationComplex2)-instance-method","name":"complex2","doc":"Complex binary operations on two images\n\n```\n# out_ = left.complex2(right, cmplx)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*cmplx* : Enums::OperationComplex2 - Binary complex operation to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Complex binary operations on two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex2"}],"args_string":"(right : Image, cmplx : Enums::OperationComplex2)","args_html":"(right : Image, cmplx : Enums::OperationComplex2)","location":{"filename":"src/vips/ext/image.cr","line_number":658,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L658"},"def":{"name":"complex2","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"cmplx","external_name":"cmplx","restriction":"Enums::OperationComplex2"}],"visibility":"Public","body":"((self.call(\"complex2\", right, cmplx)).as(Type)).as_image"}},{"html_id":"complexform(right:Image)-instance-method","name":"complexform","doc":"Form a complex image from two real images\n\n```\n# out_ = left.complexform(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Form a complex image from two real images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":680,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L680"},"def":{"name":"complexform","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"complexform\", right)).as(Type)).as_image"}},{"html_id":"complexget(get:Enums::OperationComplexget)-instance-method","name":"complexget","doc":"Get a component from a complex image\n\n```\n# out_ = in.complexget(get)\n```\n\n\nInput Parameters\n\n**Required**\n\n*get* : Enums::OperationComplexget - Complex to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Get a component from a complex image

    ","abstract":false,"args":[{"name":"get","external_name":"get","restriction":"Enums::OperationComplexget"}],"args_string":"(get : Enums::OperationComplexget)","args_html":"(get : Enums::OperationComplexget)","location":{"filename":"src/vips/ext/image.cr","line_number":702,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L702"},"def":{"name":"complexget","args":[{"name":"get","external_name":"get","restriction":"Enums::OperationComplexget"}],"visibility":"Public","body":"((self.call(\"complexget\", get)).as(Type)).as_image"}},{"html_id":"composite(images:Array(Image),modes:Array(Enums::BlendMode),**kwargs)-instance-method","name":"composite","doc":"Blend an array of images with an array of blend modes\n\n```\n# out_ = Vips::Image.composite(images, modes, {x: Array(Int32), y: Array(Int32), compositing_space: Enums::Interpretation, premultiplied: Bool})\n```\n\nInput Parameters\n\n**Required**\n\n*images* : Array(Image) - Array of input images\n\n*modes* : Array(Enums::BlendMode) - Array of `Enums::BlendMode` to join with\n\n_Optionals_\n\n*x* : Array(Int32) - Array of x coordinates to join at\n\n*y* : Array(Int32) - Array of y coordinates to join at\n\n*compositing_space* : `Enums::Interpretation` - Composite images in this colour space\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n**Returns**\n\nOutput `Image`","summary":"

    Blend an array of images with an array of blend modes

    ","abstract":false,"args":[{"name":"images","external_name":"images","restriction":"Array(Image)"},{"name":"modes","external_name":"modes","restriction":"Array(Enums::BlendMode)"}],"args_string":"(images : Array(Image), modes : Array(Enums::BlendMode), **kwargs)","args_html":"(images : Array(Image), modes : Array(Enums::BlendMode), **kwargs)","location":{"filename":"src/vips/image.cr","line_number":793,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L793"},"def":{"name":"composite","args":[{"name":"images","external_name":"images","restriction":"Array(Image)"},{"name":"modes","external_name":"modes","restriction":"Array(Enums::BlendMode)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((Operation.call(\"composite\", options, images.unshift(self), modes)).as(Type)).as_image\n"}},{"html_id":"composite(image:Image,mode:Enums::BlendMode,**kwargs)-instance-method","name":"composite","doc":"A synonym for `composite2`\n\n```\n# out_ = Vips::Image.composite(overlay, mode, {x: Array(Int32), y: Array(Int32), compositing_space: Enums::Interpretation, premultiplied: Bool})\n```\n\nInput Parameters\n\n**Required**\n\n*overlay* : Image - Overlay image\n\n*modes : Enums::BlendMode - VipsBlendMode to join with\n\n_Optionals_\n\n*x* : Int32 - x position of overlay\n\n*y* : Int32 - y position of overlay\n\n*compositing_space* : `Enums::Interpretation` - Composite images in this colour space\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n**Returns**\n\nOutput image","summary":"

    A synonym for #composite2

    ","abstract":false,"args":[{"name":"image","external_name":"image","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"args_string":"(image : Image, mode : Enums::BlendMode, **kwargs)","args_html":"(image : Image, mode : Enums::BlendMode, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":826,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L826"},"def":{"name":"composite","args":[{"name":"image","external_name":"image","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"composite2(image, mode, **kwargs)"}},{"html_id":"composite2(overlay:Image,mode:Enums::BlendMode,**kwargs)-instance-method","name":"composite2","doc":"Blend a pair of images with a blend mode\n\n```\n# out_ = base.composite2(overlay, mode, {x: Int32, y: Int32, compositing_space: Enums::Interpretation, premultiplied: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*overlay* : Image - Overlay image\n\n*mode* : Enums::BlendMode - VipsBlendMode to join with\n\n_Optionals_\n\n*x* : Int32 - x position of overlay\n\n*y* : Int32 - y position of overlay\n\n*compositing_space* : Enums::Interpretation - Composite images in this colour space\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n\n**Returns**\n\nOutput image\n","summary":"

    Blend a pair of images with a blend mode

    ","abstract":false,"args":[{"name":"overlay","external_name":"overlay","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"args_string":"(overlay : Image, mode : Enums::BlendMode, **kwargs)","args_html":"(overlay : Image, mode : Enums::BlendMode, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":736,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L736"},"def":{"name":"composite2","args":[{"name":"overlay","external_name":"overlay","restriction":"Image"},{"name":"mode","external_name":"mode","restriction":"Enums::BlendMode"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"composite2\", options, overlay, mode)).as(Type)).as_image\n"}},{"html_id":"conj:Image-instance-method","name":"conj","doc":"Return the complex conjugate of an image.","summary":"

    Return the complex conjugate of an image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":868,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L868"},"def":{"name":"conj","return_type":"Image","visibility":"Public","body":"complex(Enums::OperationComplex::Conj)"}},{"html_id":"contains(name:String)-instance-method","name":"contains","doc":"Check if the underlying image contains an property of metadata.","summary":"

    Check if the underlying image contains an property of metadata.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/image.cr","line_number":574,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L574"},"def":{"name":"contains","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"(get_typeof(name)) != 0"}},{"html_id":"conv(mask:Image,**kwargs)-instance-method","name":"conv","doc":"Convolution operation\n\n```\n# out_ = in.conv(mask, {precision: Enums::Precision, layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*precision* : Enums::Precision - Convolve with this precision\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":768,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L768"},"def":{"name":"conv","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"conv\", options, mask)).as(Type)).as_image\n"}},{"html_id":"conva(mask:Image,**kwargs)-instance-method","name":"conva","doc":"Approximate integer convolution\n\n```\n# out_ = in.conva(mask, {layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Approximate integer convolution

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":798,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L798"},"def":{"name":"conva","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"conva\", options, mask)).as(Type)).as_image\n"}},{"html_id":"convasep(mask:Image,**kwargs)-instance-method","name":"convasep","doc":"Approximate separable integer convolution\n\n```\n# out_ = in.convasep(mask, {layers: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*layers* : Int32 - Use this many layers in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Approximate separable integer convolution

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":826,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L826"},"def":{"name":"convasep","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"convasep\", options, mask)).as(Type)).as_image\n"}},{"html_id":"convf(mask:Image)-instance-method","name":"convf","doc":"Float convolution operation\n\n```\n# out_ = in.convf(mask)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Float convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":850,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L850"},"def":{"name":"convf","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"convf\", mask)).as(Type)).as_image"}},{"html_id":"convi(mask:Image)-instance-method","name":"convi","doc":"Int convolution operation\n\n```\n# out_ = in.convi(mask)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Int convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":872,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L872"},"def":{"name":"convi","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"convi\", mask)).as(Type)).as_image"}},{"html_id":"convsep(mask:Image,**kwargs)-instance-method","name":"convsep","doc":"Seperable convolution operation\n\n```\n# out_ = in.convsep(mask, {precision: Enums::Precision, layers: Int32, cluster: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n_Optionals_\n\n*precision* : Enums::Precision - Convolve with this precision\n\n*layers* : Int32 - Use this many layers in approximation\n\n*cluster* : Int32 - Cluster lines closer than this in approximation\n\n\n**Returns**\n\nOutput image\n","summary":"

    Seperable convolution operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image, **kwargs)","args_html":"(mask : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":902,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L902"},"def":{"name":"convsep","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"convsep\", options, mask)).as(Type)).as_image\n"}},{"html_id":"copy(**kwargs)-instance-method","name":"copy","doc":"Copy an image\n\n```\n# out_ = in.copy({width: Int32, height: Int32, bands: Int32, format: Enums::BandFormat, coding: Enums::Coding, interpretation: Enums::Interpretation, xres: Float64, yres: Float64, xoffset: Int32, yoffset: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n*bands* : Int32 - Number of bands in image\n\n*format* : Enums::BandFormat - Pixel format in image\n\n*coding* : Enums::Coding - Pixel coding\n\n*interpretation* : Enums::Interpretation - Pixel interpretation\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*xoffset* : Int32 - Horizontal offset of origin\n\n*yoffset* : Int32 - Vertical offset of origin\n\n\n**Returns**\n\nOutput image\n","summary":"

    Copy an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":944,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L944"},"def":{"name":"copy","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"copy\", options)).as(Type)).as_image\n"}},{"html_id":"copy_memory-instance-method","name":"copy_memory","doc":"Copy an image to a memory area.\n\nThis can be useful for reusing results, but can obviously use a lot of\nmemory for large images. See {Image#tilecache} for a way of caching\nparts of an image.\n\nReturns new memory `Image`","summary":"

    Copy an image to a memory area.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":405,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L405"},"def":{"name":"copy_memory","visibility":"Public","body":"vi = LibVips.vips_image_copy_memory(self)\nif vi.null?\n raise(VipsException.new(\"unable to copy to memory\"))\nend\nnew(vi)\n"}},{"html_id":"cos:Image-instance-method","name":"cos","doc":"Return the cosine of an image in degrees.","summary":"

    Return the cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":878,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L878"},"def":{"name":"cos","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Cos)"}},{"html_id":"cosh:Image-instance-method","name":"cosh","doc":"Return the hyperbolic cosine of an image in degrees.","summary":"

    Return the hyperbolic cosine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":908,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L908"},"def":{"name":"cosh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Cosh)"}},{"html_id":"countlines(direction:Enums::Direction)-instance-method","name":"countlines","doc":"Count lines in an image\n\n```\n# nolines = in.countlines(direction)\n```\n\n\nInput Parameters\n\n**Required**\n\n*direction* : Enums::Direction - Countlines left-right or up-down\n\n\n**Returns**\n\nNumber of lines\n","summary":"

    Count lines in an image

    ","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"args_string":"(direction : Enums::Direction)","args_html":"(direction : Enums::Direction)","location":{"filename":"src/vips/ext/image.cr","line_number":968,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L968"},"def":{"name":"countlines","args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"visibility":"Public","body":"((self.call(\"countlines\", direction)).as(Type)).as_f64"}},{"html_id":"crop(left:Int32,top:Int32,width:Int32,height:Int32)-instance-method","name":"crop","doc":"A synonym for `extract_area`","summary":"

    A synonym for #extract_area

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32)","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32)","location":{"filename":"src/vips/image.cr","line_number":831,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L831"},"def":{"name":"crop","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"extract_area(left, top, width, height)"}},{"html_id":"csvsave(filename:String,**kwargs)-instance-method","name":"csvsave","doc":"Save image to csv\n\n```\nin.csvsave(filename, {separator: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*separator* : String - Separator characters\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to csv

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1136,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1136"},"def":{"name":"csvsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"csvsave\", options, filename)\n"}},{"html_id":"csvsave_stream(stream:IO,**kwargs)-instance-method","name":"csvsave_stream","doc":"Save image to csv\n\n```\nin.csvsave_stream(stream, {separator: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*separator* : String - Separator characters\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to csv

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1191,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1191"},"def":{"name":"csvsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ncsvsave_target(target, **kwargs)\n"}},{"html_id":"csvsave_target(target:Target,**kwargs)-instance-method","name":"csvsave_target","doc":"Save image to csv\n\n```\nin.csvsave_target(target, {separator: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*separator* : String - Separator characters\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to csv

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1165,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1165"},"def":{"name":"csvsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"csvsave_target\", options, target)\n"}},{"html_id":"de00(right:Image)-instance-method","name":"de00","doc":"Calculate de00\n\n```\n# out_ = left.de00(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate de00

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1214,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1214"},"def":{"name":"de00","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"de00\", right)).as(Type)).as_image"}},{"html_id":"de76(right:Image)-instance-method","name":"de76","doc":"Calculate de76\n\n```\n# out_ = left.de76(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate de76

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1236,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1236"},"def":{"name":"de76","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"de76\", right)).as(Type)).as_image"}},{"html_id":"decmc(right:Image)-instance-method","name":"decmc","doc":"Calculate decmc\n\n```\n# out_ = left.decmc(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate decmc

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1258,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1258"},"def":{"name":"decmc","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"decmc\", right)).as(Type)).as_image"}},{"html_id":"deviate-instance-method","name":"deviate","doc":"Find image standard deviation\n\n```\n# out_ = in.deviate()\n```\n\n\n**Returns**\n\nOutput value\n","summary":"

    Find image standard deviation

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1273,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1273"},"def":{"name":"deviate","visibility":"Public","body":"((self.call(\"deviate\")).as(Type)).as_f64"}},{"html_id":"dilate(mask:Image)-instance-method","name":"dilate","doc":"Dilate with a structuring element.","summary":"

    Dilate with a structuring element.

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/image.cr","line_number":983,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L983"},"def":{"name":"dilate","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"morph(mask, Enums::OperationMorphology::Dilate)"}},{"html_id":"divide(right:Image)-instance-method","name":"divide","doc":"Divide two images\n\n```\n# out_ = left.divide(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Divide two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1295,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1295"},"def":{"name":"divide","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"divide\", right)).as(Type)).as_image"}},{"html_id":"dzsave(filename:String,**kwargs)-instance-method","name":"dzsave","doc":"Save image to deepzoom file\n\n```\nin.dzsave(filename, {basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to deepzoom file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1349,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1349"},"def":{"name":"dzsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"dzsave\", options, filename)\n"}},{"html_id":"dzsave_buffer(**kwargs)-instance-method","name":"dzsave_buffer","doc":"Save image to dz buffer\n\n```\n# buffer = in.dzsave_buffer({basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to dz buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1404,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1404"},"def":{"name":"dzsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"dzsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"dzsave_stream(stream:IO,**kwargs)-instance-method","name":"dzsave_stream","doc":"Save image to deepzoom stream\n\n```\nin.dzsave_stream(stream, {basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to deepzoom stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1512,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1512"},"def":{"name":"dzsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ndzsave_target(target, **kwargs)\n"}},{"html_id":"dzsave_target(target:Target,**kwargs)-instance-method","name":"dzsave_target","doc":"Save image to deepzoom target\n\n```\nin.dzsave_target(target, {basename: String, layout: Enums::ForeignDzLayout, suffix: String, overlap: Int32, tile_size: Int32, centre: Bool, depth: Enums::ForeignDzDepth, angle: Enums::Angle, container: Enums::ForeignDzContainer, compression: Int32, region_shrink: Enums::RegionShrink, skip_blanks: Int32, no_strip: Bool, id: String, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*basename* : String - Base name to save to\n\n*layout* : Enums::ForeignDzLayout - Directory layout\n\n*suffix* : String - Filename suffix for tiles\n\n*overlap* : Int32 - Tile overlap in pixels\n\n*tile_size* : Int32 - Tile size in pixels\n\n*centre* : Bool - Center image in tile\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*angle* : Enums::Angle - Rotate image during save\n\n*container* : Enums::ForeignDzContainer - Pyramid container type\n\n*compression* : Int32 - ZIP deflate compression level\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*skip_blanks* : Int32 - Skip tiles which are nearly equal to the background\n\n*no_strip* : Bool - Don't strip tile metadata\n\n*id* : String - Resource ID\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to deepzoom target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1460,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1460"},"def":{"name":"dzsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"dzsave_target\", options, target)\n"}},{"html_id":"embed(x:Int32,y:Int32,width:Int32,height:Int32,**kwargs)-instance-method","name":"embed","doc":"Embed an image in a larger image\n\n```\n# out_ = in.embed(x, y, width, height, {extend: Enums::Extend, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n**Required**\n\n*x* : Int32 - Left edge of input in output\n\n*y* : Int32 - Top edge of input in output\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n*background* : Array(Float64) - Color for background pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Embed an image in a larger image

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32, width : Int32, height : Int32, **kwargs)","args_html":"(x : Int32, y : Int32, width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1547,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1547"},"def":{"name":"embed","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"embed\", options, x, y, width, height)).as(Type)).as_image\n"}},{"html_id":"erode(mask:Image)-instance-method","name":"erode","doc":"Erode with a structuring element.","summary":"

    Erode with a structuring element.

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/image.cr","line_number":978,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L978"},"def":{"name":"erode","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"morph(mask, Enums::OperationMorphology::Erode)"}},{"html_id":"exp:Image-instance-method","name":"exp","doc":"Returns e ** pixel","summary":"

    Returns e ** pixel

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":943,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L943"},"def":{"name":"exp","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Exp)"}},{"html_id":"exp10:Image-instance-method","name":"exp10","doc":"Returns 10 ** pixel","summary":"

    Returns 10 ** pixel

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":948,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L948"},"def":{"name":"exp10","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Exp10)"}},{"html_id":"extract_area(left:Int32,top:Int32,width:Int32,height:Int32)-instance-method","name":"extract_area","doc":"Extract an area from an image\n\n```\n# out_ = input.extract_area(left, top, width, height)\n```\n\n\nInput Parameters\n\n**Required**\n\n*left* : Int32 - Left edge of extract area\n\n*top* : Int32 - Top edge of extract area\n\n*width* : Int32 - Width of extract area\n\n*height* : Int32 - Height of extract area\n\n\n**Returns**\n\nOutput image\n","summary":"

    Extract an area from an image

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32)","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":1577,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1577"},"def":{"name":"extract_area","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"extract_area\", left, top, width, height)).as(Type)).as_image"}},{"html_id":"extract_band(band:Int32,**kwargs)-instance-method","name":"extract_band","doc":"Extract band from an image\n\n```\n# out_ = in.extract_band(band, {n: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*band* : Int32 - Band to extract\n\n_Optionals_\n\n*n* : Int32 - Number of bands to extract\n\n\n**Returns**\n\nOutput image\n","summary":"

    Extract band from an image

    ","abstract":false,"args":[{"name":"band","external_name":"band","restriction":"Int32"}],"args_string":"(band : Int32, **kwargs)","args_html":"(band : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1603,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1603"},"def":{"name":"extract_band","args":[{"name":"band","external_name":"band","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"extract_band\", options, band)).as(Type)).as_image\n"}},{"html_id":"falsecolour-instance-method","name":"falsecolour","doc":"False-color an image\n\n```\n# out_ = in.falsecolour()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    False-color an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1652,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1652"},"def":{"name":"falsecolour","visibility":"Public","body":"((self.call(\"falsecolour\")).as(Type)).as_image"}},{"html_id":"fastcor(ref:Image)-instance-method","name":"fastcor","doc":"Fast correlation\n\n```\n# out_ = in.fastcor(ref)\n```\n\n\nInput Parameters\n\n**Required**\n\n*ref* : Image - Input reference image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Fast correlation

    ","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"args_string":"(ref : Image)","args_html":"(ref : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1674,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1674"},"def":{"name":"fastcor","args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"fastcor\", ref)).as(Type)).as_image"}},{"html_id":"filename:String-instance-method","name":"filename","doc":"Image filename","summary":"

    Image filename

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10866,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10866"},"def":{"name":"filename","return_type":"String","visibility":"Public","body":"(get(\"filename\")).as_s"}},{"html_id":"fill_nearest-instance-method","name":"fill_nearest","doc":"Fill image zeros with nearest non-zero pixel\n\n```\n# out_, distance = in.fill_nearest()\n```\n\n\n**Returns**\n\nValue of nearest non-zero pixel\n\n_Optionals_\n\n*distance* : Image? - Distance to nearest non-zero pixel\n","summary":"

    Fill image zeros with nearest non-zero pixel

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1693,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1693"},"def":{"name":"fill_nearest","visibility":"Public","body":"optional_output = Optional.new(**{distance: true})\nresults = (self.call(\"fill_nearest\", optional_output)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\ndistance = ((o = opts) && (val = o[\"distance\"]?)) ? val.as_image : nil\n{final_result, distance}\n"}},{"html_id":"find_trim(**kwargs)-instance-method","name":"find_trim","doc":"Search an image for non-edge areas\n\n```\n# output = in.find_trim({threshold: Float64, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*threshold* : Float64 - Object threshold\n\n*background* : Array(Float64) - Color for background pixels\n\n\n**Returns**\n\nLeft edge of image\n\nTop edge of extract area\n\nWidth of extract area\n\nHeight of extract area\n","summary":"

    Search an image for non-edge areas

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1731,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1731"},"def":{"name":"find_trim","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nresults = (self.call(\"find_trim\", options)).as(Array(Type))\n{results[0].as_i32, results[1].as_i32, results[2].as_i32, results[3].as_i32}\n"}},{"html_id":"fitssave(filename:String,**kwargs)-instance-method","name":"fitssave","doc":"Save image to fits file\n\n```\nin.fitssave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to fits file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":1877,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1877"},"def":{"name":"fitssave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"fitssave\", options, filename)\n"}},{"html_id":"flatten(**kwargs)-instance-method","name":"flatten","doc":"Flatten alpha out of an image\n\n```\n# out_ = in.flatten({background: Array(Float64), max_alpha: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*background* : Array(Float64) - Background value\n\n*max_alpha* : Float64 - Maximum value of alpha channel\n\n\n**Returns**\n\nOutput image\n","summary":"

    Flatten alpha out of an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1902,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1902"},"def":{"name":"flatten","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"flatten\", options)).as(Type)).as_image\n"}},{"html_id":"flip(direction:Enums::Direction)-instance-method","name":"flip","doc":"Flip an image\n\n```\n# out_ = in.flip(direction)\n```\n\n\nInput Parameters\n\n**Required**\n\n*direction* : Enums::Direction - Direction to flip image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Flip an image

    ","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"args_string":"(direction : Enums::Direction)","args_html":"(direction : Enums::Direction)","location":{"filename":"src/vips/ext/image.cr","line_number":1926,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1926"},"def":{"name":"flip","args":[{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"visibility":"Public","body":"((self.call(\"flip\", direction)).as(Type)).as_image"}},{"html_id":"fliphor-instance-method","name":"fliphor","doc":"Flip horizontally","summary":"

    Flip horizontally

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":993,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L993"},"def":{"name":"fliphor","visibility":"Public","body":"flip(Enums::Direction::Horizontal)"}},{"html_id":"flipver-instance-method","name":"flipver","doc":"Flip vertically","summary":"

    Flip vertically

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":998,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L998"},"def":{"name":"flipver","visibility":"Public","body":"flip(Enums::Direction::Vertical)"}},{"html_id":"float2rad-instance-method","name":"float2rad","doc":"Transform float rgb to radiance coding\n\n```\n# out_ = in.float2rad()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform float rgb to radiance coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":1941,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1941"},"def":{"name":"float2rad","visibility":"Public","body":"((self.call(\"float2rad\")).as(Type)).as_image"}},{"html_id":"floor:Image-instance-method","name":"floor","doc":"Return the largest integral value not greater than the argument.","summary":"

    Return the largest integral value not greater than the argument.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1018,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1018"},"def":{"name":"floor","return_type":"Image","visibility":"Public","body":"((self.call(\"round\", Enums::OperationRound::Floor)).as(Type)).as_image"}},{"html_id":"format:Enums::BandFormat-instance-method","name":"format","doc":"Pixel format in image","summary":"

    Pixel format in image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10831,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10831"},"def":{"name":"format","return_type":"Enums::BandFormat","visibility":"Public","body":"(get(\"format\")).as_enum(Enums::BandFormat)"}},{"html_id":"freqmult(mask:Image)-instance-method","name":"freqmult","doc":"Frequency-domain filtering\n\n```\n# out_ = in.freqmult(mask)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input mask image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Frequency-domain filtering

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"args_string":"(mask : Image)","args_html":"(mask : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":1989,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L1989"},"def":{"name":"freqmult","args":[{"name":"mask","external_name":"mask","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"freqmult\", mask)).as(Type)).as_image"}},{"html_id":"fwfft-instance-method","name":"fwfft","doc":"Forward fft\n\n```\n# out_ = in.fwfft()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Forward fft

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2004,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2004"},"def":{"name":"fwfft","visibility":"Public","body":"((self.call(\"fwfft\")).as(Type)).as_image"}},{"html_id":"gamma(**kwargs)-instance-method","name":"gamma","doc":"Gamma an image\n\n```\n# out_ = in.gamma({exponent: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*exponent* : Float64 - Gamma factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Gamma an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2026,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2026"},"def":{"name":"gamma","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gamma\", options)).as(Type)).as_image\n"}},{"html_id":"gaussblur(sigma:Float64,**kwargs)-instance-method","name":"gaussblur","doc":"Gaussian blur\n\n```\n# out_ = in.gaussblur(sigma, {min_ampl: Float64, precision: Enums::Precision})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sigma* : Float64 - Sigma of Gaussian\n\n_Optionals_\n\n*min_ampl* : Float64 - Minimum amplitude of Gaussian\n\n*precision* : Enums::Precision - Convolve with this precision\n\n\n**Returns**\n\nOutput image\n","summary":"

    Gaussian blur

    ","abstract":false,"args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"}],"args_string":"(sigma : Float64, **kwargs)","args_html":"(sigma : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2056,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2056"},"def":{"name":"gaussblur","args":[{"name":"sigma","external_name":"sigma","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gaussblur\", options, sigma)).as(Type)).as_image\n"}},{"html_id":"get(name:String)-instance-method","name":"get","doc":"Get a metadata item from an image. Crystal types are constructed\nautomatically from the `GValue`, if possible.\n\nFor example, you can read the ICC profile from an image like this:\n\n```\nprofile = image.get \"icc-profile-data\"\n```\n\nand profile will be an array containing the profile.","summary":"

    Get a metadata item from an image.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/image.cr","line_number":588,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L588"},"def":{"name":"get","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"if (name == \"scale \") && (!(contains(\"scale\")))\n return Type.new(1.0)\nend\nif (name == \"offset\") && (!(contains(\"offset\")))\n return Type.new(0.0)\nend\nif Vips.at_least_libvips?(8, 5)\nelse\n if get_typeof(name: name) != 0\n return super(name)\n end\nend\ngv_copy = GValue.new\nif (LibVips.vips_image_get(self, name, gv_copy)) != 0\n raise(VipsException.new(\"unable to get #{name}\"))\nend\ngv = GValue.new(gv_copy)\ngv.get\n"}},{"html_id":"get_fields-instance-method","name":"get_fields","doc":"Get the names of all fields on an image. Use this to loop over all\nimage metadata.","summary":"

    Get the names of all fields on an image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":605,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L605"},"def":{"name":"get_fields","visibility":"Public","body":"names = Array(String).new\nif Vips.at_least_libvips?(8, 5)\nelse\n return names\nend\nptr = LibVips.vips_image_get_fields(self)\naptr = ptr\nwhile (p = ptr.value)\n names << (String.new(p))\n LibVips.g_free(p)\n ptr = ptr + 1\nend\nLibVips.g_free(aptr)\nnames\n"}},{"html_id":"get_typeof(nam:String)-instance-method","name":"get_typeof","doc":"Get the GType of a GObject property","summary":"

    Get the GType of a GObject property

    ","abstract":false,"args":[{"name":"nam","external_name":"nam","restriction":"String"}],"args_string":"(nam : String)","args_html":"(nam : String)","location":{"filename":"src/vips/image.cr","line_number":562,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L562"},"def":{"name":"get_typeof","args":[{"name":"nam","external_name":"nam","restriction":"String"}],"visibility":"Public","body":"if Vips.at_least_libvips?(8, 5)\nelse\n gtype = super(nam)\n if gtype.nil?\n else\n return gtype\n end\nend\nLibVips.vips_image_get_typeof(self, nam)\n"}},{"html_id":"getpoint(x:Int32,y:Int32)-instance-method","name":"getpoint","doc":"Read a point from an image\n\n```\n# out_array = in.getpoint(x, y)\n```\n\n\nInput Parameters\n\n**Required**\n\n*x* : Int32 - Point to read\n\n*y* : Int32 - Point to read\n\n\n**Returns**\n\nArray of output values\n","summary":"

    Read a point from an image

    ","abstract":false,"args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(x : Int32, y : Int32)","args_html":"(x : Int32, y : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":2148,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2148"},"def":{"name":"getpoint","args":[{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"getpoint\", x, y)).as(Type)).as_a64"}},{"html_id":"gifsave(filename:String,**kwargs)-instance-method","name":"gifsave","doc":"Save as gif\n\n```\nin.gifsave(filename, {dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as gif

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2363,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2363"},"def":{"name":"gifsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"gifsave\", options, filename)\n"}},{"html_id":"gifsave_buffer(**kwargs)-instance-method","name":"gifsave_buffer","doc":"Save as gif\n\n```\n# buffer = in.gifsave_buffer({dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save as gif

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2404,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2404"},"def":{"name":"gifsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gifsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"gifsave_stream(stream:IO,**kwargs)-instance-method","name":"gifsave_stream","doc":"Save as gif\n\n```\nin.gifsave_stream(stream, {dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save as gif

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2484,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2484"},"def":{"name":"gifsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ngifsave_target(target, **kwargs)\n"}},{"html_id":"gifsave_target(target:Target,**kwargs)-instance-method","name":"gifsave_target","doc":"Save as gif\n\n```\nin.gifsave_target(target, {dither: Float64, effort: Int32, bitdepth: Int32, interframe_maxerror: Float64, reuse: Bool, interpalette_maxerror: Float64, interlace: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*dither* : Float64 - Amount of dithering\n\n*effort* : Int32 - Quantisation effort\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*interframe_maxerror* : Float64 - Maximum inter-frame error for transparency\n\n*reuse* : Bool - Reuse palette from input\n\n*interpalette_maxerror* : Float64 - Maximum inter-palette error for palette reusage\n\n*interlace* : Bool - Generate an interlaced (progressive) GIF\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as gif

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2446,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2446"},"def":{"name":"gifsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"gifsave_target\", options, target)\n"}},{"html_id":"globalbalance(**kwargs)-instance-method","name":"globalbalance","doc":"Global balance an image mosaic\n\n```\n# out_ = in.globalbalance({gamma: Float64, int_output: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*gamma* : Float64 - Image gamma\n\n*int_output* : Bool - Integer output\n\n\n**Returns**\n\nOutput image\n","summary":"

    Global balance an image mosaic

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2509,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2509"},"def":{"name":"globalbalance","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"globalbalance\", options)).as(Type)).as_image\n"}},{"html_id":"gravity(direction:Enums::CompassDirection,width:Int32,height:Int32,**kwargs)-instance-method","name":"gravity","doc":"Place an image within a larger image with a certain gravity\n\n```\n# out_ = in.gravity(direction, width, height, {extend: Enums::Extend, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n**Required**\n\n*direction* : Enums::CompassDirection - Direction to place image within width/height\n\n*width* : Int32 - Image width in pixels\n\n*height* : Int32 - Image height in pixels\n\n_Optionals_\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n*background* : Array(Float64) - Color for background pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Place an image within a larger image with a certain gravity

    ","abstract":false,"args":[{"name":"direction","external_name":"direction","restriction":"Enums::CompassDirection"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(direction : Enums::CompassDirection, width : Int32, height : Int32, **kwargs)","args_html":"(direction : Enums::CompassDirection, width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2543,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2543"},"def":{"name":"gravity","args":[{"name":"direction","external_name":"direction","restriction":"Enums::CompassDirection"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"gravity\", options, direction, width, height)).as(Type)).as_image\n"}},{"html_id":"grid(tile_height:Int32,across:Int32,down:Int32)-instance-method","name":"grid","doc":"Grid an image\n\n```\n# out_ = in.grid(tile_height, across, down)\n```\n\n\nInput Parameters\n\n**Required**\n\n*tile_height* : Int32 - Chop into tiles this high\n\n*across* : Int32 - Number of tiles across\n\n*down* : Int32 - Number of tiles down\n\n\n**Returns**\n\nOutput image\n","summary":"

    Grid an image

    ","abstract":false,"args":[{"name":"tile_height","external_name":"tile_height","restriction":"Int32"},{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"args_string":"(tile_height : Int32, across : Int32, down : Int32)","args_html":"(tile_height : Int32, across : Int32, down : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":2601,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2601"},"def":{"name":"grid","args":[{"name":"tile_height","external_name":"tile_height","restriction":"Int32"},{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"grid\", tile_height, across, down)).as(Type)).as_image"}},{"html_id":"has_alpha?:Bool-instance-method","name":"has_alpha?","doc":"Does this image have an alpha channel?","summary":"

    Does this image have an alpha channel?

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1189,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1189"},"def":{"name":"has_alpha?","return_type":"Bool","visibility":"Public","body":"if Vips.at_least_libvips?(8, 5)\n return (LibVips.vips_image_hasalpha(self)) != 0\nend\n((bands == 2) || ((bands == 4) && (interpretation != Enums::Interpretation::Cmyk))) || bands > 4\n"}},{"html_id":"height:Int32-instance-method","name":"height","doc":"Image height in pixels","summary":"

    Image height in pixels

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10821,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10821"},"def":{"name":"height","return_type":"Int32","visibility":"Public","body":"(get(\"height\")).as_i32"}},{"html_id":"hist_cum-instance-method","name":"hist_cum","doc":"Form cumulative histogram\n\n```\n# out_ = in.hist_cum()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Form cumulative histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2807,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2807"},"def":{"name":"hist_cum","visibility":"Public","body":"((self.call(\"hist_cum\")).as(Type)).as_image"}},{"html_id":"hist_entropy-instance-method","name":"hist_entropy","doc":"Estimate image entropy\n\n```\n# out_ = in.hist_entropy()\n```\n\n\n**Returns**\n\nOutput value\n","summary":"

    Estimate image entropy

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2822,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2822"},"def":{"name":"hist_entropy","visibility":"Public","body":"((self.call(\"hist_entropy\")).as(Type)).as_f64"}},{"html_id":"hist_equal(**kwargs)-instance-method","name":"hist_equal","doc":"Histogram equalisation\n\n```\n# out_ = in.hist_equal({band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*band* : Int32 - Equalise with this band\n\n\n**Returns**\n\nOutput image\n","summary":"

    Histogram equalisation

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2844,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2844"},"def":{"name":"hist_equal","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_equal\", options)).as(Type)).as_image\n"}},{"html_id":"hist_find(**kwargs)-instance-method","name":"hist_find","doc":"Find image histogram\n\n```\n# out_ = in.hist_find({band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*band* : Int32 - Find histogram of band\n\n\n**Returns**\n\nOutput histogram\n","summary":"

    Find image histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2868,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2868"},"def":{"name":"hist_find","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_find\", options)).as(Type)).as_image\n"}},{"html_id":"hist_find_indexed(index:Image,**kwargs)-instance-method","name":"hist_find_indexed","doc":"Find indexed image histogram\n\n```\n# out_ = in.hist_find_indexed(index, {combine: Enums::Combine})\n```\n\n\nInput Parameters\n\n**Required**\n\n*index* : Image - Index image\n\n_Optionals_\n\n*combine* : Enums::Combine - Combine bins like this\n\n\n**Returns**\n\nOutput histogram\n","summary":"

    Find indexed image histogram

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Image"}],"args_string":"(index : Image, **kwargs)","args_html":"(index : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2896,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2896"},"def":{"name":"hist_find_indexed","args":[{"name":"index","external_name":"index","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_find_indexed\", options, index)).as(Type)).as_image\n"}},{"html_id":"hist_find_ndim(**kwargs)-instance-method","name":"hist_find_ndim","doc":"Find n-dimensional image histogram\n\n```\n# out_ = in.hist_find_ndim({bins: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*bins* : Int32 - Number of bins in each dimension\n\n\n**Returns**\n\nOutput histogram\n","summary":"

    Find n-dimensional image histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2920,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2920"},"def":{"name":"hist_find_ndim","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_find_ndim\", options)).as(Type)).as_image\n"}},{"html_id":"hist_ismonotonic-instance-method","name":"hist_ismonotonic","doc":"Test for monotonicity\n\n```\n# monotonic = in.hist_ismonotonic()\n```\n\n\n**Returns**\n\ntrue if in is monotonic\n","summary":"

    Test for monotonicity

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":2937,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2937"},"def":{"name":"hist_ismonotonic","visibility":"Public","body":"((self.call(\"hist_ismonotonic\")).as(Type)).as_b"}},{"html_id":"hist_local(width:Int32,height:Int32,**kwargs)-instance-method","name":"hist_local","doc":"Local histogram equalisation\n\n```\n# out_ = in.hist_local(width, height, {max_slope: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Window width in pixels\n\n*height* : Int32 - Window height in pixels\n\n_Optionals_\n\n*max_slope* : Int32 - Maximum slope (CLAHE)\n\n\n**Returns**\n\nOutput image\n","summary":"

    Local histogram equalisation

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":2965,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2965"},"def":{"name":"hist_local","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hist_local\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"hist_match(ref:Image)-instance-method","name":"hist_match","doc":"Match two histograms\n\n```\n# out_ = in.hist_match(ref)\n```\n\n\nInput Parameters\n\n**Required**\n\n*ref* : Image - Reference histogram\n\n\n**Returns**\n\nOutput image\n","summary":"

    Match two histograms

    ","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"args_string":"(ref : Image)","args_html":"(ref : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":2989,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L2989"},"def":{"name":"hist_match","args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"hist_match\", ref)).as(Type)).as_image"}},{"html_id":"hist_norm-instance-method","name":"hist_norm","doc":"Normalise histogram\n\n```\n# out_ = in.hist_norm()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Normalise histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3004,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3004"},"def":{"name":"hist_norm","visibility":"Public","body":"((self.call(\"hist_norm\")).as(Type)).as_image"}},{"html_id":"hist_plot-instance-method","name":"hist_plot","doc":"Plot histogram\n\n```\n# out_ = in.hist_plot()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Plot histogram

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3019,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3019"},"def":{"name":"hist_plot","visibility":"Public","body":"((self.call(\"hist_plot\")).as(Type)).as_image"}},{"html_id":"hough_circle(**kwargs)-instance-method","name":"hough_circle","doc":"Find hough circle transform\n\n```\n# out_ = in.hough_circle({scale: Int32, min_radius: Int32, max_radius: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*scale* : Int32 - Scale down dimensions by this factor\n\n*min_radius* : Int32 - Smallest radius to search for\n\n*max_radius* : Int32 - Largest radius to search for\n\n\n**Returns**\n\nOutput image\n","summary":"

    Find hough circle transform

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3045,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3045"},"def":{"name":"hough_circle","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hough_circle\", options)).as(Type)).as_image\n"}},{"html_id":"hough_line(**kwargs)-instance-method","name":"hough_line","doc":"Find hough line transform\n\n```\n# out_ = in.hough_line({width: Int32, height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*width* : Int32 - Horizontal size of parameter space\n\n*height* : Int32 - Vertical size of parameter space\n\n\n**Returns**\n\nOutput image\n","summary":"

    Find hough line transform

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3071,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3071"},"def":{"name":"hough_line","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"hough_line\", options)).as(Type)).as_image\n"}},{"html_id":"hsv2srgb-instance-method","name":"hsv2srgb","doc":"Transform hsv to srgb\n\n```\n# out_ = in.hsv2srgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform hsv to srgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3088,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3088"},"def":{"name":"hsv2srgb","visibility":"Public","body":"((self.call(\"hsv2srgb\")).as(Type)).as_image"}},{"html_id":"icc_export(**kwargs)-instance-method","name":"icc_export","doc":"Output to device with icc profile\n\n```\n# out_ = in.icc_export({pcs: Enums::PCS, intent: Enums::Intent, black_point_compensation: Bool, output_profile: String, depth: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*pcs* : Enums::PCS - Set Profile Connection Space\n\n*intent* : Enums::Intent - Rendering intent\n\n*black_point_compensation* : Bool - Enable black point compensation\n\n*output_profile* : String - Filename to load output profile from\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Output to device with icc profile

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3118,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3118"},"def":{"name":"icc_export","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"icc_export\", options)).as(Type)).as_image\n"}},{"html_id":"icc_import(**kwargs)-instance-method","name":"icc_import","doc":"Import from device with icc profile\n\n```\n# out_ = in.icc_import({pcs: Enums::PCS, intent: Enums::Intent, black_point_compensation: Bool, embedded: Bool, input_profile: String})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*pcs* : Enums::PCS - Set Profile Connection Space\n\n*intent* : Enums::Intent - Rendering intent\n\n*black_point_compensation* : Bool - Enable black point compensation\n\n*embedded* : Bool - Use embedded input profile, if available\n\n*input_profile* : String - Filename to load input profile from\n\n\n**Returns**\n\nOutput image\n","summary":"

    Import from device with icc profile

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3150,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3150"},"def":{"name":"icc_import","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"icc_import\", options)).as(Type)).as_image\n"}},{"html_id":"icc_transform(output_profile:String,**kwargs)-instance-method","name":"icc_transform","doc":"Transform between devices with icc profiles\n\n```\n# out_ = in.icc_transform(output_profile, {pcs: Enums::PCS, intent: Enums::Intent, black_point_compensation: Bool, embedded: Bool, input_profile: String, depth: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*output_profile* : String - Filename to load output profile from\n\n_Optionals_\n\n*pcs* : Enums::PCS - Set Profile Connection Space\n\n*intent* : Enums::Intent - Rendering intent\n\n*black_point_compensation* : Bool - Enable black point compensation\n\n*embedded* : Bool - Use embedded input profile, if available\n\n*input_profile* : String - Filename to load input profile from\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform between devices with icc profiles

    ","abstract":false,"args":[{"name":"output_profile","external_name":"output_profile","restriction":"String"}],"args_string":"(output_profile : String, **kwargs)","args_html":"(output_profile : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3188,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3188"},"def":{"name":"icc_transform","args":[{"name":"output_profile","external_name":"output_profile","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"icc_transform\", options, output_profile)).as(Type)).as_image\n"}},{"html_id":"ifthenelse(in1,in2,blend=false)-instance-method","name":"ifthenelse","doc":"ifthenelse an image\nSelect pixels from `th` if `self` is non-zero and from `el` if\n`self` is zero. Use the `:blend` option to fade smoothly\nbetween `th` and `el`.\n\n*in1 : Image | Float64 | Array(Float64)* true values\n\n*in2 : Image | Float64 | Array(Float64)* false values\n\n*blend : Bool* (false) Blend smoothly between *in1* and *in2*\n\nReturns merged `Image`","summary":"

    ifthenelse an image Select pixels from th if self is non-zero and from el if self is zero.

    ","abstract":false,"args":[{"name":"in1","external_name":"in1","restriction":""},{"name":"in2","external_name":"in2","restriction":""},{"name":"blend","default_value":"false","external_name":"blend","restriction":""}],"args_string":"(in1, in2, blend = false)","args_html":"(in1, in2, blend = false)","location":{"filename":"src/vips/image.cr","line_number":662,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L662"},"def":{"name":"ifthenelse","args":[{"name":"in1","external_name":"in1","restriction":""},{"name":"in2","external_name":"in2","restriction":""},{"name":"blend","default_value":"false","external_name":"blend","restriction":""}],"visibility":"Public","body":"match_image = in1.is_a?(Image) ? in1.as(Image) : (in2.is_a?(Image) ? in2.as(Image) : self)\nif in1.is_a?(Image)\nelse\n in1 = Image.imageize(match_image, in1.not_nil!)\nend\nif in2.is_a?(Image)\nelse\n in2 = Image.imageize(match_image, in2.not_nil!)\nend\noptions = Optional.new(**{blend: blend})\n((call(\"ifthenelse\", options, in1, in2)).as(Type)).as_image\n"}},{"html_id":"imag:Image-instance-method","name":"imag","doc":"Return the imaginary part of a complex image.","summary":"

    Return the imaginary part of a complex image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":853,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L853"},"def":{"name":"imag","return_type":"Image","visibility":"Public","body":"complexget(Enums::OperationComplexget::Imag)"}},{"html_id":"insert(sub:Image,x:Int32,y:Int32,**kwargs)-instance-method","name":"insert","doc":"Insert image @sub into @main at @x, @y\n\n```\n# out_ = main.insert(sub, x, y, {expand: Bool, background: Array(Float64)})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sub* : Image - Sub-image to insert into main image\n\n*x* : Int32 - Left edge of sub in main\n\n*y* : Int32 - Top edge of sub in main\n\n_Optionals_\n\n*expand* : Bool - Expand output to hold all of both inputs\n\n*background* : Array(Float64) - Color for new pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Insert image @sub into @main at @x, @y

    ","abstract":false,"args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(sub : Image, x : Int32, y : Int32, **kwargs)","args_html":"(sub : Image, x : Int32, y : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3250,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3250"},"def":{"name":"insert","args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"insert\", options, sub, x, y)).as(Type)).as_image\n"}},{"html_id":"interpretation:Enums::Interpretation-instance-method","name":"interpretation","doc":"Pixel interpretation","summary":"

    Pixel interpretation

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10841,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10841"},"def":{"name":"interpretation","return_type":"Enums::Interpretation","visibility":"Public","body":"(get(\"interpretation\")).as_enum(Enums::Interpretation)"}},{"html_id":"invert-instance-method","name":"invert","doc":"Invert an image\n\n```\n# out_ = in.invert()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Invert an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3267,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3267"},"def":{"name":"invert","visibility":"Public","body":"((self.call(\"invert\")).as(Type)).as_image"}},{"html_id":"invertlut(**kwargs)-instance-method","name":"invertlut","doc":"Build an inverted look-up table\n\n```\n# out_ = in.invertlut({size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*size* : Int32 - LUT size to generate\n\n\n**Returns**\n\nOutput image\n","summary":"

    Build an inverted look-up table

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3289,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3289"},"def":{"name":"invertlut","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"invertlut\", options)).as(Type)).as_image\n"}},{"html_id":"invfft(**kwargs)-instance-method","name":"invfft","doc":"Inverse fft\n\n```\n# out_ = in.invfft({real: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*real* : Bool - Output only the real part of the transform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Inverse fft

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3313,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3313"},"def":{"name":"invfft","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"invfft\", options)).as(Type)).as_image\n"}},{"html_id":"join(in2:Image,direction:Enums::Direction,**kwargs)-instance-method","name":"join","doc":"Join a pair of images\n\n```\n# out_ = in1.join(in2, direction, {expand: Bool, shim: Int32, background: Array(Float64), align: Enums::Align})\n```\n\n\nInput Parameters\n\n**Required**\n\n*in2* : Image - Second input image\n\n*direction* : Enums::Direction - Join left-right or up-down\n\n_Optionals_\n\n*expand* : Bool - Expand output to hold all of both inputs\n\n*shim* : Int32 - Pixels between images\n\n*background* : Array(Float64) - Colour for new pixels\n\n*align* : Enums::Align - Align on the low, centre or high coordinate edge\n\n\n**Returns**\n\nOutput image\n","summary":"

    Join a pair of images

    ","abstract":false,"args":[{"name":"in2","external_name":"in2","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"args_string":"(in2 : Image, direction : Enums::Direction, **kwargs)","args_html":"(in2 : Image, direction : Enums::Direction, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3349,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3349"},"def":{"name":"join","args":[{"name":"in2","external_name":"in2","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"join\", options, in2, direction)).as(Type)).as_image\n"}},{"html_id":"jp2ksave(filename:String,**kwargs)-instance-method","name":"jp2ksave","doc":"Save image in jpeg2000 format\n\n```\nin.jp2ksave(filename, {tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3554,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3554"},"def":{"name":"jp2ksave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jp2ksave\", options, filename)\n"}},{"html_id":"jp2ksave_buffer(**kwargs)-instance-method","name":"jp2ksave_buffer","doc":"Save image in jpeg2000 format\n\n```\n# buffer = in.jp2ksave_buffer({tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3591,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3591"},"def":{"name":"jp2ksave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"jp2ksave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"jp2ksave_stream(stream:IO,**kwargs)-instance-method","name":"jp2ksave_stream","doc":"Save image in jpeg2000 format\n\n```\nin.jp2ksave_stream(stream, {tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3663,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3663"},"def":{"name":"jp2ksave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\njp2ksave_target(target, **kwargs)\n"}},{"html_id":"jp2ksave_target(target:Target,**kwargs)-instance-method","name":"jp2ksave_target","doc":"Save image in jpeg2000 format\n\n```\nin.jp2ksave_target(target, {tile_width: Int32, tile_height: Int32, lossless: Bool, q: Int32, subsample_mode: Enums::ForeignSubsample, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Q factor\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg2000 format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3629,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3629"},"def":{"name":"jp2ksave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jp2ksave_target\", options, target)\n"}},{"html_id":"jpegsave(filename:String,**kwargs)-instance-method","name":"jpegsave","doc":"Save image to jpeg file\n\n```\nin.jpegsave(filename, {q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to jpeg file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":3893,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3893"},"def":{"name":"jpegsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jpegsave\", options, filename)\n"}},{"html_id":"jpegsave_buffer(**kwargs)-instance-method","name":"jpegsave_buffer","doc":"Save image to jpeg buffer\n\n```\n# buffer = in.jpegsave_buffer({q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to jpeg buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3940,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3940"},"def":{"name":"jpegsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"jpegsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"jpegsave_mime(**kwargs)-instance-method","name":"jpegsave_mime","doc":"Save image to jpeg mime\n\n```\nin.jpegsave_mime({q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to jpeg mime

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":3984,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L3984"},"def":{"name":"jpegsave_mime","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jpegsave_mime\", options)\n"}},{"html_id":"jpegsave_stream(stream:IO,**kwargs)-instance-method","name":"jpegsave_stream","doc":"Save image to jpeg stream\n\n```\nin.jpegsave_stream(stream, {q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to jpeg stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4075,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4075"},"def":{"name":"jpegsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\njpegsave_target(target, **kwargs)\n"}},{"html_id":"jpegsave_target(target:Target,**kwargs)-instance-method","name":"jpegsave_target","doc":"Save image to jpeg target\n\n```\nin.jpegsave_target(target, {q: Int32, profile: String, optimize_coding: Bool, interlace: Bool, trellis_quant: Bool, overshoot_deringing: Bool, optimize_scans: Bool, quant_table: Int32, subsample_mode: Enums::ForeignSubsample, restart_interval: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*profile* : String - ICC profile to embed\n\n*optimize_coding* : Bool - Compute optimal Huffman coding tables\n\n*interlace* : Bool - Generate an interlaced (progressive) jpeg\n\n*trellis_quant* : Bool - Apply trellis quantisation to each 8x8 block\n\n*overshoot_deringing* : Bool - Apply overshooting to samples with extreme values\n\n*optimize_scans* : Bool - Split spectrum of DCT coefficients into separate scans\n\n*quant_table* : Int32 - Use predefined quantization table with given index\n\n*subsample_mode* : Enums::ForeignSubsample - Select chroma subsample operation mode\n\n*restart_interval* : Int32 - Add restart markers every specified number of mcu\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to jpeg target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4031,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4031"},"def":{"name":"jpegsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jpegsave_target\", options, target)\n"}},{"html_id":"jxlsave(filename:String,**kwargs)-instance-method","name":"jxlsave","doc":"Save image in jpeg-xl format\n\n```\nin.jxlsave(filename, {tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to load from\n\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4271,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4271"},"def":{"name":"jxlsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jxlsave\", options, filename)\n"}},{"html_id":"jxlsave_buffer(**kwargs)-instance-method","name":"jxlsave_buffer","doc":"Save image in jpeg-xl format\n\n```\n# buffer = in.jxlsave_buffer({tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4308,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4308"},"def":{"name":"jxlsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"jxlsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"jxlsave_stream(stream:IO,**kwargs)-instance-method","name":"jxlsave_stream","doc":"Save image in jpeg-xl format\n\n```\nin.jxlsave_stream(stream, {tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4380,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4380"},"def":{"name":"jxlsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\njxlsave_target(target, **kwargs)\n"}},{"html_id":"jxlsave_target(target:Target,**kwargs)-instance-method","name":"jxlsave_target","doc":"Save image in jpeg-xl format\n\n```\nin.jxlsave_target(target, {tier: Int32, distance: Float64, effort: Int32, lossless: Bool, q: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*tier* : Int32 - Decode speed tier\n\n*distance* : Float64 - Target butteraugli distance\n\n*effort* : Int32 - Encoding effort\n\n*lossless* : Bool - Enable lossless compression\n\n*q* : Int32 - Quality factor\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in jpeg-xl format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4346,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4346"},"def":{"name":"jxlsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"jxlsave_target\", options, target)\n"}},{"html_id":"killed?-instance-method","name":"killed?","doc":"If image has been killed see `set_kill`, set an error message,\nclear the `kill` flag and return true. Otherwise return false\n\nHandy for loops which need to run sets of threads which can fail.\nAt least libvips 8.8 is needed. If this version requirement is not met,\nit will always return false.","summary":"

    If image has been killed see #set_kill, set an error message, clear the kill flag and return true.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1216,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1216"},"def":{"name":"killed?","visibility":"Public","body":"if Vips.at_least_libvips?(8, 8)\nelse\n return false\nend\nLibVips.vips_image_iskilled(self)\n"}},{"html_id":"lab2labq-instance-method","name":"lab2labq","doc":"Transform float lab to labq coding\n\n```\n# out_ = in.lab2labq()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform float lab to labq coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4396,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4396"},"def":{"name":"lab2labq","visibility":"Public","body":"((self.call(\"lab2labq\")).as(Type)).as_image"}},{"html_id":"lab2labs-instance-method","name":"lab2labs","doc":"Transform float lab to signed short\n\n```\n# out_ = in.lab2labs()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform float lab to signed short

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4411,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4411"},"def":{"name":"lab2labs","visibility":"Public","body":"((self.call(\"lab2labs\")).as(Type)).as_image"}},{"html_id":"lab2lch-instance-method","name":"lab2lch","doc":"Transform lab to lch\n\n```\n# out_ = in.lab2lch()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lab to lch

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4426,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4426"},"def":{"name":"lab2lch","visibility":"Public","body":"((self.call(\"lab2lch\")).as(Type)).as_image"}},{"html_id":"lab2xyz(**kwargs)-instance-method","name":"lab2xyz","doc":"Transform cielab to xyz\n\n```\n# out_ = in.lab2xyz({temp: Array(Float64)})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*temp* : Array(Float64) - Color temperature\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform cielab to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4448,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4448"},"def":{"name":"lab2xyz","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"lab2xyz\", options)).as(Type)).as_image\n"}},{"html_id":"labelregions-instance-method","name":"labelregions","doc":"Label regions in an image\n\n```\n# mask, segments = in.labelregions()\n```\n\n\n**Returns**\n\nMask of region labels\n\n_Optionals_\n\n*segments* : Int32? - Number of discrete contiguous regions\n","summary":"

    Label regions in an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4469,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4469"},"def":{"name":"labelregions","visibility":"Public","body":"optional_output = Optional.new(**{segments: true})\nresults = (self.call(\"labelregions\", optional_output)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nsegments = ((o = opts) && (val = o[\"segments\"]?)) ? val.as_i32 : nil\n{final_result, segments}\n"}},{"html_id":"labq2lab-instance-method","name":"labq2lab","doc":"Unpack a labq image to float lab\n\n```\n# out_ = in.labq2lab()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpack a labq image to float lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4492,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4492"},"def":{"name":"labq2lab","visibility":"Public","body":"((self.call(\"labq2lab\")).as(Type)).as_image"}},{"html_id":"labq2labs-instance-method","name":"labq2labs","doc":"Unpack a labq image to short lab\n\n```\n# out_ = in.labq2labs()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpack a labq image to short lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4507,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4507"},"def":{"name":"labq2labs","visibility":"Public","body":"((self.call(\"labq2labs\")).as(Type)).as_image"}},{"html_id":"labq2srgb-instance-method","name":"labq2srgb","doc":"Convert a labq image to srgb\n\n```\n# out_ = in.labq2srgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert a labq image to srgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4522,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4522"},"def":{"name":"labq2srgb","visibility":"Public","body":"((self.call(\"labq2srgb\")).as(Type)).as_image"}},{"html_id":"labs2lab-instance-method","name":"labs2lab","doc":"Transform signed short lab to float\n\n```\n# out_ = in.labs2lab()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform signed short lab to float

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4537,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4537"},"def":{"name":"labs2lab","visibility":"Public","body":"((self.call(\"labs2lab\")).as(Type)).as_image"}},{"html_id":"labs2labq-instance-method","name":"labs2labq","doc":"Transform short lab to labq coding\n\n```\n# out_ = in.labs2labq()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform short lab to labq coding

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4552,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4552"},"def":{"name":"labs2labq","visibility":"Public","body":"((self.call(\"labs2labq\")).as(Type)).as_image"}},{"html_id":"lch2cmc-instance-method","name":"lch2cmc","doc":"Transform lch to cmc\n\n```\n# out_ = in.lch2cmc()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lch to cmc

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4567,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4567"},"def":{"name":"lch2cmc","visibility":"Public","body":"((self.call(\"lch2cmc\")).as(Type)).as_image"}},{"html_id":"lch2lab-instance-method","name":"lch2lab","doc":"Transform lch to lab\n\n```\n# out_ = in.lch2lab()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform lch to lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4582,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4582"},"def":{"name":"lch2lab","visibility":"Public","body":"((self.call(\"lch2lab\")).as(Type)).as_image"}},{"html_id":"linear(a:Array(Float64),b:Array(Float64),**kwargs)-instance-method","name":"linear","doc":"Calculate (a * in + b)\n\n```\n# out_ = in.linear(a, b, {uchar: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*a* : Array(Float64) - Multiply by this\n\n*b* : Array(Float64) - Add this\n\n_Optionals_\n\n*uchar* : Bool - Output should be uchar\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate (a * in + b)

    ","abstract":false,"args":[{"name":"a","external_name":"a","restriction":"Array(Float64)"},{"name":"b","external_name":"b","restriction":"Array(Float64)"}],"args_string":"(a : Array(Float64), b : Array(Float64), **kwargs)","args_html":"(a : Array(Float64), b : Array(Float64), **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4610,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4610"},"def":{"name":"linear","args":[{"name":"a","external_name":"a","restriction":"Array(Float64)"},{"name":"b","external_name":"b","restriction":"Array(Float64)"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"linear\", options, a, b)).as(Type)).as_image\n"}},{"html_id":"linecache(**kwargs)-instance-method","name":"linecache","doc":"Cache an image as a set of lines\n\n```\n# out_ = in.linecache({tile_height: Int32, access: Enums::Access, threaded: Bool, persistent: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_height* : Int32 - Tile height in pixels\n\n*access* : Enums::Access - Expected access pattern\n\n*threaded* : Bool - Allow threaded access\n\n*persistent* : Bool - Keep cache between evaluations\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cache an image as a set of lines

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4640,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4640"},"def":{"name":"linecache","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"linecache\", options)).as(Type)).as_image\n"}},{"html_id":"log:Image-instance-method","name":"log","doc":"Return the natural log of an image","summary":"

    Return the natural log of an image

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":933,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L933"},"def":{"name":"log","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Log)"}},{"html_id":"log10:Image-instance-method","name":"log10","doc":"Return the log base 10 of an image","summary":"

    Return the log base 10 of an image

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":938,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L938"},"def":{"name":"log10","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Log10)"}},{"html_id":"magicksave(filename:String,**kwargs)-instance-method","name":"magicksave","doc":"Save file with imagemagick\n\n```\nin.magicksave(filename, {format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save file with imagemagick

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4808,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4808"},"def":{"name":"magicksave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"magicksave\", options, filename)\n"}},{"html_id":"magicksave_bmp(filename:String,**kwargs)-instance-method","name":"magicksave_bmp","doc":"Save bmp image with imagemagick\n\n```\nin.magicksave_bmp(filename, {format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save bmp image with imagemagick

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4845,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4845"},"def":{"name":"magicksave_bmp","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"magicksave_bmp\", options, filename)\n"}},{"html_id":"magicksave_bmp_buffer(**kwargs)-instance-method","name":"magicksave_bmp_buffer","doc":"Save bmp image to magick buffer\n\n```\n# buffer = in.magicksave_bmp_buffer({format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save bmp image to magick buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4882,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4882"},"def":{"name":"magicksave_bmp_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"magicksave_bmp_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"magicksave_buffer(**kwargs)-instance-method","name":"magicksave_buffer","doc":"Save image to magick buffer\n\n```\n# buffer = in.magicksave_buffer({format: String, quality: Int32, optimize_gif_frames: Bool, optimize_gif_transparency: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*format* : String - Format to save in\n\n*quality* : Int32 - Quality to use\n\n*optimize_gif_frames* : Bool - Apply GIF frames optimization\n\n*optimize_gif_transparency* : Bool - Apply GIF transparency optimization\n\n*bitdepth* : Int32 - Number of bits per pixel\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to magick buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":4920,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4920"},"def":{"name":"magicksave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"magicksave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"mapim(index:Image,**kwargs)-instance-method","name":"mapim","doc":"Resample with a map image\n\n```\n# out_ = in.mapim(index, {interpolate: Interpolate, background: Array(Float64), premultiplied: Bool, extend: Enums::Extend})\n```\n\n\nInput Parameters\n\n**Required**\n\n*index* : Image - Index pixels with this\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*background* : Array(Float64) - Background value\n\n*premultiplied* : Bool - Images have premultiplied alpha\n\n*extend* : Enums::Extend - How to generate the extra pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Resample with a map image

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":"Image"}],"args_string":"(index : Image, **kwargs)","args_html":"(index : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4954,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4954"},"def":{"name":"mapim","args":[{"name":"index","external_name":"index","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"mapim\", options, index)).as(Type)).as_image\n"}},{"html_id":"maplut(lut:Image,**kwargs)-instance-method","name":"maplut","doc":"Map an image though a lut\n\n```\n# out_ = in.maplut(lut, {band: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*lut* : Image - Look-up table image\n\n_Optionals_\n\n*band* : Int32 - Apply one-band lut to this band of in\n\n\n**Returns**\n\nOutput image\n","summary":"

    Map an image though a lut

    ","abstract":false,"args":[{"name":"lut","external_name":"lut","restriction":"Image"}],"args_string":"(lut : Image, **kwargs)","args_html":"(lut : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":4982,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L4982"},"def":{"name":"maplut","args":[{"name":"lut","external_name":"lut","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"maplut\", options, lut)).as(Type)).as_image\n"}},{"html_id":"match(sec:Image,xr1:Int32,yr1:Int32,xs1:Int32,ys1:Int32,xr2:Int32,yr2:Int32,xs2:Int32,ys2:Int32,**kwargs)-instance-method","name":"match","doc":"First-order match of two images\n\n```\n# out_ = ref.match(sec, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, {hwindow: Int32, harea: Int32, search: Bool, interpolate: Interpolate})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*xr1* : Int32 - Position of first reference tie-point\n\n*yr1* : Int32 - Position of first reference tie-point\n\n*xs1* : Int32 - Position of first secondary tie-point\n\n*ys1* : Int32 - Position of first secondary tie-point\n\n*xr2* : Int32 - Position of second reference tie-point\n\n*yr2* : Int32 - Position of second reference tie-point\n\n*xs2* : Int32 - Position of second secondary tie-point\n\n*ys2* : Int32 - Position of second secondary tie-point\n\n_Optionals_\n\n*hwindow* : Int32 - Half window size\n\n*harea* : Int32 - Half area size\n\n*search* : Bool - Search to improve tie-points\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n\n**Returns**\n\nOutput image\n","summary":"

    First-order match of two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"args_string":"(sec : Image, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","args_html":"(sec : Image, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5448,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5448"},"def":{"name":"match","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"match\", options, sec, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2)).as(Type)).as_image\n"}},{"html_id":"math(math:Enums::OperationMath)-instance-method","name":"math","doc":"Apply a math operation to an image\n\n```\n# out_ = in.math(math)\n```\n\n\nInput Parameters\n\n**Required**\n\n*math* : Enums::OperationMath - Math to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Apply a math operation to an image

    ","abstract":false,"args":[{"name":"math","external_name":"math","restriction":"Enums::OperationMath"}],"args_string":"(math : Enums::OperationMath)","args_html":"(math : Enums::OperationMath)","location":{"filename":"src/vips/ext/image.cr","line_number":5472,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5472"},"def":{"name":"math","args":[{"name":"math","external_name":"math","restriction":"Enums::OperationMath"}],"visibility":"Public","body":"((self.call(\"math\", math)).as(Type)).as_image"}},{"html_id":"math2(right:Image,math2:Enums::OperationMath2)-instance-method","name":"math2","doc":"Binary math operations\n\n```\n# out_ = left.math2(right, math2)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*math2* : Enums::OperationMath2 - Math to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Binary math operations

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"}],"args_string":"(right : Image, math2 : Enums::OperationMath2)","args_html":"(right : Image, math2 : Enums::OperationMath2)","location":{"filename":"src/vips/ext/image.cr","line_number":5496,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5496"},"def":{"name":"math2","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"}],"visibility":"Public","body":"((self.call(\"math2\", right, math2)).as(Type)).as_image"}},{"html_id":"math2_const(math2:Enums::OperationMath2,c:Array(Float64))-instance-method","name":"math2_const","doc":"Binary math operations with a constant\n\n```\n# out_ = in.math2_const(math2, c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*math2* : Enums::OperationMath2 - Math to perform\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Binary math operations with a constant

    ","abstract":false,"args":[{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(math2 : Enums::OperationMath2, c : Array(Float64))","args_html":"(math2 : Enums::OperationMath2, c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":5520,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5520"},"def":{"name":"math2_const","args":[{"name":"math2","external_name":"math2","restriction":"Enums::OperationMath2"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"math2_const\", math2, c)).as(Type)).as_image"}},{"html_id":"matrixinvert-instance-method","name":"matrixinvert","doc":"Invert an matrix\n\n```\n# out_ = in.matrixinvert()\n```\n\n\n**Returns**\n\nOutput matrix\n","summary":"

    Invert an matrix

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5578,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5578"},"def":{"name":"matrixinvert","visibility":"Public","body":"((self.call(\"matrixinvert\")).as(Type)).as_image"}},{"html_id":"matrixprint(**kwargs)-instance-method","name":"matrixprint","doc":"Print matrix\n\n```\nin.matrixprint({strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Print matrix

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5716,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5716"},"def":{"name":"matrixprint","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"matrixprint\", options)\n"}},{"html_id":"matrixsave(filename:String,**kwargs)-instance-method","name":"matrixsave","doc":"Save image to matrix\n\n```\nin.matrixsave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to matrix

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5743,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5743"},"def":{"name":"matrixsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"matrixsave\", options, filename)\n"}},{"html_id":"matrixsave_stream(stream:IO,**kwargs)-instance-method","name":"matrixsave_stream","doc":"Save image to matrix\n\n```\nin.matrixsave_stream(stream, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to matrix

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5794,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5794"},"def":{"name":"matrixsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nmatrixsave_target(target, **kwargs)\n"}},{"html_id":"matrixsave_target(target:Target,**kwargs)-instance-method","name":"matrixsave_target","doc":"Save image to matrix\n\n```\nin.matrixsave_target(target, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to matrix

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5770,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5770"},"def":{"name":"matrixsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"matrixsave_target\", options, target)\n"}},{"html_id":"max(**kwargs)-instance-method","name":"max","doc":"Find image maximum\n\n```\n# out_, x, y, out_array, x_array, y_array = in.max({size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*size* : Int32 - Number of maximum values to find\n\n\n**Returns**\n\nOutput value\n\n_Optionals_\n\n*x* : Int32? - Horizontal position of maximum\n\n*y* : Int32? - Vertical position of maximum\n\n*out_array* : Array(Float64)? - Array of output values\n\n*x_array* : Array(Int32)? - Array of horizontal positions\n\n*y_array* : Array(Int32)? - Array of vertical positions\n","summary":"

    Find image maximum

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5829,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5829"},"def":{"name":"max","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"x\"] = true\noptions[\"y\"] = true\noptions[\"out_array\"] = true\noptions[\"x_array\"] = true\noptions[\"y_array\"] = true\nresults = (self.call(\"max\", options)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_f64\nopts = results[1]?.try(&.as_h)\nx = ((o = opts) && (val = o[\"x\"]?)) ? val.as_i32 : nil\ny = ((o = opts) && (val = o[\"y\"]?)) ? val.as_i32 : nil\nout_array = ((o = opts) && (val = o[\"out_array\"]?)) ? val.as_a64 : nil\nx_array = ((o = opts) && (val = o[\"x_array\"]?)) ? val.as_a32 : nil\ny_array = ((o = opts) && (val = o[\"y_array\"]?)) ? val.as_a32 : nil\n{final_result, x, y, out_array, x_array, y_array}\n"}},{"html_id":"maxpos-instance-method","name":"maxpos","doc":"Return the coordinates of the image maximum.","summary":"

    Return the coordinates of the image maximum.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":836,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L836"},"def":{"name":"maxpos","visibility":"Public","body":"v, x, y, _, _, _ = self.max\n{v, x.try(&.to_f) || 0_f64, y.try(&.to_f) || 0_f64}\n"}},{"html_id":"measure(h:Int32,v:Int32,**kwargs)-instance-method","name":"measure","doc":"Measure a set of patches on a color chart\n\n```\n# out_ = in.measure(h, v, {left: Int32, top: Int32, width: Int32, height: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*h* : Int32 - Number of patches across chart\n\n*v* : Int32 - Number of patches down chart\n\n_Optionals_\n\n*left* : Int32 - Left edge of extract area\n\n*top* : Int32 - Top edge of extract area\n\n*width* : Int32 - Width of extract area\n\n*height* : Int32 - Height of extract area\n\n\n**Returns**\n\nOutput array of statistics\n","summary":"

    Measure a set of patches on a color chart

    ","abstract":false,"args":[{"name":"h","external_name":"h","restriction":"Int32"},{"name":"v","external_name":"v","restriction":"Int32"}],"args_string":"(h : Int32, v : Int32, **kwargs)","args_html":"(h : Int32, v : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5880,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5880"},"def":{"name":"measure","args":[{"name":"h","external_name":"h","restriction":"Int32"},{"name":"v","external_name":"v","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"measure\", options, h, v)).as(Type)).as_image\n"}},{"html_id":"median(size=3)-instance-method","name":"median","doc":"size x size median filter.","summary":"

    size x size median filter.

    ","abstract":false,"args":[{"name":"size","default_value":"3","external_name":"size","restriction":""}],"args_string":"(size = 3)","args_html":"(size = 3)","location":{"filename":"src/vips/image.cr","line_number":988,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L988"},"def":{"name":"median","args":[{"name":"size","default_value":"3","external_name":"size","restriction":""}],"visibility":"Public","body":"rank(size, size, (size * size) // 2)"}},{"html_id":"merge(sec:Image,direction:Enums::Direction,dx:Int32,dy:Int32,**kwargs)-instance-method","name":"merge","doc":"Merge two images\n\n```\n# out_ = ref.merge(sec, direction, dx, dy, {mblend: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*direction* : Enums::Direction - Horizontal or vertical merge\n\n*dx* : Int32 - Horizontal displacement from sec to ref\n\n*dy* : Int32 - Vertical displacement from sec to ref\n\n_Optionals_\n\n*mblend* : Int32 - Maximum blend size\n\n\n**Returns**\n\nOutput image\n","summary":"

    Merge two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"dx","external_name":"dx","restriction":"Int32"},{"name":"dy","external_name":"dy","restriction":"Int32"}],"args_string":"(sec : Image, direction : Enums::Direction, dx : Int32, dy : Int32, **kwargs)","args_html":"(sec : Image, direction : Enums::Direction, dx : Int32, dy : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":5914,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5914"},"def":{"name":"merge","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"dx","external_name":"dx","restriction":"Int32"},{"name":"dy","external_name":"dy","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"merge\", options, sec, direction, dx, dy)).as(Type)).as_image\n"}},{"html_id":"min(**kwargs)-instance-method","name":"min","doc":"Find image minimum\n\n```\n# out_, x, y, out_array, x_array, y_array = in.min({size: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*size* : Int32 - Number of minimum values to find\n\n\n**Returns**\n\nOutput value\n\n_Optionals_\n\n*x* : Int32? - Horizontal position of minimum\n\n*y* : Int32? - Vertical position of minimum\n\n*out_array* : Array(Float64)? - Array of output values\n\n*x_array* : Array(Int32)? - Array of horizontal positions\n\n*y_array* : Array(Int32)? - Array of vertical positions\n","summary":"

    Find image minimum

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":5950,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5950"},"def":{"name":"min","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"x\"] = true\noptions[\"y\"] = true\noptions[\"out_array\"] = true\noptions[\"x_array\"] = true\noptions[\"y_array\"] = true\nresults = (self.call(\"min\", options)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_f64\nopts = results[1]?.try(&.as_h)\nx = ((o = opts) && (val = o[\"x\"]?)) ? val.as_i32 : nil\ny = ((o = opts) && (val = o[\"y\"]?)) ? val.as_i32 : nil\nout_array = ((o = opts) && (val = o[\"out_array\"]?)) ? val.as_a64 : nil\nx_array = ((o = opts) && (val = o[\"x_array\"]?)) ? val.as_a32 : nil\ny_array = ((o = opts) && (val = o[\"y_array\"]?)) ? val.as_a32 : nil\n{final_result, x, y, out_array, x_array, y_array}\n"}},{"html_id":"minpos-instance-method","name":"minpos","doc":"Return the coordinates of the image minimum.","summary":"

    Return the coordinates of the image minimum.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":842,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L842"},"def":{"name":"minpos","visibility":"Public","body":"v, x, y, _, _, _ = self.min\n{v, x.try(&.to_f) || 0_f64, y.try(&.to_f) || 0_f64}\n"}},{"html_id":"morph(mask:Image,morph:Enums::OperationMorphology)-instance-method","name":"morph","doc":"Morphology operation\n\n```\n# out_ = in.morph(mask, morph)\n```\n\n\nInput Parameters\n\n**Required**\n\n*mask* : Image - Input matrix image\n\n*morph* : Enums::OperationMorphology - Morphological operation to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Morphology operation

    ","abstract":false,"args":[{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"morph","external_name":"morph","restriction":"Enums::OperationMorphology"}],"args_string":"(mask : Image, morph : Enums::OperationMorphology)","args_html":"(mask : Image, morph : Enums::OperationMorphology)","location":{"filename":"src/vips/ext/image.cr","line_number":5991,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L5991"},"def":{"name":"morph","args":[{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"morph","external_name":"morph","restriction":"Enums::OperationMorphology"}],"visibility":"Public","body":"((self.call(\"morph\", mask, morph)).as(Type)).as_image"}},{"html_id":"mosaic(sec:Image,direction:Enums::Direction,xref:Int32,yref:Int32,xsec:Int32,ysec:Int32,**kwargs)-instance-method","name":"mosaic","doc":"Mosaic two images\n\n```\n# out_, dx0, dy0, scale1, angle1, dy1, dx1 = ref.mosaic(sec, direction, xref, yref, xsec, ysec, {hwindow: Int32, harea: Int32, mblend: Int32, bandno: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*direction* : Enums::Direction - Horizontal or vertical mosaic\n\n*xref* : Int32 - Position of reference tie-point\n\n*yref* : Int32 - Position of reference tie-point\n\n*xsec* : Int32 - Position of secondary tie-point\n\n*ysec* : Int32 - Position of secondary tie-point\n\n_Optionals_\n\n*hwindow* : Int32 - Half window size\n\n*harea* : Int32 - Half area size\n\n*mblend* : Int32 - Maximum blend size\n\n*bandno* : Int32 - Band to search for features on\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*dx0* : Int32? - Detected integer offset\n\n*dy0* : Int32? - Detected integer offset\n\n*scale1* : Float64? - Detected scale\n\n*angle1* : Float64? - Detected rotation\n\n*dy1* : Float64? - Detected first-order displacement\n\n*dx1* : Float64? - Detected first-order displacement\n","summary":"

    Mosaic two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xref","external_name":"xref","restriction":"Int32"},{"name":"yref","external_name":"yref","restriction":"Int32"},{"name":"xsec","external_name":"xsec","restriction":"Int32"},{"name":"ysec","external_name":"ysec","restriction":"Int32"}],"args_string":"(sec : Image, direction : Enums::Direction, xref : Int32, yref : Int32, xsec : Int32, ysec : Int32, **kwargs)","args_html":"(sec : Image, direction : Enums::Direction, xref : Int32, yref : Int32, xsec : Int32, ysec : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6047,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6047"},"def":{"name":"mosaic","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xref","external_name":"xref","restriction":"Int32"},{"name":"yref","external_name":"yref","restriction":"Int32"},{"name":"xsec","external_name":"xsec","restriction":"Int32"},{"name":"ysec","external_name":"ysec","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"dx0\"] = true\noptions[\"dy0\"] = true\noptions[\"scale1\"] = true\noptions[\"angle1\"] = true\noptions[\"dy1\"] = true\noptions[\"dx1\"] = true\nresults = (self.call(\"mosaic\", options, sec, direction, xref, yref, xsec, ysec)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\ndx0 = ((o = opts) && (val = o[\"dx0\"]?)) ? val.as_i32 : nil\ndy0 = ((o = opts) && (val = o[\"dy0\"]?)) ? val.as_i32 : nil\nscale1 = ((o = opts) && (val = o[\"scale1\"]?)) ? val.as_f64 : nil\nangle1 = ((o = opts) && (val = o[\"angle1\"]?)) ? val.as_f64 : nil\ndy1 = ((o = opts) && (val = o[\"dy1\"]?)) ? val.as_f64 : nil\ndx1 = ((o = opts) && (val = o[\"dx1\"]?)) ? val.as_f64 : nil\n{final_result, dx0, dy0, scale1, angle1, dy1, dx1}\n"}},{"html_id":"mosaic1(sec:Image,direction:Enums::Direction,xr1:Int32,yr1:Int32,xs1:Int32,ys1:Int32,xr2:Int32,yr2:Int32,xs2:Int32,ys2:Int32,**kwargs)-instance-method","name":"mosaic1","doc":"First-order mosaic of two images\n\n```\n# out_ = ref.mosaic1(sec, direction, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, {hwindow: Int32, harea: Int32, search: Bool, interpolate: Interpolate, mblend: Int32})\n```\n\n\nInput Parameters\n\n**Required**\n\n*sec* : Image - Secondary image\n\n*direction* : Enums::Direction - Horizontal or vertical mosaic\n\n*xr1* : Int32 - Position of first reference tie-point\n\n*yr1* : Int32 - Position of first reference tie-point\n\n*xs1* : Int32 - Position of first secondary tie-point\n\n*ys1* : Int32 - Position of first secondary tie-point\n\n*xr2* : Int32 - Position of second reference tie-point\n\n*yr2* : Int32 - Position of second reference tie-point\n\n*xs2* : Int32 - Position of second secondary tie-point\n\n*ys2* : Int32 - Position of second secondary tie-point\n\n_Optionals_\n\n*hwindow* : Int32 - Half window size\n\n*harea* : Int32 - Half area size\n\n*search* : Bool - Search to improve tie-points\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*mblend* : Int32 - Maximum blend size\n\n\n**Returns**\n\nOutput image\n","summary":"

    First-order mosaic of two images

    ","abstract":false,"args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"args_string":"(sec : Image, direction : Enums::Direction, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","args_html":"(sec : Image, direction : Enums::Direction, xr1 : Int32, yr1 : Int32, xs1 : Int32, ys1 : Int32, xr2 : Int32, yr2 : Int32, xs2 : Int32, ys2 : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6118,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6118"},"def":{"name":"mosaic1","args":[{"name":"sec","external_name":"sec","restriction":"Image"},{"name":"direction","external_name":"direction","restriction":"Enums::Direction"},{"name":"xr1","external_name":"xr1","restriction":"Int32"},{"name":"yr1","external_name":"yr1","restriction":"Int32"},{"name":"xs1","external_name":"xs1","restriction":"Int32"},{"name":"ys1","external_name":"ys1","restriction":"Int32"},{"name":"xr2","external_name":"xr2","restriction":"Int32"},{"name":"yr2","external_name":"yr2","restriction":"Int32"},{"name":"xs2","external_name":"xs2","restriction":"Int32"},{"name":"ys2","external_name":"ys2","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"mosaic1\", options, sec, direction, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2)).as(Type)).as_image\n"}},{"html_id":"msb(**kwargs)-instance-method","name":"msb","doc":"Pick most-significant byte from an image\n\n```\n# out_ = in.msb({band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*band* : Int32 - Band to msb\n\n\n**Returns**\n\nOutput image\n","summary":"

    Pick most-significant byte from an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":6142,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6142"},"def":{"name":"msb","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"msb\", options)).as(Type)).as_image\n"}},{"html_id":"multiply(right:Image)-instance-method","name":"multiply","doc":"Multiply two images\n\n```\n# out_ = left.multiply(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Multiply two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":6166,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6166"},"def":{"name":"multiply","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"multiply\", right)).as(Type)).as_image"}},{"html_id":"mutate(&)-instance-method","name":"mutate","doc":"Mutate an image with a block. Inside the block, you can call methods\nwhich modify the image, such as setting or removing metadata, or\nmodifying pixels.\n\nFor example:\n\n```\nimage = image.mutate do |x|\n (0..1).step 0.01 do |i|\n x.draw_line([255.0], (x.width * i).to_i, 0, 0, (x.height * (1 - i)).to_i)\n end\nend\n```\n\nSee `MutableImage`.","summary":"

    Mutate an image with a block.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":637,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L637"},"def":{"name":"mutate","yields":1,"block_arity":1,"visibility":"Public","body":"mutable = MutableImage.new(self)\nyield mutable\nmutable.image\n"}},{"html_id":"new_from_image(value)-instance-method","name":"new_from_image","doc":"A new image is created with the same width, height, format,\ninterpretation, resolution and offset as self, but with every pixel\nset to the specified value.\n\nYou can pass an array to make a many-band image, or a single value to\nmake a one-band image.","summary":"

    A new image is created with the same width, height, format, interpretation, resolution and offset as self, but with every pixel set to the specified value.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":""}],"args_string":"(value)","args_html":"(value)","location":{"filename":"src/vips/image.cr","line_number":391,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L391"},"def":{"name":"new_from_image","args":[{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"pixel = ((Image.black(1, 1)) + value).cast(format)\nimage = pixel.embed(0, 0, width, height, extend: Enums::Extend::Copy)\nimage.copy(interpretation: interpretation, xres: xres, yres: yres, xoffset: xoffset, yoffset: yoffset)\n"}},{"html_id":"new_from_image(*value:Int32|Float64)-instance-method","name":"new_from_image","doc":"A new image is created with the same width, height, format,\ninterpretation, resolution and offset as self, but with every pixel\nset to the specified value.\n\nYou can pass an array to make a many-band image, or a single value to\nmake a one-band image.","summary":"

    A new image is created with the same width, height, format, interpretation, resolution and offset as self, but with every pixel set to the specified value.

    ","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"args_string":"(*value : Int32 | Float64)","args_html":"(*value : Int32 | Float64)","location":{"filename":"src/vips/image.cr","line_number":377,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L377"},"def":{"name":"new_from_image","args":[{"name":"value","external_name":"value","restriction":"Int32 | Float64"}],"splat_index":0,"visibility":"Public","body":"dblarr = Array(Float64).new(value.size) do |i|\n (value.at(i)).to_f\nend\npixel = ((Image.black(1, 1)) + dblarr).cast(format)\nimage = pixel.embed(0, 0, width, height, extend: Enums::Extend::Copy)\nimage.copy(interpretation: interpretation, xres: xres, yres: yres, xoffset: xoffset, yoffset: yoffset)\n"}},{"html_id":"offset-instance-method","name":"offset","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1051,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1051"},"def":{"name":"offset","visibility":"Public","body":"(get(\"offset\")).as_f64"}},{"html_id":"page_height:Int32-instance-method","name":"page_height","doc":"Multi-page images can have a page height.\nIf page-height is not set, it defaults to the image height.\nNote: At least libvips 8.8 is needed.","summary":"

    Multi-page images can have a page height.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1261,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1261"},"def":{"name":"page_height","return_type":"Int32","visibility":"Public","body":"LibVips.vips_image_get_page_height(self)"}},{"html_id":"pbmsave_stream(stream:IO,**kwargs)-instance-method","name":"pbmsave_stream","doc":"Save image in pbm format\n\n```\nin.pbmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pbm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6417,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6417"},"def":{"name":"pbmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npbmsave_target(target, **kwargs)\n"}},{"html_id":"pbmsave_target(target:Target,**kwargs)-instance-method","name":"pbmsave_target","doc":"Save image in pbm format\n\n```\nin.pbmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pbm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6387,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6387"},"def":{"name":"pbmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pbmsave_target\", options, target)\n"}},{"html_id":"percent(percent:Float64)-instance-method","name":"percent","doc":"Find threshold for percent of pixels\n\n```\n# threshold = in.percent(percent)\n```\n\n\nInput Parameters\n\n**Required**\n\n*percent* : Float64 - Percent of pixels\n\n\n**Returns**\n\nThreshold above which lie percent of pixels\n","summary":"

    Find threshold for percent of pixels

    ","abstract":false,"args":[{"name":"percent","external_name":"percent","restriction":"Float64"}],"args_string":"(percent : Float64)","args_html":"(percent : Float64)","location":{"filename":"src/vips/ext/image.cr","line_number":6647,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6647"},"def":{"name":"percent","args":[{"name":"percent","external_name":"percent","restriction":"Float64"}],"visibility":"Public","body":"((self.call(\"percent\", percent)).as(Type)).as_i32"}},{"html_id":"pfmsave_stream(stream:IO,**kwargs)-instance-method","name":"pfmsave_stream","doc":"Save image in pfm format\n\n```\nin.pfmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pfm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6743,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6743"},"def":{"name":"pfmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npfmsave_target(target, **kwargs)\n"}},{"html_id":"pfmsave_target(target:Target,**kwargs)-instance-method","name":"pfmsave_target","doc":"Save image in pfm format\n\n```\nin.pfmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pfm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6713,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6713"},"def":{"name":"pfmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pfmsave_target\", options, target)\n"}},{"html_id":"pgmsave_stream(stream:IO,**kwargs)-instance-method","name":"pgmsave_stream","doc":"Save image in pgm format\n\n```\nin.pgmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pgm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6806,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6806"},"def":{"name":"pgmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npgmsave_target(target, **kwargs)\n"}},{"html_id":"pgmsave_target(target:Target,**kwargs)-instance-method","name":"pgmsave_target","doc":"Save image in pgm format\n\n```\nin.pgmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pgm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":6776,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6776"},"def":{"name":"pgmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pgmsave_target\", options, target)\n"}},{"html_id":"phasecor(in2:Image)-instance-method","name":"phasecor","doc":"Calculate phase correlation\n\n```\n# out_ = in.phasecor(in2)\n```\n\n\nInput Parameters\n\n**Required**\n\n*in2* : Image - Second input image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Calculate phase correlation

    ","abstract":false,"args":[{"name":"in2","external_name":"in2","restriction":"Image"}],"args_string":"(in2 : Image)","args_html":"(in2 : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":6829,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L6829"},"def":{"name":"phasecor","args":[{"name":"in2","external_name":"in2","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"phasecor\", in2)).as(Type)).as_image"}},{"html_id":"pngsave(filename:String,**kwargs)-instance-method","name":"pngsave","doc":"Save image to file as png\n\n```\nin.pngsave(filename, {compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to file as png

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7040,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7040"},"def":{"name":"pngsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pngsave\", options, filename)\n"}},{"html_id":"pngsave_buffer(**kwargs)-instance-method","name":"pngsave_buffer","doc":"Save image to buffer as png\n\n```\n# buffer = in.pngsave_buffer({compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to buffer as png

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7085,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7085"},"def":{"name":"pngsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"pngsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"pngsave_stream(stream:IO,**kwargs)-instance-method","name":"pngsave_stream","doc":"Save image to stream as png\n\n```\nin.pngsave_stream(stream, {compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to stream as png

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7173,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7173"},"def":{"name":"pngsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npngsave_target(target, **kwargs)\n"}},{"html_id":"pngsave_target(target:Target,**kwargs)-instance-method","name":"pngsave_target","doc":"Save image to target as png\n\n```\nin.pngsave_target(target, {compression: Int32, interlace: Bool, profile: String, filter: Enums::ForeignPngFilter, palette: Bool, q: Int32, dither: Float64, bitdepth: Int32, effort: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*compression* : Int32 - Compression factor\n\n*interlace* : Bool - Interlace image\n\n*profile* : String - ICC profile to embed\n\n*filter* : Enums::ForeignPngFilter - libspng row filter flag(s)\n\n*palette* : Bool - Quantise to 8bpp palette\n\n*q* : Int32 - Quantisation quality\n\n*dither* : Float64 - Amount of dithering\n\n*bitdepth* : Int32 - Write as a 1, 2, 4, 8 or 16 bit image\n\n*effort* : Int32 - Quantisation CPU effort\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to target as png

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7131,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7131"},"def":{"name":"pngsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pngsave_target\", options, target)\n"}},{"html_id":"pnmsave_stream(stream:IO,**kwargs)-instance-method","name":"pnmsave_stream","doc":"Save image in pnm format\n\n```\nin.pnmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image in pnm format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7236,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7236"},"def":{"name":"pnmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\npnmsave_target(target, **kwargs)\n"}},{"html_id":"pnmsave_target(target:Target,**kwargs)-instance-method","name":"pnmsave_target","doc":"Save image in pnm format\n\n```\nin.pnmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image in pnm format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7206,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7206"},"def":{"name":"pnmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"pnmsave_target\", options, target)\n"}},{"html_id":"polar:Image-instance-method","name":"polar","doc":"Return an image converted to polar coordinates.","summary":"

    Return an image converted to polar coordinates.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":858,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L858"},"def":{"name":"polar","return_type":"Image","visibility":"Public","body":"Image.run_cmplx(self) do |x|\n x.complex(Enums::OperationComplex::Polar)\nend"}},{"html_id":"ppmsave(filename:String,**kwargs)-instance-method","name":"ppmsave","doc":"Save image to ppm file\n\n```\nin.ppmsave(filename, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to ppm file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7385,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7385"},"def":{"name":"ppmsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"ppmsave\", options, filename)\n"}},{"html_id":"ppmsave_stream(stream:IO,**kwargs)-instance-method","name":"ppmsave_stream","doc":"Save to ppm\n\n```\nin.ppmsave_stream(stream, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save to ppm

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7448,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7448"},"def":{"name":"ppmsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nppmsave_target(target, **kwargs)\n"}},{"html_id":"ppmsave_target(target:Target,**kwargs)-instance-method","name":"ppmsave_target","doc":"Save to ppm\n\n```\nin.ppmsave_target(target, {format: Enums::ForeignPpmFormat, ascii: Bool, bitdepth: Int32, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*format* : Enums::ForeignPpmFormat - Format to save in\n\n*ascii* : Bool - Save as ascii\n\n*bitdepth* : Int32 - Set to 1 to write as a 1 bit image\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save to ppm

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7418,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7418"},"def":{"name":"ppmsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"ppmsave_target\", options, target)\n"}},{"html_id":"premultiply(**kwargs)-instance-method","name":"premultiply","doc":"Premultiply image alpha\n\n```\n# out_ = in.premultiply({max_alpha: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*max_alpha* : Float64 - Maximum value of alpha channel\n\n\n**Returns**\n\nOutput image\n","summary":"

    Premultiply image alpha

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7471,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7471"},"def":{"name":"premultiply","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"premultiply\", options)).as(Type)).as_image\n"}},{"html_id":"profile-instance-method","name":"profile","doc":"Find image profiles\n\n```\n# output = in.profile()\n```\n\n\n**Returns**\n\nFirst non-zero pixel in column\n\nFirst non-zero pixel in row\n","summary":"

    Find image profiles

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7490,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7490"},"def":{"name":"profile","visibility":"Public","body":"results = (self.call(\"profile\")).as(Array(Type))\n{results[0].as_image, results[1].as_image}\n"}},{"html_id":"project-instance-method","name":"project","doc":"Find image projections\n\n```\n# output = in.project()\n```\n\n\n**Returns**\n\nSums of columns\n\nSums of rows\n","summary":"

    Find image projections

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7531,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7531"},"def":{"name":"project","visibility":"Public","body":"results = (self.call(\"project\")).as(Array(Type))\n{results[0].as_image, results[1].as_image}\n"}},{"html_id":"quadratic(coeff:Image,**kwargs)-instance-method","name":"quadratic","doc":"Resample an image with a quadratic transform\n\n```\n# out_ = in.quadratic(coeff, {interpolate: Interpolate})\n```\n\n\nInput Parameters\n\n**Required**\n\n*coeff* : Image - Coefficient matrix\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate values with this\n\n\n**Returns**\n\nOutput image\n","summary":"

    Resample an image with a quadratic transform

    ","abstract":false,"args":[{"name":"coeff","external_name":"coeff","restriction":"Image"}],"args_string":"(coeff : Image, **kwargs)","args_html":"(coeff : Image, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7559,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7559"},"def":{"name":"quadratic","args":[{"name":"coeff","external_name":"coeff","restriction":"Image"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"quadratic\", options, coeff)).as(Type)).as_image\n"}},{"html_id":"rad2float-instance-method","name":"rad2float","doc":"Unpack radiance coding to float rgb\n\n```\n# out_ = in.rad2float()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpack radiance coding to float rgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7576,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7576"},"def":{"name":"rad2float","visibility":"Public","body":"((self.call(\"rad2float\")).as(Type)).as_image"}},{"html_id":"radsave(filename:String,**kwargs)-instance-method","name":"radsave","doc":"Save image to radiance file\n\n```\nin.radsave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to radiance file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7761,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7761"},"def":{"name":"radsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"radsave\", options, filename)\n"}},{"html_id":"radsave_buffer(**kwargs)-instance-method","name":"radsave_buffer","doc":"Save image to radiance buffer\n\n```\n# buffer = in.radsave_buffer({strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to radiance buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":7788,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7788"},"def":{"name":"radsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"radsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"radsave_stream(stream:IO,**kwargs)-instance-method","name":"radsave_stream","doc":"Save image to radiance stream\n\n```\nin.radsave_stream(stream, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to radiance stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7840,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7840"},"def":{"name":"radsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nradsave_target(target, **kwargs)\n"}},{"html_id":"radsave_target(target:Target,**kwargs)-instance-method","name":"radsave_target","doc":"Save image to radiance target\n\n```\nin.radsave_target(target, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to radiance target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7816,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7816"},"def":{"name":"radsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"radsave_target\", options, target)\n"}},{"html_id":"rank(width:Int32,height:Int32,index:Int32)-instance-method","name":"rank","doc":"Rank filter\n\n```\n# out_ = in.rank(width, height, index)\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Window width in pixels\n\n*height* : Int32 - Window height in pixels\n\n*index* : Int32 - Select pixel at index\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rank filter

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"index","external_name":"index","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, index : Int32)","args_html":"(width : Int32, height : Int32, index : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":7867,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7867"},"def":{"name":"rank","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"},{"name":"index","external_name":"index","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"rank\", width, height, index)).as(Type)).as_image"}},{"html_id":"rawsave(filename:String,**kwargs)-instance-method","name":"rawsave","doc":"Save image to raw file\n\n```\nin.rawsave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to raw file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7948,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7948"},"def":{"name":"rawsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"rawsave\", options, filename)\n"}},{"html_id":"rawsave_fd(fd:Int32,**kwargs)-instance-method","name":"rawsave_fd","doc":"Write raw image to file descriptor\n\n```\nin.rawsave_fd(fd, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*fd* : Int32 - File descriptor to write to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Write raw image to file descriptor

    ","abstract":false,"args":[{"name":"fd","external_name":"fd","restriction":"Int32"}],"args_string":"(fd : Int32, **kwargs)","args_html":"(fd : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":7975,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7975"},"def":{"name":"rawsave_fd","args":[{"name":"fd","external_name":"fd","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"rawsave_fd\", options, fd)\n"}},{"html_id":"real:Image-instance-method","name":"real","doc":"Return the real part of a complex image.","summary":"

    Return the real part of a complex image.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":848,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L848"},"def":{"name":"real","return_type":"Image","visibility":"Public","body":"complexget(Enums::OperationComplexget::Real)"}},{"html_id":"recomb(m:Image)-instance-method","name":"recomb","doc":"Linear recombination with matrix\n\n```\n# out_ = in.recomb(m)\n```\n\n\nInput Parameters\n\n**Required**\n\n*m* : Image - Matrix of coefficients\n\n\n**Returns**\n\nOutput image\n","summary":"

    Linear recombination with matrix

    ","abstract":false,"args":[{"name":"m","external_name":"m","restriction":"Image"}],"args_string":"(m : Image)","args_html":"(m : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":7998,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L7998"},"def":{"name":"recomb","args":[{"name":"m","external_name":"m","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"recomb\", m)).as(Type)).as_image"}},{"html_id":"rect:Image-instance-method","name":"rect","doc":"Return an image converted to rectangular coordinates.","summary":"

    Return an image converted to rectangular coordinates.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":863,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L863"},"def":{"name":"rect","return_type":"Image","visibility":"Public","body":"Image.run_cmplx(self) do |x|\n x.complex(Enums::OperationComplex::Rect)\nend"}},{"html_id":"reduce(hshrink:Float64,vshrink:Float64,**kwargs)-instance-method","name":"reduce","doc":"Reduce an image\n\n```\n# out_ = in.reduce(hshrink, vshrink, {kernel: Enums::Kernel, gap: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Float64 - Horizontal shrink factor\n\n*vshrink* : Float64 - Vertical shrink factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n\n**Returns**\n\nOutput image\n","summary":"

    Reduce an image

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"args_string":"(hshrink : Float64, vshrink : Float64, **kwargs)","args_html":"(hshrink : Float64, vshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8028,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8028"},"def":{"name":"reduce","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"reduce\", options, hshrink, vshrink)).as(Type)).as_image\n"}},{"html_id":"reduceh(hshrink:Float64,**kwargs)-instance-method","name":"reduceh","doc":"Shrink an image horizontally\n\n```\n# out_ = in.reduceh(hshrink, {kernel: Enums::Kernel, gap: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Float64 - Horizontal shrink factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image horizontally

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"}],"args_string":"(hshrink : Float64, **kwargs)","args_html":"(hshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8058,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8058"},"def":{"name":"reduceh","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"reduceh\", options, hshrink)).as(Type)).as_image\n"}},{"html_id":"reducev(vshrink:Float64,**kwargs)-instance-method","name":"reducev","doc":"Shrink an image vertically\n\n```\n# out_ = in.reducev(vshrink, {kernel: Enums::Kernel, gap: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*vshrink* : Float64 - Vertical shrink factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image vertically

    ","abstract":false,"args":[{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"args_string":"(vshrink : Float64, **kwargs)","args_html":"(vshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8088,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8088"},"def":{"name":"reducev","args":[{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"reducev\", options, vshrink)).as(Type)).as_image\n"}},{"html_id":"relational(right:Image,relational:Enums::OperationRelational)-instance-method","name":"relational","doc":"Relational operation on two images\n\n```\n# out_ = left.relational(right, relational)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n*relational* : Enums::OperationRelational - Relational to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Relational operation on two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"}],"args_string":"(right : Image, relational : Enums::OperationRelational)","args_html":"(right : Image, relational : Enums::OperationRelational)","location":{"filename":"src/vips/ext/image.cr","line_number":8114,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8114"},"def":{"name":"relational","args":[{"name":"right","external_name":"right","restriction":"Image"},{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"}],"visibility":"Public","body":"((self.call(\"relational\", right, relational)).as(Type)).as_image"}},{"html_id":"relational_const(relational:Enums::OperationRelational,c:Array(Float64))-instance-method","name":"relational_const","doc":"Relational operations against a constant\n\n```\n# out_ = in.relational_const(relational, c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*relational* : Enums::OperationRelational - Relational to perform\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Relational operations against a constant

    ","abstract":false,"args":[{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(relational : Enums::OperationRelational, c : Array(Float64))","args_html":"(relational : Enums::OperationRelational, c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":8138,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8138"},"def":{"name":"relational_const","args":[{"name":"relational","external_name":"relational","restriction":"Enums::OperationRelational"},{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"relational_const\", relational, c)).as(Type)).as_image"}},{"html_id":"remainder(right:Image)-instance-method","name":"remainder","doc":"Remainder after integer division of two images\n\n```\n# out_ = left.remainder(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Remainder after integer division of two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8160,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8160"},"def":{"name":"remainder","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"remainder\", right)).as(Type)).as_image"}},{"html_id":"remainder_const(c:Array(Float64))-instance-method","name":"remainder_const","doc":"Remainder after integer division of an image and a constant\n\n```\n# out_ = in.remainder_const(c)\n```\n\n\nInput Parameters\n\n**Required**\n\n*c* : Array(Float64) - Array of constants\n\n\n**Returns**\n\nOutput image\n","summary":"

    Remainder after integer division of an image and a constant

    ","abstract":false,"args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"args_string":"(c : Array(Float64))","args_html":"(c : Array(Float64))","location":{"filename":"src/vips/ext/image.cr","line_number":8182,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8182"},"def":{"name":"remainder_const","args":[{"name":"c","external_name":"c","restriction":"Array(Float64)"}],"visibility":"Public","body":"((self.call(\"remainder_const\", c)).as(Type)).as_image"}},{"html_id":"replicate(across:Int32,down:Int32)-instance-method","name":"replicate","doc":"Replicate an image\n\n```\n# out_ = in.replicate(across, down)\n```\n\n\nInput Parameters\n\n**Required**\n\n*across* : Int32 - Repeat this many times horizontally\n\n*down* : Int32 - Repeat this many times vertically\n\n\n**Returns**\n\nOutput image\n","summary":"

    Replicate an image

    ","abstract":false,"args":[{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"args_string":"(across : Int32, down : Int32)","args_html":"(across : Int32, down : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":8206,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8206"},"def":{"name":"replicate","args":[{"name":"across","external_name":"across","restriction":"Int32"},{"name":"down","external_name":"down","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"replicate\", across, down)).as(Type)).as_image"}},{"html_id":"resize(scale:Float64,**kwargs)-instance-method","name":"resize","doc":"Resize an image\n\n```\n# out_ = in.resize(scale, {kernel: Enums::Kernel, gap: Float64, vscale: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*scale* : Float64 - Scale image by this factor\n\n_Optionals_\n\n*kernel* : Enums::Kernel - Resampling kernel\n\n*gap* : Float64 - Reducing gap\n\n*vscale* : Float64 - Vertical scale image by this factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Resize an image

    ","abstract":false,"args":[{"name":"scale","external_name":"scale","restriction":"Float64"}],"args_string":"(scale : Float64, **kwargs)","args_html":"(scale : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8236,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8236"},"def":{"name":"resize","args":[{"name":"scale","external_name":"scale","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"resize\", options, scale)).as(Type)).as_image\n"}},{"html_id":"rint:Image-instance-method","name":"rint","doc":"Return the nearest integral value.","summary":"

    Return the nearest integral value.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1028,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1028"},"def":{"name":"rint","return_type":"Image","visibility":"Public","body":"((self.call(\"round\", Enums::OperationRound::Rint)).as(Type)).as_image"}},{"html_id":"rot(angle:Enums::Angle)-instance-method","name":"rot","doc":"Rotate an image\n\n```\n# out_ = in.rot(angle)\n```\n\n\nInput Parameters\n\n**Required**\n\n*angle* : Enums::Angle - Angle to rotate image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rotate an image

    ","abstract":false,"args":[{"name":"angle","external_name":"angle","restriction":"Enums::Angle"}],"args_string":"(angle : Enums::Angle)","args_html":"(angle : Enums::Angle)","location":{"filename":"src/vips/ext/image.cr","line_number":8260,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8260"},"def":{"name":"rot","args":[{"name":"angle","external_name":"angle","restriction":"Enums::Angle"}],"visibility":"Public","body":"((self.call(\"rot\", angle)).as(Type)).as_image"}},{"html_id":"rot180-instance-method","name":"rot180","doc":"Rotate 180 degrees clockwise.","summary":"

    Rotate 180 degrees clockwise.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1008,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1008"},"def":{"name":"rot180","visibility":"Public","body":"rot(Enums::Angle::D180)"}},{"html_id":"rot270-instance-method","name":"rot270","doc":"Rotate 270 degrees clockwise.","summary":"

    Rotate 270 degrees clockwise.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1013,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1013"},"def":{"name":"rot270","visibility":"Public","body":"rot(Enums::Angle::D270)"}},{"html_id":"rot45(**kwargs)-instance-method","name":"rot45","doc":"Rotate an image\n\n```\n# out_ = in.rot45({angle: Enums::Angle45})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*angle* : Enums::Angle45 - Angle to rotate image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rotate an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8282,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8282"},"def":{"name":"rot45","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"rot45\", options)).as(Type)).as_image\n"}},{"html_id":"rot90-instance-method","name":"rot90","doc":"Rotate 90 degrees clockwise.","summary":"

    Rotate 90 degrees clockwise.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1003,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1003"},"def":{"name":"rot90","visibility":"Public","body":"rot(Enums::Angle::D90)"}},{"html_id":"rotate(angle:Float64,**kwargs)-instance-method","name":"rotate","doc":"Rotate an image by a number of degrees\n\n```\n# out_ = in.rotate(angle, {interpolate: Interpolate, background: Array(Float64), odx: Float64, ody: Float64, idx: Float64, idy: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*angle* : Float64 - Rotate anticlockwise by this many degrees\n\n_Optionals_\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*background* : Array(Float64) - Background value\n\n*odx* : Float64 - Horizontal output displacement\n\n*ody* : Float64 - Vertical output displacement\n\n*idx* : Float64 - Horizontal input displacement\n\n*idy* : Float64 - Vertical input displacement\n\n\n**Returns**\n\nOutput image\n","summary":"

    Rotate an image by a number of degrees

    ","abstract":false,"args":[{"name":"angle","external_name":"angle","restriction":"Float64"}],"args_string":"(angle : Float64, **kwargs)","args_html":"(angle : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8320,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8320"},"def":{"name":"rotate","args":[{"name":"angle","external_name":"angle","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"rotate\", options, angle)).as(Type)).as_image\n"}},{"html_id":"round(round:Enums::OperationRound)-instance-method","name":"round","doc":"Perform a round function on an image\n\n```\n# out_ = in.round(round)\n```\n\n\nInput Parameters\n\n**Required**\n\n*round* : Enums::OperationRound - Rounding operation to perform\n\n\n**Returns**\n\nOutput image\n","summary":"

    Perform a round function on an image

    ","abstract":false,"args":[{"name":"round","external_name":"round","restriction":"Enums::OperationRound"}],"args_string":"(round : Enums::OperationRound)","args_html":"(round : Enums::OperationRound)","location":{"filename":"src/vips/ext/image.cr","line_number":8344,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8344"},"def":{"name":"round","args":[{"name":"round","external_name":"round","restriction":"Enums::OperationRound"}],"visibility":"Public","body":"((self.call(\"round\", round)).as(Type)).as_image"}},{"html_id":"scale-instance-method","name":"scale","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1047,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1047"},"def":{"name":"scale","visibility":"Public","body":"(get(\"scale\")).as_f64"}},{"html_id":"scaleimage(**opts)-instance-method","name":"scaleimage","doc":"Scale an image to 0 - 255. This is the libvips `scale` operation, but\nrenamed to avoid a clash with the `scale` for convolution masks.","summary":"

    Scale an image to 0 - 255.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":645,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L645"},"def":{"name":"scaleimage","double_splat":{"name":"opts","external_name":"opts","restriction":""},"visibility":"Public","body":"options = Optional.new(**opts)\n((call(\"scale\", options)).as(Type)).as_image\n"}},{"html_id":"scrgb2bw(**kwargs)-instance-method","name":"scrgb2bw","doc":"Convert scrgb to bw\n\n```\n# out_ = in.scrgb2bw({depth: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert scrgb to bw

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8366,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8366"},"def":{"name":"scrgb2bw","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"scrgb2bw\", options)).as(Type)).as_image\n"}},{"html_id":"scrgb2srgb(**kwargs)-instance-method","name":"scrgb2srgb","doc":"Convert an scrgb image to srgb\n\n```\n# out_ = in.scrgb2srgb({depth: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*depth* : Int32 - Output device space depth in bits\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert an scrgb image to srgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8390,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8390"},"def":{"name":"scrgb2srgb","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"scrgb2srgb\", options)).as(Type)).as_image\n"}},{"html_id":"scrgb2xyz-instance-method","name":"scrgb2xyz","doc":"Transform scrgb to xyz\n\n```\n# out_ = in.scrgb2xyz()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform scrgb to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8407,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8407"},"def":{"name":"scrgb2xyz","visibility":"Public","body":"((self.call(\"scrgb2xyz\")).as(Type)).as_image"}},{"html_id":"sequential(**kwargs)-instance-method","name":"sequential","doc":"Check sequential access\n\n```\n# out_ = in.sequential({tile_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_height* : Int32 - Tile height in pixels\n\n\n**Returns**\n\nOutput image\n","summary":"

    Check sequential access

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8429,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8429"},"def":{"name":"sequential","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"sequential\", options)).as(Type)).as_image\n"}},{"html_id":"set_kill(kill:Bool)-instance-method","name":"set_kill","doc":"Set the `kill` flag on an image. Handy for stopping sets of threads.\nAt least libvips 8.8 is needed.","summary":"

    Set the kill flag on an image.

    ","abstract":false,"args":[{"name":"kill","external_name":"kill","restriction":"Bool"}],"args_string":"(kill : Bool)","args_html":"(kill : Bool)","location":{"filename":"src/vips/image.cr","line_number":1223,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1223"},"def":{"name":"set_kill","args":[{"name":"kill","external_name":"kill","restriction":"Bool"}],"visibility":"Public","body":"if Vips.at_least_libvips?(8, 8)\nelse\n return\nend\nLibVips.vips_image_set_kill(self, kill)\n"}},{"html_id":"set_progress(enable:Bool)-instance-method","name":"set_progress","doc":"Enable progress reporting on an image.\nWhen progress reporting is enabled, evaluation of the most downstream\nimage from this image will report progress using the `Enums::Signal::PreEval`,\n`Enums::Signal::Eval` and `Enums::Signal::PostEval` signals.","summary":"

    Enable progress reporting on an image.

    ","abstract":false,"args":[{"name":"enable","external_name":"enable","restriction":"Bool"}],"args_string":"(enable : Bool)","args_html":"(enable : Bool)","location":{"filename":"src/vips/image.cr","line_number":1238,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1238"},"def":{"name":"set_progress","args":[{"name":"enable","external_name":"enable","restriction":"Bool"}],"visibility":"Public","body":"LibVips.vips_image_set_progress(self, enable)"}},{"html_id":"set_progress(&block:Int32->Nil)-instance-method","name":"set_progress","doc":"Enable progress reporting on an image and provide a block which will be executed on feedback.\nYou can use this function to update user-interfaces with progress feedback, for example\n\n```\nimage = Vips::Image.new_from_file(\"huge.jpg\", access: Enums::Access.Sequential)\nimage.set_progress { |percent| puts \"#{percent} complete\" }\nimage.dzsave(\"image-pyramid\")\n```","summary":"

    Enable progress reporting on an image and provide a block which will be executed on feedback.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1250,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1250"},"def":{"name":"set_progress","yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Int32 -> Nil)"},"visibility":"Public","body":"last_percent = 0\nsignal_connect(Enums::Signal::Eval) do |image, progress|\n if progress.percent == last_percent\n else\n block.call(progress.percent)\n end\nend\n"}},{"html_id":"sharpen(**kwargs)-instance-method","name":"sharpen","doc":"Unsharp masking for print\n\n```\n# out_ = in.sharpen({sigma: Float64, x1: Float64, y2: Float64, y3: Float64, m1: Float64, m2: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*sigma* : Float64 - Sigma of Gaussian\n\n*x1* : Float64 - Flat/jaggy threshold\n\n*y2* : Float64 - Maximum brightening\n\n*y3* : Float64 - Maximum darkening\n\n*m1* : Float64 - Slope for flat areas\n\n*m2* : Float64 - Slope for jaggy areas\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unsharp masking for print

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8463,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8463"},"def":{"name":"sharpen","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"sharpen\", options)).as(Type)).as_image\n"}},{"html_id":"shrink(hshrink:Float64,vshrink:Float64,**kwargs)-instance-method","name":"shrink","doc":"Shrink an image\n\n```\n# out_ = in.shrink(hshrink, vshrink, {ceil: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Float64 - Horizontal shrink factor\n\n*vshrink* : Float64 - Vertical shrink factor\n\n_Optionals_\n\n*ceil* : Bool - Round-up output dimensions\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"args_string":"(hshrink : Float64, vshrink : Float64, **kwargs)","args_html":"(hshrink : Float64, vshrink : Float64, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8493,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8493"},"def":{"name":"shrink","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Float64"},{"name":"vshrink","external_name":"vshrink","restriction":"Float64"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"shrink\", options, hshrink, vshrink)).as(Type)).as_image\n"}},{"html_id":"shrinkh(hshrink:Int32,**kwargs)-instance-method","name":"shrinkh","doc":"Shrink an image horizontally\n\n```\n# out_ = in.shrinkh(hshrink, {ceil: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*hshrink* : Int32 - Horizontal shrink factor\n\n_Optionals_\n\n*ceil* : Bool - Round-up output dimensions\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image horizontally

    ","abstract":false,"args":[{"name":"hshrink","external_name":"hshrink","restriction":"Int32"}],"args_string":"(hshrink : Int32, **kwargs)","args_html":"(hshrink : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8521,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8521"},"def":{"name":"shrinkh","args":[{"name":"hshrink","external_name":"hshrink","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"shrinkh\", options, hshrink)).as(Type)).as_image\n"}},{"html_id":"shrinkv(vshrink:Int32,**kwargs)-instance-method","name":"shrinkv","doc":"Shrink an image vertically\n\n```\n# out_ = in.shrinkv(vshrink, {ceil: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*vshrink* : Int32 - Vertical shrink factor\n\n_Optionals_\n\n*ceil* : Bool - Round-up output dimensions\n\n\n**Returns**\n\nOutput image\n","summary":"

    Shrink an image vertically

    ","abstract":false,"args":[{"name":"vshrink","external_name":"vshrink","restriction":"Int32"}],"args_string":"(vshrink : Int32, **kwargs)","args_html":"(vshrink : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8549,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8549"},"def":{"name":"shrinkv","args":[{"name":"vshrink","external_name":"vshrink","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"shrinkv\", options, vshrink)).as(Type)).as_image\n"}},{"html_id":"sign-instance-method","name":"sign","doc":"Unit vector of pixel\n\n```\n# out_ = in.sign()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unit vector of pixel

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8566,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8566"},"def":{"name":"sign","visibility":"Public","body":"((self.call(\"sign\")).as(Type)).as_image"}},{"html_id":"signal_connect(signal:Enums::Signal,data:Pointer(Void)=Pointer(Void).null,&callback:EvalProc)-instance-method","name":"signal_connect","doc":"Connects a `EvalProc` callback to a signal on this image.\nThe callback will be triggered every time this signal is issued on this image.","summary":"

    Connects a EvalProc callback to a signal on this image.

    ","abstract":false,"args":[{"name":"signal","external_name":"signal","restriction":"Enums::Signal"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"args_string":"(signal : Enums::Signal, data : Pointer(Void) = Pointer(Void).null, &callback : EvalProc)","args_html":"(signal : Enums::Signal, data : Pointer(Void) = Pointer(Void).null, &callback : EvalProc)","location":{"filename":"src/vips/image.cr","line_number":1230,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1230"},"def":{"name":"signal_connect","args":[{"name":"signal","external_name":"signal","restriction":"Enums::Signal"},{"name":"data","default_value":"Pointer(Void).null","external_name":"data","restriction":"Pointer(Void)"}],"yields":0,"block_arity":0,"block_arg":{"name":"callback","external_name":"callback","restriction":"EvalProc"},"visibility":"Public","body":"signal_connect(signal.to_s.downcase, callback, data)"}},{"html_id":"similarity(**kwargs)-instance-method","name":"similarity","doc":"Similarity transform of an image\n\n```\n# out_ = in.similarity({scale: Float64, angle: Float64, interpolate: Interpolate, background: Array(Float64), odx: Float64, ody: Float64, idx: Float64, idy: Float64})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*scale* : Float64 - Scale by this factor\n\n*angle* : Float64 - Rotate anticlockwise by this many degrees\n\n*interpolate* : Interpolate - Interpolate pixels with this\n\n*background* : Array(Float64) - Background value\n\n*odx* : Float64 - Horizontal output displacement\n\n*ody* : Float64 - Vertical output displacement\n\n*idx* : Float64 - Horizontal input displacement\n\n*idy* : Float64 - Vertical input displacement\n\n\n**Returns**\n\nOutput image\n","summary":"

    Similarity transform of an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8602,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8602"},"def":{"name":"similarity","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"similarity\", options)).as(Type)).as_image\n"}},{"html_id":"sin:Image-instance-method","name":"sin","doc":"Return the sine of an image in degrees.","summary":"

    Return the sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":873,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L873"},"def":{"name":"sin","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Sin)"}},{"html_id":"sinh:Image-instance-method","name":"sinh","doc":"Return the hyperbolic sine of an image in degrees.","summary":"

    Return the hyperbolic sine of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":903,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L903"},"def":{"name":"sinh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Sinh)"}},{"html_id":"size-instance-method","name":"size","doc":"Get the image size","summary":"

    Get the image size

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":1056,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1056"},"def":{"name":"size","visibility":"Public","body":"[width, height]"}},{"html_id":"smartcrop(width:Int32,height:Int32,**kwargs)-instance-method","name":"smartcrop","doc":"Extract an area from an image\n\n```\n# out_, attention_x, attention_y = input.smartcrop(width, height, {interesting: Enums::Interesting})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Width of extract area\n\n*height* : Int32 - Height of extract area\n\n_Optionals_\n\n*interesting* : Enums::Interesting - How to measure interestingness\n\n\n**Returns**\n\nOutput image\n\n_Optionals_\n\n*attention_x* : Int32? - Horizontal position of attention centre\n\n*attention_y* : Int32? - Vertical position of attention centre\n","summary":"

    Extract an area from an image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8672,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8672"},"def":{"name":"smartcrop","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\noptions[\"attention_x\"] = true\noptions[\"attention_y\"] = true\nresults = (self.call(\"smartcrop\", options, width, height)).as(Array(Type))\nfinal_result = (results.first.as(Type)).as_image\nopts = results[1]?.try(&.as_h)\nattention_x = ((o = opts) && (val = o[\"attention_x\"]?)) ? val.as_i32 : nil\nattention_y = ((o = opts) && (val = o[\"attention_y\"]?)) ? val.as_i32 : nil\n{final_result, attention_x, attention_y}\n"}},{"html_id":"sobel-instance-method","name":"sobel","doc":"Sobel edge detector\n\n```\n# out_ = in.sobel()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Sobel edge detector

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8698,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8698"},"def":{"name":"sobel","visibility":"Public","body":"((self.call(\"sobel\")).as(Type)).as_image"}},{"html_id":"spcor(ref:Image)-instance-method","name":"spcor","doc":"Spatial correlation\n\n```\n# out_ = in.spcor(ref)\n```\n\n\nInput Parameters\n\n**Required**\n\n*ref* : Image - Input reference image\n\n\n**Returns**\n\nOutput image\n","summary":"

    Spatial correlation

    ","abstract":false,"args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"args_string":"(ref : Image)","args_html":"(ref : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8720,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8720"},"def":{"name":"spcor","args":[{"name":"ref","external_name":"ref","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"spcor\", ref)).as(Type)).as_image"}},{"html_id":"spectrum-instance-method","name":"spectrum","doc":"Make displayable power spectrum\n\n```\n# out_ = in.spectrum()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Make displayable power spectrum

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8735,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8735"},"def":{"name":"spectrum","visibility":"Public","body":"((self.call(\"spectrum\")).as(Type)).as_image"}},{"html_id":"srgb2hsv-instance-method","name":"srgb2hsv","doc":"Transform srgb to hsv\n\n```\n# out_ = in.srgb2hsv()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform srgb to hsv

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8750,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8750"},"def":{"name":"srgb2hsv","visibility":"Public","body":"((self.call(\"srgb2hsv\")).as(Type)).as_image"}},{"html_id":"srgb2scrgb-instance-method","name":"srgb2scrgb","doc":"Convert an srgb image to scrgb\n\n```\n# out_ = in.srgb2scrgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Convert an srgb image to scrgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8765,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8765"},"def":{"name":"srgb2scrgb","visibility":"Public","body":"((self.call(\"srgb2scrgb\")).as(Type)).as_image"}},{"html_id":"stats-instance-method","name":"stats","doc":"Find many image stats\n\n```\n# out_ = in.stats()\n```\n\n\n**Returns**\n\nOutput array of statistics\n","summary":"

    Find many image stats

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":8780,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8780"},"def":{"name":"stats","visibility":"Public","body":"((self.call(\"stats\")).as(Type)).as_image"}},{"html_id":"stdif(width:Int32,height:Int32,**kwargs)-instance-method","name":"stdif","doc":"Statistical difference\n\n```\n# out_ = in.stdif(width, height, {s0: Float64, b: Float64, m0: Float64, a: Float64})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Window width in pixels\n\n*height* : Int32 - Window height in pixels\n\n_Optionals_\n\n*s0* : Float64 - New deviation\n\n*b* : Float64 - Weight of new deviation\n\n*m0* : Float64 - New mean\n\n*a* : Float64 - Weight of new mean\n\n\n**Returns**\n\nOutput image\n","summary":"

    Statistical difference

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(width : Int32, height : Int32, **kwargs)","args_html":"(width : Int32, height : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8814,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8814"},"def":{"name":"stdif","args":[{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"stdif\", options, width, height)).as(Type)).as_image\n"}},{"html_id":"subsample(xfac:Int32,yfac:Int32,**kwargs)-instance-method","name":"subsample","doc":"Subsample an image\n\n```\n# out_ = input.subsample(xfac, yfac, {point: Bool})\n```\n\n\nInput Parameters\n\n**Required**\n\n*xfac* : Int32 - Horizontal subsample factor\n\n*yfac* : Int32 - Vertical subsample factor\n\n_Optionals_\n\n*point* : Bool - Point sample\n\n\n**Returns**\n\nOutput image\n","summary":"

    Subsample an image

    ","abstract":false,"args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"args_string":"(xfac : Int32, yfac : Int32, **kwargs)","args_html":"(xfac : Int32, yfac : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":8844,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8844"},"def":{"name":"subsample","args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"subsample\", options, xfac, yfac)).as(Type)).as_image\n"}},{"html_id":"subtract(right:Image)-instance-method","name":"subtract","doc":"Subtract two images\n\n```\n# out_ = left.subtract(right)\n```\n\n\nInput Parameters\n\n**Required**\n\n*right* : Image - Right-hand image argument\n\n\n**Returns**\n\nOutput image\n","summary":"

    Subtract two images

    ","abstract":false,"args":[{"name":"right","external_name":"right","restriction":"Image"}],"args_string":"(right : Image)","args_html":"(right : Image)","location":{"filename":"src/vips/ext/image.cr","line_number":8868,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L8868"},"def":{"name":"subtract","args":[{"name":"right","external_name":"right","restriction":"Image"}],"visibility":"Public","body":"((self.call(\"subtract\", right)).as(Type)).as_image"}},{"html_id":"tan:Image-instance-method","name":"tan","doc":"Return the tangent of an image in degrees.","summary":"

    Return the tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":883,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L883"},"def":{"name":"tan","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Tan)"}},{"html_id":"tanh:Image-instance-method","name":"tanh","doc":"Return the hyperbolic tangent of an image in degrees.","summary":"

    Return the hyperbolic tangent of an image in degrees.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":913,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L913"},"def":{"name":"tanh","return_type":"Image","visibility":"Public","body":"self.math(Enums::OperationMath::Tanh)"}},{"html_id":"thumbnail_image(width:Int32,**kwargs)-instance-method","name":"thumbnail_image","doc":"Generate thumbnail from image\n\n```\n# out_ = in.thumbnail_image(width, {height: Int32, size: Enums::Size, no_rotate: Bool, crop: Enums::Interesting, linear: Bool, import_profile: String, export_profile: String, intent: Enums::Intent, fail_on: Enums::FailOn})\n```\n\n\nInput Parameters\n\n**Required**\n\n*width* : Int32 - Size to this width\n\n_Optionals_\n\n*height* : Int32 - Size to this height\n\n*size* : Enums::Size - Only upsize, only downsize, or both\n\n*no_rotate* : Bool - Don't use orientation tags to rotate image upright\n\n*crop* : Enums::Interesting - Reduce to fill target rectangle, then crop\n\n*linear* : Bool - Reduce in linear light\n\n*import_profile* : String - Fallback import profile\n\n*export_profile* : String - Fallback export profile\n\n*intent* : Enums::Intent - Rendering intent\n\n*fail_on* : Enums::FailOn - Error level to fail on\n\n\n**Returns**\n\nOutput image\n","summary":"

    Generate thumbnail from image

    ","abstract":false,"args":[{"name":"width","external_name":"width","restriction":"Int32"}],"args_string":"(width : Int32, **kwargs)","args_html":"(width : Int32, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9270,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9270"},"def":{"name":"thumbnail_image","args":[{"name":"width","external_name":"width","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"thumbnail_image\", options, width)).as(Type)).as_image\n"}},{"html_id":"tiffsave(filename:String,**kwargs)-instance-method","name":"tiffsave","doc":"Save image to tiff file\n\n```\nin.tiffsave(filename, {compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to tiff file

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9623,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9623"},"def":{"name":"tiffsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"tiffsave\", options, filename)\n"}},{"html_id":"tiffsave_buffer(**kwargs)-instance-method","name":"tiffsave_buffer","doc":"Save image to tiff buffer\n\n```\n# buffer = in.tiffsave_buffer({compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save image to tiff buffer

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9692,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9692"},"def":{"name":"tiffsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"tiffsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"tiffsave_stream(stream:IO,**kwargs)-instance-method","name":"tiffsave_stream","doc":"Save image to tiff stream\n\n```\nin.tiffsave_stream(stream, {compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to tiff stream

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9828,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9828"},"def":{"name":"tiffsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\ntiffsave_target(target, **kwargs)\n"}},{"html_id":"tiffsave_target(target:Target,**kwargs)-instance-method","name":"tiffsave_target","doc":"Save image to tiff target\n\n```\nin.tiffsave_target(target, {compression: Enums::ForeignTiffCompression, q: Int32, predictor: Enums::ForeignTiffPredictor, profile: String, tile: Bool, tile_width: Int32, tile_height: Int32, pyramid: Bool, miniswhite: Bool, bitdepth: Int32, resunit: Enums::ForeignTiffResunit, xres: Float64, yres: Float64, bigtiff: Bool, properties: Bool, region_shrink: Enums::RegionShrink, level: Int32, lossless: Bool, depth: Enums::ForeignDzDepth, subifd: Bool, premultiply: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*compression* : Enums::ForeignTiffCompression - Compression for this file\n\n*q* : Int32 - Q factor\n\n*predictor* : Enums::ForeignTiffPredictor - Compression prediction\n\n*profile* : String - ICC profile to embed\n\n*tile* : Bool - Write a tiled tiff\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*pyramid* : Bool - Write a pyramidal tiff\n\n*miniswhite* : Bool - Use 0 for white in 1-bit images\n\n*bitdepth* : Int32 - Write as a 1, 2, 4 or 8 bit image\n\n*resunit* : Enums::ForeignTiffResunit - Resolution unit\n\n*xres* : Float64 - Horizontal resolution in pixels/mm\n\n*yres* : Float64 - Vertical resolution in pixels/mm\n\n*bigtiff* : Bool - Write a bigtiff image\n\n*properties* : Bool - Write a properties document to IMAGEDESCRIPTION\n\n*region_shrink* : Enums::RegionShrink - Method to shrink regions\n\n*level* : Int32 - ZSTD compression level\n\n*lossless* : Bool - Enable WEBP lossless mode\n\n*depth* : Enums::ForeignDzDepth - Pyramid depth\n\n*subifd* : Bool - Save pyr layers as sub-IFDs\n\n*premultiply* : Bool - Save with premultiplied alpha\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to tiff target

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":9762,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9762"},"def":{"name":"tiffsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"tiffsave_target\", options, target)\n"}},{"html_id":"tilecache(**kwargs)-instance-method","name":"tilecache","doc":"Cache an image as a set of tiles\n\n```\n# out_ = in.tilecache({tile_width: Int32, tile_height: Int32, max_tiles: Int32, access: Enums::Access, threaded: Bool, persistent: Bool})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*tile_width* : Int32 - Tile width in pixels\n\n*tile_height* : Int32 - Tile height in pixels\n\n*max_tiles* : Int32 - Maximum number of tiles to cache\n\n*access* : Enums::Access - Expected access pattern\n\n*threaded* : Bool - Allow threaded access\n\n*persistent* : Bool - Keep cache between evaluations\n\n\n**Returns**\n\nOutput image\n","summary":"

    Cache an image as a set of tiles

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9861,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9861"},"def":{"name":"tilecache","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"tilecache\", options)).as(Type)).as_image\n"}},{"html_id":"to_s(io:IO)-instance-method","name":"to_s","doc":"Appends a short String representation of this object\nwhich includes its class name and its object address.\n\n```\nclass Person\n def initialize(@name : String, @age : Int32)\n end\nend\n\nPerson.new(\"John\", 32).to_s # => #\n```","summary":"

    Appends a short String representation of this object which includes its class name and its object address.

    ","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/image.cr","line_number":1293,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L1293"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"io << \"\""}},{"html_id":"transpose3d(**kwargs)-instance-method","name":"transpose3d","doc":"Transpose3d an image\n\n```\n# out_ = in.transpose3d({page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*page_height* : Int32 - Height of each input page\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transpose3d an image

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9927,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9927"},"def":{"name":"transpose3d","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"transpose3d\", options)).as(Type)).as_image\n"}},{"html_id":"unpremultiply(**kwargs)-instance-method","name":"unpremultiply","doc":"Unpremultiply image alpha\n\n```\n# out_ = in.unpremultiply({max_alpha: Float64, alpha_band: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*max_alpha* : Float64 - Maximum value of alpha channel\n\n*alpha_band* : Int32 - Unpremultiply with this alpha\n\n\n**Returns**\n\nOutput image\n","summary":"

    Unpremultiply image alpha

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":9953,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L9953"},"def":{"name":"unpremultiply","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"unpremultiply\", options)).as(Type)).as_image\n"}},{"html_id":"vipssave(filename:String,**kwargs)-instance-method","name":"vipssave","doc":"Save image to file in vips format\n\n```\nin.vipssave(filename, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to file in vips format

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10097,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10097"},"def":{"name":"vipssave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"vipssave\", options, filename)\n"}},{"html_id":"vipssave_stream(stream:IO,**kwargs)-instance-method","name":"vipssave_stream","doc":"Save image to stream in vips format\n\n```\nin.vipssave_stream(stream, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save image to stream in vips format

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10148,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10148"},"def":{"name":"vipssave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nvipssave_target(target, **kwargs)\n"}},{"html_id":"vipssave_target(target:Target,**kwargs)-instance-method","name":"vipssave_target","doc":"Save image to target in vips format\n\n```\nin.vipssave_target(target, {strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to target in vips format

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10124,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10124"},"def":{"name":"vipssave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"vipssave_target\", options, target)\n"}},{"html_id":"webpsave(filename:String,**kwargs)-instance-method","name":"webpsave","doc":"Save as webp\n\n```\nin.webpsave(filename, {q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*filename* : String - Filename to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as webp

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String, **kwargs)","args_html":"(filename : String, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10382,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10382"},"def":{"name":"webpsave","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"webpsave\", options, filename)\n"}},{"html_id":"webpsave_buffer(**kwargs)-instance-method","name":"webpsave_buffer","doc":"Save as webp\n\n```\n# buffer = in.webpsave_buffer({q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n\n\n**Returns**\n\nBuffer to save to\n","summary":"

    Save as webp

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10433,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10433"},"def":{"name":"webpsave_buffer","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"webpsave_buffer\", options)).as(Type)).as_bytes\n"}},{"html_id":"webpsave_mime(**kwargs)-instance-method","name":"webpsave_mime","doc":"Save image to webp mime\n\n```\nin.webpsave_mime({q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save image to webp mime

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10481,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10481"},"def":{"name":"webpsave_mime","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"webpsave_mime\", options)\n"}},{"html_id":"webpsave_stream(stream:IO,**kwargs)-instance-method","name":"webpsave_stream","doc":"Save as webp\n\n```\nin.webpsave_stream(stream, {q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n**Input Parameters**\n\n_Required_\n\n*stream* : IO - Stream to save to\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save","summary":"

    Save as webp

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"args_string":"(stream : IO, **kwargs)","args_html":"(stream : IO, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10580,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10580"},"def":{"name":"webpsave_stream","args":[{"name":"stream","external_name":"stream","restriction":"IO"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nwebpsave_target(target, **kwargs)\n"}},{"html_id":"webpsave_target(target:Target,**kwargs)-instance-method","name":"webpsave_target","doc":"Save as webp\n\n```\nin.webpsave_target(target, {q: Int32, lossless: Bool, preset: Enums::ForeignWebpPreset, smart_subsample: Bool, near_lossless: Bool, alpha_q: Int32, min_size: Bool, kmin: Int32, kmax: Int32, effort: Int32, profile: String, mixed: Bool, strip: Bool, background: Array(Float64), page_height: Int32})\n\n```\n\n\nInput Parameters\n\n**Required**\n\n*target* : Target - Target to save to\n\n_Optionals_\n\n*q* : Int32 - Q factor\n\n*lossless* : Bool - Enable lossless compression\n\n*preset* : Enums::ForeignWebpPreset - Preset for lossy compression\n\n*smart_subsample* : Bool - Enable high quality chroma subsampling\n\n*near_lossless* : Bool - Enable preprocessing in lossless mode (uses Q)\n\n*alpha_q* : Int32 - Change alpha plane fidelity for lossy compression\n\n*min_size* : Bool - Optimise for minimum size\n\n*kmin* : Int32 - Minimum number of frames between key frames\n\n*kmax* : Int32 - Maximum number of frames between key frames\n\n*effort* : Int32 - Level of CPU effort to reduce file size\n\n*profile* : String - ICC profile to embed\n\n*mixed* : Bool - Allow mixed encoding (might reduce file size)\n\n*strip* : Bool - Strip all metadata from image\n\n*background* : Array(Float64) - Background value\n\n*page_height* : Int32 - Set page height for multipage save\n","summary":"

    Save as webp

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"}],"args_string":"(target : Target, **kwargs)","args_html":"(target : Target, **kwargs)","location":{"filename":"src/vips/ext/image.cr","line_number":10532,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10532"},"def":{"name":"webpsave_target","args":[{"name":"target","external_name":"target","restriction":"Target"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"webpsave_target\", options, target)\n"}},{"html_id":"width:Int32-instance-method","name":"width","doc":"Image width in pixels","summary":"

    Image width in pixels

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10816,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10816"},"def":{"name":"width","return_type":"Int32","visibility":"Public","body":"(get(\"width\")).as_i32"}},{"html_id":"wrap(**kwargs)-instance-method","name":"wrap","doc":"Wrap image origin\n\n```\n# out_ = in.wrap({x: Int32, y: Int32})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*x* : Int32 - Left edge of input in output\n\n*y* : Int32 - Top edge of input in output\n\n\n**Returns**\n\nOutput image\n","summary":"

    Wrap image origin

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10637,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10637"},"def":{"name":"wrap","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"wrap\", options)).as(Type)).as_image\n"}},{"html_id":"write(other:Image)-instance-method","name":"write","doc":"Write an image to another image.\nThis function writes `self` to another image. Use something like\n`new_temp_file` to make an image that can be written to.","summary":"

    Write an image to another image.

    ","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"Image"}],"args_string":"(other : Image)","args_html":"(other : Image)","location":{"filename":"src/vips/image.cr","line_number":556,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L556"},"def":{"name":"write","args":[{"name":"other","external_name":"other","restriction":"Image"}],"visibility":"Public","body":"(LibVips.vips_image_write(self, other.to_unsafe)).tap do |ret|\n if ret == 0\n else\n raise(VipsException.new(\"unable to write to image\"))\n end\nend"}},{"html_id":"write_to_buffer(format:String,**kwargs)-instance-method","name":"write_to_buffer","doc":"Write this image to a memory buffer. This method can save images in any format supported by vips. Save options may be encoded in the\nfilename or given as a keyword argument. For example:\n\n```\nimage.write_to_file(\"fred.jpg[Q=95])\"\n```\n\nor equivalently:\n\n```\nimage.write_to_file(\"fred.jpg\", Q: 95)\n```\n\nThe full set of save options depend on the selected saver. Try\nsomething like:\n\n```\n$ vips jpegsave\n```\n\nto see all the available options for JPEG save.\n\nGet the `GType` of a metadata field. The result is 0 if no such field\nexists.","summary":"

    Write this image to a memory buffer.

    ","abstract":false,"args":[{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(format : String, **kwargs)","args_html":"(format : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":472,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L472"},"def":{"name":"write_to_buffer","args":[{"name":"format","external_name":"format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"buffer_options = String.new(LibVips.vips_filename_get_options(format))\nsaver = Pointer(UInt8).null\nif Vips.at_least_libvips?(8, 9)\n LibVips.vips_error_freeze\n saver = LibVips.vips_foreign_find_save_target(filename)\n LibVips.vips_error_thaw\nend\noptions = Optional.new(**kwargs)\noptions[\"string_options\"] = buffer_options\nif !saver.null?\n target = Target.new_to_memory\n call(String.new(saver), options, target)\n return target.blob\nend\nsaver = LibVips.vips_foreign_find_save_buffer(format)\nif saver.nil?\n raise(VipsException.new(\"unable to write to buffer\"))\nend\nreturn ((call(String.new(saver), options)).as(Type)).as_bytes\n"}},{"html_id":"write_to_bytes:Bytes-instance-method","name":"write_to_bytes","doc":"Write the image to a `Bytes`.\nA large area of memory is allocated, the image is rendered to that\nmemory array, and the array is returned as a buffer.\n\nFor example, if you have a 2x2 uchar image containing the bytes 1, 2,\n3, 4, read left-to-right, top-to-bottom, then:\n```\nbuf = image.write_to_memory # => return Bytes of size 4 containing values 1,2,3,4\n```\nReturns `Bytes`","summary":"

    Write the image to a Bytes.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":544,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L544"},"def":{"name":"write_to_bytes","return_type":"Bytes","visibility":"Public","body":"ptr, size = write_to_memory\nresult = Bytes.new(size)\nresult.to_unsafe.copy_from(ptr.as(::Pointer(UInt8)), size)\nVips.free(ptr)\nresult\n"}},{"html_id":"write_to_file(name:String,**kwargs)-instance-method","name":"write_to_file","doc":"Write this image to a file. This method can save images in any format supported by vips. Save options may be encoded in the\nfilename or given as a keyword argument. For example:\n\n```\nimage.write_to_file(\"fred.jpg[Q=95])\"\n```\n\nor equivalently:\n\n```\nimage.write_to_file(\"fred.jpg\", Q: 95)\n```\n\nThe full set of save options depend on the selected saver. Try\nsomething like:\n\n```\n$ vips jpegsave\n```\n\nto see all the available options for JPEG save.\n\nGet the `GType` of a metadata field. The result is 0 if no such field\nexists.","summary":"

    Write this image to a file.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String, **kwargs)","args_html":"(name : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":435,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L435"},"def":{"name":"write_to_file","args":[{"name":"name","external_name":"name","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"filename = String.new(LibVips.vips_filename_get_filename(name))\nfile_options = String.new(LibVips.vips_filename_get_options(name))\noperation_name = String.new((LibVips.vips_foreign_find_save(filename)) || Bytes.empty)\nif operation_name.blank?\n raise(VipsException.new(\"Unable to write to file #{filename}\"))\nend\noptions = Optional.new(**kwargs)\noptions[\"string_options\"] = file_options\ncall(operation_name, options, filename)\n"}},{"html_id":"write_to_memory:Tuple(Pointer(Void),LibC::SizeT)-instance-method","name":"write_to_memory","doc":"Write the image to memory as a simple, unformatted C-style array.\nNote: The caller is responsible for freeing this memory with `Vips.free`\nReturns {Void*, LibC::SizeT}","summary":"

    Write the image to memory as a simple, unformatted C-style array.

    ","abstract":false,"location":{"filename":"src/vips/image.cr","line_number":528,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L528"},"def":{"name":"write_to_memory","return_type":"::Tuple(::Pointer(Void), LibC::SizeT)","visibility":"Public","body":"ptr = LibVips.vips_image_write_to_memory(self, out size)\nif ptr.null?\n raise(VipsException.new(\"unable to write to memory\"))\nend\n{ptr, size}\n"}},{"html_id":"write_to_target(stream:IO,format:String,**kwargs)-instance-method","name":"write_to_target","doc":"Write an image to a stream.\nThis behaves exactly as `write_to_file`, but the image is\nwritten to a *stream* rather than a file.\nNote: At least libvips 8.9 is needed.","summary":"

    Write an image to a stream.

    ","abstract":false,"args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(stream : IO, format : String, **kwargs)","args_html":"(stream : IO, format : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":520,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L520"},"def":{"name":"write_to_target","args":[{"name":"stream","external_name":"stream","restriction":"IO"},{"name":"format","external_name":"format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"target = TargetStream.new_from_stream(stream)\nwrite_to_target(target, format, **kwargs)\n"}},{"html_id":"write_to_target(target:Target,format:String,**kwargs)-instance-method","name":"write_to_target","doc":"Write an image to a target.\nThis behaves exactly as `write_to_file`, but the image is\nwritten to a *target* rather than a file.\nNote: At least libvips 8.9 is needed.","summary":"

    Write an image to a target.

    ","abstract":false,"args":[{"name":"target","external_name":"target","restriction":"Target"},{"name":"format","external_name":"format","restriction":"String"}],"args_string":"(target : Target, format : String, **kwargs)","args_html":"(target : Target, format : String, **kwargs)","location":{"filename":"src/vips/image.cr","line_number":504,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L504"},"def":{"name":"write_to_target","args":[{"name":"target","external_name":"target","restriction":"Target"},{"name":"format","external_name":"format","restriction":"String"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"buffer_options = String.new(LibVips.vips_filename_get_options(format))\noperation_name = String.new((LibVips.vips_foreign_find_save_target(format)) || Bytes.empty)\nif operation_name.blank?\n raise(VipsException.new(\"Unable to write to target\"))\nend\noptions = Optional.new(**kwargs)\noptions[\"string_options\"] = buffer_options\ncall(operation_name, options, target)\n"}},{"html_id":"xoffset:Int32-instance-method","name":"xoffset","doc":"Horizontal offset of origin","summary":"

    Horizontal offset of origin

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10846,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10846"},"def":{"name":"xoffset","return_type":"Int32","visibility":"Public","body":"(get(\"xoffset\")).as_i32"}},{"html_id":"xres:Float64-instance-method","name":"xres","doc":"Horizontal resolution in pixels/mm","summary":"

    Horizontal resolution in pixels/mm

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10856,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10856"},"def":{"name":"xres","return_type":"Float64","visibility":"Public","body":"(get(\"xres\")).as_f64"}},{"html_id":"xyz2cmyk-instance-method","name":"xyz2cmyk","doc":"Transform xyz to cmyk\n\n```\n# out_ = in.xyz2cmyk()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to cmyk

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10688,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10688"},"def":{"name":"xyz2cmyk","visibility":"Public","body":"((self.call(\"xyz2cmyk\")).as(Type)).as_image"}},{"html_id":"xyz2lab(**kwargs)-instance-method","name":"xyz2lab","doc":"Transform xyz to lab\n\n```\n# out_ = in.xyz2lab({temp: Array(Float64)})\n```\n\n\nInput Parameters\n\n_Optionals_\n\n*temp* : Array(Float64) - Colour temperature\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to lab

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10710,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10710"},"def":{"name":"xyz2lab","double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"visibility":"Public","body":"options = Optional.new(**kwargs)\n((self.call(\"xyz2lab\", options)).as(Type)).as_image\n"}},{"html_id":"xyz2scrgb-instance-method","name":"xyz2scrgb","doc":"Transform xyz to scrgb\n\n```\n# out_ = in.xyz2scrgb()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to scrgb

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10727,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10727"},"def":{"name":"xyz2scrgb","visibility":"Public","body":"((self.call(\"xyz2scrgb\")).as(Type)).as_image"}},{"html_id":"xyz2yxy-instance-method","name":"xyz2yxy","doc":"Transform xyz to yxy\n\n```\n# out_ = in.xyz2yxy()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform xyz to yxy

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10742,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10742"},"def":{"name":"xyz2yxy","visibility":"Public","body":"((self.call(\"xyz2yxy\")).as(Type)).as_image"}},{"html_id":"yoffset:Int32-instance-method","name":"yoffset","doc":"Vertical offset of origin","summary":"

    Vertical offset of origin

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10851,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10851"},"def":{"name":"yoffset","return_type":"Int32","visibility":"Public","body":"(get(\"yoffset\")).as_i32"}},{"html_id":"yres:Float64-instance-method","name":"yres","doc":"Vertical resolution in pixels/mm","summary":"

    Vertical resolution in pixels/mm

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10861,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10861"},"def":{"name":"yres","return_type":"Float64","visibility":"Public","body":"(get(\"yres\")).as_f64"}},{"html_id":"yxy2xyz-instance-method","name":"yxy2xyz","doc":"Transform yxy to xyz\n\n```\n# out_ = in.yxy2xyz()\n```\n\n\n**Returns**\n\nOutput image\n","summary":"

    Transform yxy to xyz

    ","abstract":false,"location":{"filename":"src/vips/ext/image.cr","line_number":10757,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10757"},"def":{"name":"yxy2xyz","visibility":"Public","body":"((self.call(\"yxy2xyz\")).as(Type)).as_image"}},{"html_id":"zoom(xfac:Int32,yfac:Int32)-instance-method","name":"zoom","doc":"Zoom an image\n\n```\n# out_ = input.zoom(xfac, yfac)\n```\n\n\nInput Parameters\n\n**Required**\n\n*xfac* : Int32 - Horizontal zoom factor\n\n*yfac* : Int32 - Vertical zoom factor\n\n\n**Returns**\n\nOutput image\n","summary":"

    Zoom an image

    ","abstract":false,"args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"args_string":"(xfac : Int32, yfac : Int32)","args_html":"(xfac : Int32, yfac : Int32)","location":{"filename":"src/vips/ext/image.cr","line_number":10811,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/image.cr#L10811"},"def":{"name":"zoom","args":[{"name":"xfac","external_name":"xfac","restriction":"Int32"},{"name":"yfac","external_name":"yfac","restriction":"Int32"}],"visibility":"Public","body":"((self.call(\"zoom\", xfac, yfac)).as(Type)).as_image"}}],"types":[{"html_id":"vips/Vips/Image/EvalProc","path":"Vips/Image/EvalProc.html","kind":"alias","full_name":"Vips::Image::EvalProc","name":"EvalProc","abstract":false,"locations":[{"filename":"src/vips/image.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/image.cr#L5"}],"repository_name":"vips","program":false,"enum":false,"alias":true,"aliased":"Proc(Vips::Image, LibVips::VipsProgress, Nil)","aliased_html":"Vips::Image, LibVips::VipsProgress -> Nil","const":false,"namespace":{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},"doc":"Evaluation callback that can be used on the `Enums::Signal::PreEval`, `Enums::Signal::Eval`, and `Enums::Signal::PostEval` signals.\nSee `set_progress` to enable progress reporting on an image.","summary":"

    Evaluation callback that can be used on the Enums::Signal::PreEval, Enums::Signal::Eval, and Enums::Signal::PostEval signals.

    "}]},{"html_id":"vips/Vips/Interpolate","path":"Vips/Interpolate.html","kind":"class","full_name":"Vips::Interpolate","name":"Interpolate","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/interpolate.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/interpolate.cr#L3"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Make interpolators for operators like `Image#affine`","summary":"

    Make interpolators for operators like Image#affine

    ","class_methods":[{"html_id":"new_from_name(name:String)-class-method","name":"new_from_name","doc":"Make a new interpolator by name.\nMake a new interpolator from the libvips class nickname. For example:\n\n```\ninter = Vips::Interpolate.new_from_name(\"bicubic\")\n```\nYou can get a list of all supported interpolators from the command-line with\n\n```sh\nvips -l interpolate\n```\nSee for example `Image#affine`","summary":"

    Make a new interpolator by name.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/interpolate.cr","line_number":20,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/interpolate.cr#L20"},"def":{"name":"new_from_name","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"vi = LibVips.vips_interpolate_new(name)\nif vi.null?\n raise(VipsException.new(\"no such interpolator #{name}\"))\nend\nnew(vi)\n"}}]},{"html_id":"vips/Vips/Introspect","path":"Vips/Introspect.html","kind":"class","full_name":"Vips::Introspect","name":"Introspect","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/introspect.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L5"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Build introspection data for operations\nMake an operation, introspect it, and build a structure representing\neverything we know about it.","summary":"

    Build introspection data for operations Make an operation, introspect it, and build a structure representing everything we know about it.

    ","class_methods":[{"html_id":"get(operation_name:String)-class-method","name":"get","doc":"Get introspection data for a specified operation name.","summary":"

    Get introspection data for a specified operation name.

    ","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"args_string":"(operation_name : String)","args_html":"(operation_name : String)","location":{"filename":"src/vips/introspect.cr","line_number":113,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L113"},"def":{"name":"get","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"visibility":"Public","body":"__temp_49 = operation_name\n@@cache[__temp_49]? || (@@cache[__temp_49] = Introspect.new(operation_name))\n"}}],"instance_methods":[{"html_id":"get_args(op:Operation)-instance-method","name":"get_args","doc":"Get all arguments for an operation.","summary":"

    Get all arguments for an operation.

    ","abstract":false,"args":[{"name":"op","external_name":"op","restriction":"Operation"}],"args_string":"(op : Operation)","args_html":"(op : Operation)","location":{"filename":"src/vips/introspect.cr","line_number":73,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L73"},"def":{"name":"get_args","args":[{"name":"op","external_name":"op","restriction":"Operation"}],"visibility":"Public","body":"args = Array(Tuple(String, LibVips::VipsArgumentFlags)).new\nadd_arg = ->(name : String, flags : LibVips::VipsArgumentFlags) do\n name = name.gsub('-', '_')\n args << {name, flags}\n nil\nend\nif Vips.at_least_libvips?(8, 7)\n result = LibVips.vips_object_get_args(op.to_obj, out names, out flags_, out count)\n if result == 0\n else\n raise(VipsException.new(\"unable to get arguments for operation\"))\n end\n 0.upto(count - 1) do |i|\n flag = LibVips::VipsArgumentFlags.from_value(flags_[i])\n if (flag & LibVips::VipsArgumentFlags::Construct).value == 0\n next\n end\n name = String.new(names[i])\n add_arg.call(name, flag)\n end\nelse\n proc = LibVips::VipsArgumentMapFn.new do |_self, pspec, argcls, arginst, a, b|\n flag = argcls.value.flags\n if (flag & LibVips::VipsArgumentFlags::Construct).value == 0\n next Pointer(Void).null\n end\n name = String.new(pspec.value.name)\n handler = Box(Proc(String, LibVips::VipsArgumentFlags, Nil)).unbox(a)\n handler.call(name, flag)\n Pointer(Void).null\n end\n LibVips.vips_argument_map(op.to_obj, proc, Box.box(add_arg), Pointer(Void).null)\nend\nargs\n"}},{"html_id":"member_x:Argument|Nil-instance-method","name":"member_x","doc":"The first required input image or nil","summary":"

    The first required input image or nil

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L12"},"def":{"name":"member_x","return_type":"Argument | ::Nil","visibility":"Public","body":"if (value = @member_x).nil?\n ::raise(NilAssertionError.new(\"Vips::Introspect#member_x cannot be nil\"))\nelse\n value\nend"}},{"html_id":"member_x?:Argument|Nil|Nil-instance-method","name":"member_x?","doc":"The first required input image or nil","summary":"

    The first required input image or nil

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L12"},"def":{"name":"member_x?","return_type":"Argument | ::Nil | ::Nil","visibility":"Public","body":"@member_x"}},{"html_id":"mutable:Bool-instance-method","name":"mutable","doc":"A bool indicating if this operation is mutable","summary":"

    A bool indicating if this operation is mutable

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":15,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L15"},"def":{"name":"mutable","return_type":"Bool","visibility":"Public","body":"@mutable"}},{"html_id":"optional_input:Hash(String,Argument)-instance-method","name":"optional_input","doc":"The optional input for this operation","summary":"

    The optional input for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":21,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L21"},"def":{"name":"optional_input","return_type":"Hash(String, Argument)","visibility":"Public","body":"@optional_input"}},{"html_id":"optional_output:Hash(String,Argument)-instance-method","name":"optional_output","doc":"The optional output for this operation","summary":"

    The optional output for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L27"},"def":{"name":"optional_output","return_type":"Hash(String, Argument)","visibility":"Public","body":"@optional_output"}},{"html_id":"required_input:Array(Argument)-instance-method","name":"required_input","doc":"The required input for this operation","summary":"

    The required input for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L18"},"def":{"name":"required_input","return_type":"Array(Argument)","visibility":"Public","body":"@required_input"}},{"html_id":"required_output:Array(Argument)-instance-method","name":"required_output","doc":"The required output for this operation","summary":"

    The required output for this operation

    ","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":24,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L24"},"def":{"name":"required_output","return_type":"Array(Argument)","visibility":"Public","body":"@required_output"}}],"types":[{"html_id":"vips/Vips/Introspect/Argument","path":"Vips/Introspect/Argument.html","kind":"struct","full_name":"Vips::Introspect::Argument","name":"Argument","abstract":false,"superclass":{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L9"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips/Introspect","kind":"class","full_name":"Vips::Introspect","name":"Introspect"},"doc":"An object structure that encapsulate the metadata\nrequired to specify arguments","summary":"

    An object structure that encapsulate the metadata required to specify arguments

    ","constructors":[{"html_id":"new(name:String,flags:LibVips::VipsArgumentFlags,type:LibVips::GType)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"flags","external_name":"flags","restriction":"LibVips::VipsArgumentFlags"},{"name":"type","external_name":"type","restriction":"LibVips::GType"}],"args_string":"(name : String, flags : LibVips::VipsArgumentFlags, type : LibVips::GType)","args_html":"(name : String, flags : LibVips::VipsArgumentFlags, type : LibVips::GType)","location":{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L9"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"flags","external_name":"flags","restriction":"LibVips::VipsArgumentFlags"},{"name":"type","external_name":"type","restriction":"LibVips::GType"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, flags, type)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"clone-instance-method","name":"clone","abstract":false,"location":{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L9"},"def":{"name":"clone","visibility":"Public","body":"self.class.new(@name.clone, @flags.clone, @type.clone)"}},{"html_id":"copy_with(name_name=@name,flags_flags=@flags,type_type=@type)-instance-method","name":"copy_with","abstract":false,"args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""},{"name":"_flags","default_value":"@flags","external_name":"flags","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""}],"args_string":"(name _name = @name, flags _flags = @flags, type _type = @type)","args_html":"(name _name = @name, flags _flags = @flags, type _type = @type)","location":{"filename":"src/vips/introspect.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/introspect.cr#L9"},"def":{"name":"copy_with","args":[{"name":"_name","default_value":"@name","external_name":"name","restriction":""},{"name":"_flags","default_value":"@flags","external_name":"flags","restriction":""},{"name":"_type","default_value":"@type","external_name":"type","restriction":""}],"visibility":"Public","body":"self.class.new(_name, _flags, _type)"}},{"html_id":"flags:LibVips::VipsArgumentFlags-instance-method","name":"flags","abstract":false,"def":{"name":"flags","return_type":"LibVips::VipsArgumentFlags","visibility":"Public","body":"@flags"}},{"html_id":"name:String-instance-method","name":"name","abstract":false,"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"type:LibVips::GType-instance-method","name":"type","abstract":false,"def":{"name":"type","return_type":"LibVips::GType","visibility":"Public","body":"@type"}}]}]},{"html_id":"vips/Vips/MutableImage","path":"Vips/MutableImage.html","kind":"class","full_name":"Vips::MutableImage","name":"MutableImage","abstract":false,"superclass":{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},"ancestors":[{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/ext/mutableimage.cr","line_number":13,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L13"},{"filename":"src/vips/mutableimage.cr","line_number":4,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L4"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"[]=(index,value)-instance-method","name":"[]=","doc":"Use `[]` to set band elements on an image. For example\n\n```\nimg = image.mutate { |x| x[1] = green }\n```\nwill change band 1 ( the middle band)","summary":"

    Use [] to set band elements on an image.

    ","abstract":false,"args":[{"name":"index","external_name":"index","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(index, value)","args_html":"(index, value)","location":{"filename":"src/vips/mutableimage.cr","line_number":44,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L44"},"def":{"name":"[]=","args":[{"name":"index","external_name":"index","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"nleft = Math.min(bands, Math.max(0, index))\nnright = Math.min(bands, Math.max(0, (bands - 1) - i))\noffset = bands - nright\nleft = nleft > 0 ? image.extract_band(0, n: nleft) : nil\nright = nright > 0 ? image.extract_band(offset, n: nright) : nil\nif left.nil?\n @image = value.bandjoin(right.not_nil!)\nelse\n if right.nil?\n @image = left.not_nil!.bandjoin(value)\n else\n image = left.not_nil!.bandjoin(value, right.not_nil!)\n end\nend\n"}},{"html_id":"draw_circle(ink:Array(Float64),cx:Int32,cy:Int32,radius:Int32,**kwargs):Nil-instance-method","name":"draw_circle","doc":"Draw a circle on an image\n\n```\n# image.mutate { |x| x.draw_circle(ink, cx, cy, radius, {fill: Bool} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*cx* : Int32 - Centre of draw_circle\n\n*cy* : Int32 - Centre of draw_circle\n\n*radius* : Int32 - Radius in pixels\n\n_Optionals_\n\n*fill* : Bool - Draw a solid object\n","summary":"

    Draw a circle on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"cx","external_name":"cx","restriction":"Int32"},{"name":"cy","external_name":"cy","restriction":"Int32"},{"name":"radius","external_name":"radius","restriction":"Int32"}],"args_string":"(ink : Array(Float64), cx : Int32, cy : Int32, radius : Int32, **kwargs) : Nil","args_html":"(ink : Array(Float64), cx : Int32, cy : Int32, radius : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":37,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L37"},"def":{"name":"draw_circle","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"cx","external_name":"cx","restriction":"Int32"},{"name":"cy","external_name":"cy","restriction":"Int32"},{"name":"radius","external_name":"radius","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_circle\", options, ink, cx, cy, radius)\n"}},{"html_id":"draw_flood(ink:Array(Float64),x:Int32,y:Int32,**kwargs):Nil-instance-method","name":"draw_flood","doc":"Flood-fill an area\n\n```\n# image.mutate { |x| x.draw_flood(ink, x, y, {test: Image, equal: Bool} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*x* : Int32 - DrawFlood start point\n\n*y* : Int32 - DrawFlood start point\n\n_Optionals_\n\n*test* : Image - Test pixels in this image\n\n*equal* : Bool - DrawFlood while equal to edge\n","summary":"

    Flood-fill an area

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(ink : Array(Float64), x : Int32, y : Int32, **kwargs) : Nil","args_html":"(ink : Array(Float64), x : Int32, y : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L65"},"def":{"name":"draw_flood","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_flood\", options, ink, x, y)\n"}},{"html_id":"draw_image(sub:Image,x:Int32,y:Int32,**kwargs):Nil-instance-method","name":"draw_image","doc":"Paint an image into another image\n\n```\n# image.mutate { |x| x.draw_image(sub, x, y, {mode: Enums::CombineMode} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*sub* : Image - Sub-image to insert into main image\n\n*x* : Int32 - Draw image here\n\n*y* : Int32 - Draw image here\n\n_Optionals_\n\n*mode* : Enums::CombineMode - Combining mode\n","summary":"

    Paint an image into another image

    ","abstract":false,"args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(sub : Image, x : Int32, y : Int32, **kwargs) : Nil","args_html":"(sub : Image, x : Int32, y : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":91,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L91"},"def":{"name":"draw_image","args":[{"name":"sub","external_name":"sub","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_image\", options, sub, x, y)\n"}},{"html_id":"draw_line(ink:Array(Float64),x1:Int32,y1:Int32,x2:Int32,y2:Int32):Nil-instance-method","name":"draw_line","doc":"Draw a line on an image\n\n```\n# image.mutate { |x| x.draw_line(ink, x1, y1, x2, y2 }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*x1* : Int32 - Start of draw_line\n\n*y1* : Int32 - Start of draw_line\n\n*x2* : Int32 - End of draw_line\n\n*y2* : Int32 - End of draw_line\n","summary":"

    Draw a line on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x1","external_name":"x1","restriction":"Int32"},{"name":"y1","external_name":"y1","restriction":"Int32"},{"name":"x2","external_name":"x2","restriction":"Int32"},{"name":"y2","external_name":"y2","restriction":"Int32"}],"args_string":"(ink : Array(Float64), x1 : Int32, y1 : Int32, x2 : Int32, y2 : Int32) : Nil","args_html":"(ink : Array(Float64), x1 : Int32, y1 : Int32, x2 : Int32, y2 : Int32) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":117,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L117"},"def":{"name":"draw_line","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"x1","external_name":"x1","restriction":"Int32"},{"name":"y1","external_name":"y1","restriction":"Int32"},{"name":"x2","external_name":"x2","restriction":"Int32"},{"name":"y2","external_name":"y2","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"self.call(\"draw_line\", ink, x1, y1, x2, y2)"}},{"html_id":"draw_mask(ink:Array(Float64),mask:Image,x:Int32,y:Int32):Nil-instance-method","name":"draw_mask","doc":"Draw a mask on an image\n\n```\n# image.mutate { |x| x.draw_mask(ink, mask, x, y }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*mask* : Image - Mask of pixels to draw\n\n*x* : Int32 - Draw mask here\n\n*y* : Int32 - Draw mask here\n","summary":"

    Draw a mask on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"args_string":"(ink : Array(Float64), mask : Image, x : Int32, y : Int32) : Nil","args_html":"(ink : Array(Float64), mask : Image, x : Int32, y : Int32) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":140,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L140"},"def":{"name":"draw_mask","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"mask","external_name":"mask","restriction":"Image"},{"name":"x","external_name":"x","restriction":"Int32"},{"name":"y","external_name":"y","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"self.call(\"draw_mask\", ink, mask, x, y)"}},{"html_id":"draw_rect(ink:Array(Float64),left:Int32,top:Int32,width:Int32,height:Int32,**kwargs):Nil-instance-method","name":"draw_rect","doc":"Paint a rectangle on an image\n\n```\n# image.mutate { |x| x.draw_rect(ink, left, top, width, height, {fill: Bool} }\n```\n\n\nInput Parameters\n\n**Required**\n\n*ink* : Array(Float64) - Color for pixels\n\n*left* : Int32 - Rect to fill\n\n*top* : Int32 - Rect to fill\n\n*width* : Int32 - Rect to fill\n\n*height* : Int32 - Rect to fill\n\n_Optionals_\n\n*fill* : Bool - Draw a solid object\n","summary":"

    Paint a rectangle on an image

    ","abstract":false,"args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(ink : Array(Float64), left : Int32, top : Int32, width : Int32, height : Int32, **kwargs) : Nil","args_html":"(ink : Array(Float64), left : Int32, top : Int32, width : Int32, height : Int32, **kwargs) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":169,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L169"},"def":{"name":"draw_rect","args":[{"name":"ink","external_name":"ink","restriction":"Array(Float64)"},{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"double_splat":{"name":"kwargs","external_name":"kwargs","restriction":""},"return_type":"Nil","visibility":"Public","body":"options = Optional.new(**kwargs)\nself.call(\"draw_rect\", options, ink, left, top, width, height)\n"}},{"html_id":"draw_smudge(left:Int32,top:Int32,width:Int32,height:Int32):Nil-instance-method","name":"draw_smudge","doc":"Blur a rectangle on an image\n\n```\n# image.mutate { |x| x.draw_smudge(left, top, width, height }\n```\n\n\nInput Parameters\n\n**Required**\n\n*left* : Int32 - Rect to fill\n\n*top* : Int32 - Rect to fill\n\n*width* : Int32 - Rect to fill\n\n*height* : Int32 - Rect to fill\n","summary":"

    Blur a rectangle on an image

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32) : Nil","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32) : Nil","location":{"filename":"src/vips/ext/mutableimage.cr","line_number":193,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/ext/mutableimage.cr#L193"},"def":{"name":"draw_smudge","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"return_type":"Nil","visibility":"Public","body":"self.call(\"draw_smudge\", left, top, width, height)"}},{"html_id":"mutate(&)-instance-method","name":"mutate","doc":"Mutate an image with a block. Inside the block, you can call methods\nwhich modify the image, such as setting or removing metadata, or\nmodifying pixels.\n\nFor example:\n\n```\nimage = image.mutate do |x|\n (0..1).step 0.01 do |i|\n x.draw_line([255.0], (x.width * i).to_i, 0, 0, (x.height * (1 - i)).to_i)\n end\nend\n```\n\nSee `MutableImage`.","summary":"

    Mutate an image with a block.

    ","abstract":false,"location":{"filename":"src/vips/mutableimage.cr","line_number":59,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L59"},"def":{"name":"mutate","yields":1,"block_arity":1,"visibility":"Public","body":"yield self\nimage\n"}},{"html_id":"remove(name:String)-instance-method","name":"remove","doc":"Remove a metadata item from an image.\nnamed metadata item is removed","summary":"

    Remove a metadata item from an image.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/mutableimage.cr","line_number":34,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L34"},"def":{"name":"remove","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"LibVips.vips_image_remove(self, name)"}},{"html_id":"set(gtype:LibVips::GType,name:String,value)-instance-method","name":"set","doc":"Sets the type and value of an item of metadata. Any old item of the\nsame name is removed. See `GValue` for types","summary":"

    Sets the type and value of an item of metadata.

    ","abstract":false,"args":[{"name":"gtype","external_name":"gtype","restriction":"LibVips::GType"},{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"args_string":"(gtype : LibVips::GType, name : String, value)","args_html":"(gtype : LibVips::GType, name : String, value)","location":{"filename":"src/vips/mutableimage.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L18"},"def":{"name":"set","args":[{"name":"gtype","external_name":"gtype","restriction":"LibVips::GType"},{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gv = GValue.new\ngv.set_type(gtype)\ngv.set(value)\nLibVips.vips_image_set(self, name, gv)\n"}},{"html_id":"set(name:String,value)-instance-method","name":"set","doc":"Sets the value of an item of metadata. The metadata item must already exists","summary":"

    Sets the value of an item of metadata.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"args_string":"(name : String, value)","args_html":"(name : String, value)","location":{"filename":"src/vips/mutableimage.cr","line_number":26,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L26"},"def":{"name":"set","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gtype = get_typeof(name)\nif gtype == 0\n raise(VipsException.new(\"metadata item #{name} does not exist - use the set(gtype,name,value) overload to create and set\"))\nend\nset(gtype, name, value)\n"}},{"html_id":"to_s(io:IO)-instance-method","name":"to_s","doc":"Appends a short String representation of this object\nwhich includes its class name and its object address.\n\n```\nclass Person\n def initialize(@name : String, @age : Int32)\n end\nend\n\nPerson.new(\"John\", 32).to_s # => #\n```","summary":"

    Appends a short String representation of this object which includes its class name and its object address.

    ","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/mutableimage.cr","line_number":64,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/mutableimage.cr#L64"},"def":{"name":"to_s","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"io << \"\""}}]},{"html_id":"vips/Vips/Operation","path":"Vips/Operation.html","kind":"class","full_name":"Vips::Operation","name":"Operation","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/operation.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"class_methods":[{"html_id":"build(operation:Operation)-class-method","name":"build","abstract":false,"args":[{"name":"operation","external_name":"operation","restriction":"Operation"}],"args_string":"(operation : Operation)","args_html":"(operation : Operation)","location":{"filename":"src/vips/operation.cr","line_number":17,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L17"},"def":{"name":"build","args":[{"name":"operation","external_name":"operation","restriction":"Operation"}],"visibility":"Public","body":"op = LibVips.vips_cache_operation_build(operation)\nif op.null?\n LibVips.vips_object_unref_outputs(operation.to_obj)\n raise(VipsException.new(\"unable to call operation\"))\nend\nnew(op)\n"}},{"html_id":"call(operation_name:String,kwargs:Optional|Nil,match_image:Image|Nil,*args)-class-method","name":"call","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional | ::Nil"},{"name":"match_image","external_name":"match_image","restriction":"Image | ::Nil"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(operation_name : String, kwargs : Optional | Nil, match_image : Image | Nil, *args)","args_html":"(operation_name : String, kwargs : Optional | Nil, match_image : Image | Nil, *args)","location":{"filename":"src/vips/operation.cr","line_number":53,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L53"},"def":{"name":"call","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional | ::Nil"},{"name":"match_image","external_name":"match_image","restriction":"Image | ::Nil"},{"name":"args","external_name":"args","restriction":""}],"splat_index":3,"visibility":"Public","body":"str_options = kwargs.try do |__arg0|\n (__arg0.delete(\"string_options\")).try(&.as_s)\nend\nintro = Introspect.get(operation_name)\nif intro.required_input.size != args.size\n raise(VipsException.new(\"unable to call #{operation_name}: #{args.size} arguments given, but #{intro.required_input.size} required\"))\nend\nif (!intro.mutable) && match_image.is_a?(MutableImage)\n raise(VipsException.new(\"unable to call #{operation_name}: operation must be mutable\"))\nend\nop = new(operation_name)\nif (stropt = str_options) && (!(op.set(stropt)))\n raise(VipsException.new(\"unable to call #{operation_name}\"))\nend\nif (mi = match_image) && (mx = intro.member_x?)\n op.set(mx.type, mx.name, mi)\nend\nintro.required_input.each_with_index do |arg, i|\n op.set(arg.type, match_image, arg.name, args[i])\nend\nif (kw = kwargs)\n kw.each do |key, val|\n if ( arg = intro.optional_input[key]?)\n op.set(arg.type, match_image, key, val)\n else\n if !(intro.optional_output.has_key?(key))\n raise(VipsException.new(\"#{operation_name} does not support optional argument: #{key}\"))\n end\n end\n end\nend\nvop = build(op)\nresults = Array(Type).new(intro.required_output.size)\nintro.required_output.each do |oarg|\n results << (vop.get(oarg.name))\nend\nif (kw = kwargs)\n optarg = Optional.new\n kw.each do |k, _|\n if intro.optional_output.has_key?(k)\n optarg[k] = vop.get(k)\n end\n end\n if optarg.empty?\n else\n results << (Type.new(optarg))\n end\n LibVips.vips_object_unref_outputs(op.to_obj)\nend\nresults.size == 1 ? results.first : results\n"}},{"html_id":"call(operation_name:String,kwargs:Optional,*args)-class-method","name":"call","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(operation_name : String, kwargs : Optional, *args)","args_html":"(operation_name : String, kwargs : Optional, *args)","location":{"filename":"src/vips/operation.cr","line_number":117,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L117"},"def":{"name":"call","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"kwargs","external_name":"kwargs","restriction":"Optional"},{"name":"args","external_name":"args","restriction":""}],"splat_index":2,"visibility":"Public","body":"call(operation_name, kwargs, nil, *args)"}},{"html_id":"call(operation_name:String,*args)-class-method","name":"call","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"args_string":"(operation_name : String, *args)","args_html":"(operation_name : String, *args)","location":{"filename":"src/vips/operation.cr","line_number":121,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L121"},"def":{"name":"call","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"},{"name":"args","external_name":"args","restriction":""}],"splat_index":1,"visibility":"Public","body":"call(operation_name, nil, nil, *args)"}}],"constructors":[{"html_id":"new(operation_name:String)-class-method","name":"new","doc":"Creates a new `VisOperation` with the specified nickname\nYou'll need to set any arguments and build the operation before you can use it.","summary":"

    Creates a new VisOperation with the specified nickname You'll need to set any arguments and build the operation before you can use it.

    ","abstract":false,"args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"args_string":"(operation_name : String)","args_html":"(operation_name : String)","location":{"filename":"src/vips/operation.cr","line_number":11,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L11"},"def":{"name":"new","args":[{"name":"operation_name","external_name":"operation_name","restriction":"String"}],"visibility":"Public","body":"op = LibVips.vips_operation_new(operation_name)\nif op.null?\n raise(VipsException.new(\"no such operation #{operation_name}\"))\nend\nnew(op)\n"}},{"html_id":"new(ophandle:Pointer(LibVips::VipsOperation))-class-method","name":"new","abstract":false,"args":[{"name":"ophandle","external_name":"ophandle","restriction":"::Pointer(::LibVips::VipsOperation)"}],"args_string":"(ophandle : Pointer(LibVips::VipsOperation))","args_html":"(ophandle : Pointer(LibVips::VipsOperation))","location":{"filename":"src/vips/operation.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L5"},"def":{"name":"new","args":[{"name":"ophandle","external_name":"ophandle","restriction":"::Pointer(::LibVips::VipsOperation)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(ophandle)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"flags-instance-method","name":"flags","doc":"Lookup the set of flags for this operation","summary":"

    Lookup the set of flags for this operation

    ","abstract":false,"location":{"filename":"src/vips/operation.cr","line_number":49,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L49"},"def":{"name":"flags","visibility":"Public","body":"LibVips.vips_operation_get_flags(self)"}},{"html_id":"to_obj:Pointer(LibVips::VipsObject)-instance-method","name":"to_obj","abstract":false,"location":{"filename":"src/vips/operation.cr","line_number":130,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/operation.cr#L130"},"def":{"name":"to_obj","visibility":"Public","body":"@ohandle"}}]},{"html_id":"vips/Vips/Region","path":"Vips/Region.html","kind":"class","full_name":"Vips::Region","name":"Region","abstract":false,"superclass":{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},"ancestors":[{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/region.cr","line_number":6,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/region.cr#L6"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Wrap libvips VipsRegion object.\nA region is a small part of an image. You use regions to read pixels\nout of images without storing the entire image in memory.\nNote: At least libvips 8.8 is needed.","summary":"

    Wrap libvips VipsRegion object.

    ","constructors":[{"html_id":"new(image:Image)-class-method","name":"new","doc":"Make a region on an image","summary":"

    Make a region on an image

    ","abstract":false,"args":[{"name":"image","external_name":"image","restriction":"Image"}],"args_string":"(image : Image)","args_html":"(image : Image)","location":{"filename":"src/vips/region.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/region.cr#L12"},"def":{"name":"new","args":[{"name":"image","external_name":"image","restriction":"Image"}],"visibility":"Public","body":"vi = (LibVips.vips_region_new(image)).tap do |ret|\n if ret.null?\n raise(VipsException.new(\"unable to make region\"))\n end\nend\nnew(vi)\n"}}],"instance_methods":[{"html_id":"fetch(left:Int32,top:Int32,width:Int32,height:Int32):Bytes-instance-method","name":"fetch","doc":"Fetch an area of pixels.\n*left* Left edge of area to fetch.\n*top* Top edge of area to fetch.\n*width* Width of area to fetch.\n*height* Height of area to fetch.\nReturns `Bytes` filled with pixel data.","summary":"

    Fetch an area of pixels.

    ","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"args_string":"(left : Int32, top : Int32, width : Int32, height : Int32) : Bytes","args_html":"(left : Int32, top : Int32, width : Int32, height : Int32) : Bytes","location":{"filename":"src/vips/region.cr","line_number":35,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/region.cr#L35"},"def":{"name":"fetch","args":[{"name":"left","external_name":"left","restriction":"Int32"},{"name":"top","external_name":"top","restriction":"Int32"},{"name":"width","external_name":"width","restriction":"Int32"},{"name":"height","external_name":"height","restriction":"Int32"}],"return_type":"Bytes","visibility":"Public","body":"ptr = (LibVips.vips_region_fetch(self, left, top, width, height, out size)).tap do |ret|\n if ret.null?\n raise(\"unable to fetch from region\")\n end\nend\nresult = Bytes.new(size)\nptr.copy_to(result.to_unsafe, size)\nVips.free(ptr.as(::Pointer(Void)))\nresult\n"}},{"html_id":"height:Int32-instance-method","name":"height","doc":"height of pixels held by region","summary":"

    height of pixels held by region

    ","abstract":false,"location":{"filename":"src/vips/region.cr","line_number":25,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/region.cr#L25"},"def":{"name":"height","return_type":"Int32","visibility":"Public","body":"LibVips.vips_region_height(self)"}},{"html_id":"width:Int32-instance-method","name":"width","doc":"width of pixels held by region","summary":"

    width of pixels held by region

    ","abstract":false,"location":{"filename":"src/vips/region.cr","line_number":20,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/region.cr#L20"},"def":{"name":"width","return_type":"Int32","visibility":"Public","body":"LibVips.vips_region_width(self)"}}]},{"html_id":"vips/Vips/Source","path":"Vips/Source.html","kind":"class","full_name":"Vips::Source","name":"Source","abstract":false,"superclass":{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},"ancestors":[{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/source.cr","line_number":7,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L7"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/SourceCustom","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Input connection. For example\n```\nsource = Vips::Source.new_from_file(\"k2.jpg\")\nimage = Vips::Image.new_from_source(source)\n```","summary":"

    Input connection.

    ","class_methods":[{"html_id":"new_from_descriptor(descriptor:Int)-class-method","name":"new_from_descriptor","doc":"Create a new source from a file descriptor. File descriptors are\nsmall integers, for example 0 is stdin.\n\nPass sources to `Image.new_from_source` to load images from\nthem.","summary":"

    Create a new source from a file descriptor.

    ","abstract":false,"args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int"}],"args_string":"(descriptor : Int)","args_html":"(descriptor : Int)","location":{"filename":"src/vips/source.cr","line_number":17,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L17"},"def":{"name":"new_from_descriptor","args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int"}],"visibility":"Public","body":"ptr = LibVips.vips_source_new_from_descriptor(descriptor)\nif ptr.null?\n raise(VipsException.new(\"can't create source from descriptor #{descriptor}\"))\nend\nnew(ptr)\n"}},{"html_id":"new_from_file(filename:String)-class-method","name":"new_from_file","doc":"Create a new source from a file name.\n\nPass sources to `Image.new_from_source` to load images from\nthem.","summary":"

    Create a new source from a file name.

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String)","args_html":"(filename : String)","location":{"filename":"src/vips/source.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L27"},"def":{"name":"new_from_file","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"visibility":"Public","body":"ptr = LibVips.vips_source_new_from_file(filename)\nif ptr.null?\n raise(VipsException.new(\"can't create source from filename #{filename}\"))\nend\nnew(ptr)\n"}},{"html_id":"new_from_memory(data:String|Bytes|IO)-class-method","name":"new_from_memory","doc":"Create a new source from an area of memory. Memory areas can be\nString, Bytes, or IO\n\nPass sources to `Image.new_from_source` to load images from\nthem.","summary":"

    Create a new source from an area of memory.

    ","abstract":false,"args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"}],"args_string":"(data : String | Bytes | IO)","args_html":"(data : String | Bytes | IO)","location":{"filename":"src/vips/source.cr","line_number":39,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L39"},"def":{"name":"new_from_memory","args":[{"name":"data","external_name":"data","restriction":"String | Bytes | IO"}],"visibility":"Public","body":"buff = case data\nwhen String\n data.to_slice\nwhen IO\n data.gets_to_end.to_slice\nelse\n data\nend\nptr = LibVips.vips_source_new_from_memory(Box.box(buff), buff.bytesize)\nif ptr.null?\n raise(VipsException.new(\"can't create source from memory #{data}\"))\nend\n@@references << buff\nnew(ptr)\n"}}],"instance_methods":[{"html_id":"finalize-instance-method","name":"finalize","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":52,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L52"},"def":{"name":"finalize","visibility":"Public","body":"@@references.clear"}}]},{"html_id":"vips/Vips/SourceCustom","path":"Vips/SourceCustom.html","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom","abstract":false,"superclass":{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},"ancestors":[{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/source.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L79"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/SourceStream","kind":"class","full_name":"Vips::SourceStream","name":"SourceStream"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"A source you can attach action signal handlers to to implement\ncustom input types.\n\nFor example:\n\n```\nfile = File.open(\"some/file/name\", \"rb\")\nsource = Vips::SourceCustom.new\nsource.on_read { |slice| file.read(slice) }\nimage = Vips::Image.new_from_source(source)\n```\n\n(just an example -- of course in practice you'd use `Source#new_from_file`\nto read from a named file)","summary":"

    A source you can attach action signal handlers to to implement custom input types.

    ","constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":82,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L82"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"finalize-instance-method","name":"finalize","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":123,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L123"},"def":{"name":"finalize","visibility":"Public","body":"@@box.clear"}},{"html_id":"on_read(&block:Bytes->Int32)-instance-method","name":"on_read","doc":"The block is executed to read data from the source. The interface is\nexactly as IO::read, ie. it takes a slice and reads atmost `slice.size` and\nreturns a number of bytes read from the source, or 0 if the source is already\nat end of file.","summary":"

    The block is executed to read data from the source.

    ","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":93,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L93"},"def":{"name":"on_read","yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Bytes -> Int32)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"read\", LibVips::ReadCB.new do |_source, buff, size, data|\n if size <= 0\n next 0\n end\n callback = Box(typeof(block)).unbox(data)\n slice = Bytes.new(buff.as(::Pointer(UInt8)), size)\n callback.call(slice)\nend, boxed_data)\n"}},{"html_id":"on_seek(&block:Int64,IO::Seek->Int64)-instance-method","name":"on_seek","doc":"The block is executed to seek the source. The interface is exactly as\nIO::seek, ie. it should take an offset and whence, and return the\nnew read position.\n\nThis handler is optional -- if you do not attach a seek handler,\n`Source` will treat your source like an unseekable pipe object and\ndo extra caching.","summary":"

    The block is executed to seek the source.

    ","abstract":false,"location":{"filename":"src/vips/source.cr","line_number":112,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L112"},"def":{"name":"on_seek","yields":2,"block_arity":2,"block_arg":{"name":"block","external_name":"block","restriction":"(Int64, IO::Seek -> Int64)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"seek\", LibVips::SeekCB.new do |_source, offset, whence, data|\n callback = Box(typeof(block)).unbox(data)\n ret = callback.call(offset, IO::Seek.from_value(whence))\n ret.to_i64\nend, boxed_data)\n"}}]},{"html_id":"vips/Vips/SourceStream","path":"Vips/SourceStream.html","kind":"class","full_name":"Vips::SourceStream","name":"SourceStream","abstract":false,"superclass":{"html_id":"vips/Vips/SourceCustom","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom"},"ancestors":[{"html_id":"vips/Vips/SourceCustom","kind":"class","full_name":"Vips::SourceCustom","name":"SourceCustom"},{"html_id":"vips/Vips/Source","kind":"class","full_name":"Vips::Source","name":"Source"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/source.cr","line_number":129,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L129"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Source connected to a readable `IO`","summary":"

    Source connected to a readable IO

    ","class_methods":[{"html_id":"new_from_stream(io:IO)-class-method","name":"new_from_stream","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/source.cr","line_number":136,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/source.cr#L136"},"def":{"name":"new_from_stream","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"if io.closed?\n raise(VipsException.new(\"The stream should be readable\"))\nend\nnew(io)\n"}}]},{"html_id":"vips/Vips/Stats","path":"Vips/Stats.html","kind":"module","full_name":"Vips::Stats","name":"Stats","abstract":false,"locations":[{"filename":"src/vips/stats.cr","line_number":7,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/stats.cr#L7"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"vips/Vips/Stats","kind":"module","full_name":"Vips::Stats","name":"Stats"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"allocations:Int-instance-method","name":"allocations","doc":"Get the number of active allocations.","summary":"

    Get the number of active allocations.

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":11,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/stats.cr#L11"},"def":{"name":"allocations","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_allocs"}},{"html_id":"mem:Int-instance-method","name":"mem","doc":"Get the number of bytes currently allocated `vips_malloc()` and friends.\nlibvips uses this figure to decide when to start dropping cache.","summary":"

    Get the number of bytes currently allocated vips_malloc() and friends.

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":17,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/stats.cr#L17"},"def":{"name":"mem","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_mem"}},{"html_id":"mem_highwater:Int-instance-method","name":"mem_highwater","doc":"Returns the largest number of bytes simultaneously allocated via vips_tracked_malloc().\nHandy for estimating max memory requirements for a program.","summary":"

    Returns the largest number of bytes simultaneously allocated via vips_tracked_malloc().

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":23,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/stats.cr#L23"},"def":{"name":"mem_highwater","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_mem_highwater"}},{"html_id":"open_files:Int-instance-method","name":"open_files","doc":"Get the number of open files.","summary":"

    Get the number of open files.

    ","abstract":false,"location":{"filename":"src/vips/stats.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/stats.cr#L28"},"def":{"name":"open_files","return_type":"Int","visibility":"Public","body":"LibVips.vips_tracked_get_files"}}]},{"html_id":"vips/Vips/Target","path":"Vips/Target.html","kind":"class","full_name":"Vips::Target","name":"Target","abstract":false,"superclass":{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},"ancestors":[{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/target.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L3"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/TargetCustom","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"an output connection","summary":"

    an output connection

    ","class_methods":[{"html_id":"new_to_descriptor(descriptor:Int32)-class-method","name":"new_to_descriptor","doc":"Make a new target to write to a file descriptor (a small integer).\n```\ntarget = Vips::Target.new_to_descriptor(STDOUT)\n```\nMakes a descriptor attached to `STDOUT`.\n\nYou can pass this target to (for example) `write_to_target`","summary":"

    Make a new target to write to a file descriptor (a small integer).

    ","abstract":false,"args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int32"}],"args_string":"(descriptor : Int32)","args_html":"(descriptor : Int32)","location":{"filename":"src/vips/target.cr","line_number":15,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L15"},"def":{"name":"new_to_descriptor","args":[{"name":"descriptor","external_name":"descriptor","restriction":"Int32"}],"visibility":"Public","body":"ptr = (LibVips.vips_target_new_to_descriptor(descriptor)).tap do |ret|\n if ret.null?\n raise(VipsException.new(\"can't create output target to descriptor #{descriptor}\"))\n end\nend\nnew(ptr)\n"}},{"html_id":"new_to_file(filename:String)-class-method","name":"new_to_file","doc":"Make a new target to write to a file.\n```\ntarget = Vips::Target.new_to_file(\"myfile.jpg\")\n```\n\nYou can pass this target to (for example) `write_to_target`","summary":"

    Make a new target to write to a file.

    ","abstract":false,"args":[{"name":"filename","external_name":"filename","restriction":"String"}],"args_string":"(filename : String)","args_html":"(filename : String)","location":{"filename":"src/vips/target.cr","line_number":28,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L28"},"def":{"name":"new_to_file","args":[{"name":"filename","external_name":"filename","restriction":"String"}],"visibility":"Public","body":"ptr = (LibVips.vips_target_new_to_file(filename)).tap do |ret|\n if ret.null?\n raise(VipsException.new(\"can't create output target to file #{filename}\"))\n end\nend\nnew(ptr)\n"}},{"html_id":"new_to_memory-class-method","name":"new_to_memory","doc":"Make a new target to write to an area of memory.\n```\ntarget = Vips::Target.new_to_memory\n```\n\nYou can pass this target to (for example) `write_to_target`\n\nAfter writing to target, fetch the bytes from the target object with:\n\n```\nbytes = target.blob\n```","summary":"

    Make a new target to write to an area of memory.

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L47"},"def":{"name":"new_to_memory","visibility":"Public","body":"ptr = LibVips.vips_target_new_to_memory.tap do |ret|\n if ret.null?\n raise(VipsException.new(\"can't create output target to memory\"))\n end\nend\nnew(ptr)\n"}}],"instance_methods":[{"html_id":"blob:Bytes-instance-method","name":"blob","doc":"Get the memory object held by the target when using `new_to_memory`","summary":"

    Get the memory object held by the target when using .new_to_memory

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":55,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L55"},"def":{"name":"blob","return_type":"Bytes","visibility":"Public","body":"(get(\"blob\")).as_bytes"}}]},{"html_id":"vips/Vips/TargetCustom","path":"Vips/TargetCustom.html","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom","abstract":false,"superclass":{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"},"ancestors":[{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/target.cr","line_number":66,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L66"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/TargetStream","kind":"class","full_name":"Vips::TargetStream","name":"TargetStream"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"`Target` you can connect handlers to implement behavior.","summary":"

    Target you can connect handlers to implement behavior.

    ","constructors":[{"html_id":"new-class-method","name":"new","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":69,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L69"},"def":{"name":"new","visibility":"Public","body":"_ = allocate\n_.initialize\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"on_finish(&block:->)-instance-method","name":"on_finish","doc":"The block is executed at the end of write. It should do any necessary\nfinishing action, such as closing a file or flushing IO","summary":"

    The block is executed at the end of write.

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":94,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L94"},"def":{"name":"on_finish","yields":0,"block_arity":0,"block_arg":{"name":"block","external_name":"block","restriction":"(->)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"finish\", LibVips::FinishCB.new do |_source, data|\n callback = Box(typeof(block)).unbox(data)\n callback.call\n @@box.delete(data)\n nil\nend, boxed_data)\n"}},{"html_id":"on_write(&block:Bytes->Int64)-instance-method","name":"on_write","doc":"The block is executed to write data to the target. The interface is\nexactly as IO::write, ie. it should write the bytes and return the\nnumber of bytes written.","summary":"

    The block is executed to write data to the target.

    ","abstract":false,"location":{"filename":"src/vips/target.cr","line_number":79,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L79"},"def":{"name":"on_write","yields":1,"block_arity":1,"block_arg":{"name":"block","external_name":"block","restriction":"(Bytes -> Int64)"},"visibility":"Public","body":"boxed_data = Box.box(block)\n@@box << boxed_data\nsignal_connect(\"write\", LibVips::WriteCB.new do |source, buff, size, data|\n if size <= 0\n next -1_i64\n end\n callback = Box(typeof(block)).unbox(data)\n slice = Bytes.new(buff, size)\n @@box.delete(data)\n callback.call(slice)\nend, boxed_data)\n"}}]},{"html_id":"vips/Vips/TargetStream","path":"Vips/TargetStream.html","kind":"class","full_name":"Vips::TargetStream","name":"TargetStream","abstract":false,"superclass":{"html_id":"vips/Vips/TargetCustom","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom"},"ancestors":[{"html_id":"vips/Vips/TargetCustom","kind":"class","full_name":"Vips::TargetCustom","name":"TargetCustom"},{"html_id":"vips/Vips/Target","kind":"class","full_name":"Vips::Target","name":"Target"},{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/VipsObject","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject"},{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/target.cr","line_number":108,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L108"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"doc":"Target connected to a writeable `IO`","summary":"

    Target connected to a writeable IO

    ","class_methods":[{"html_id":"new_from_stream(io:IO)-class-method","name":"new_from_stream","abstract":false,"args":[{"name":"io","external_name":"io","restriction":"IO"}],"args_string":"(io : IO)","args_html":"(io : IO)","location":{"filename":"src/vips/target.cr","line_number":118,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/target.cr#L118"},"def":{"name":"new_from_stream","args":[{"name":"io","external_name":"io","restriction":"IO"}],"visibility":"Public","body":"if io.closed?\n raise(VipsException.new(\"The stream should be write\"))\nend\nnew(io)\n"}}]},{"html_id":"vips/Vips/Type","path":"Vips/Type.html","kind":"struct","full_name":"Vips::Type","name":"Type","abstract":false,"superclass":{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"vips/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"vips/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vips.cr","line_number":226,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L226"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"constructors":[{"html_id":"new(value:Array(Float64)|Array(Int32)|Array(Vips::Image)|Bool|Float64|Int32|Slice(UInt8)|String|UInt64|Vips::GObject|Vips::Optional)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Array(::Float64) | ::Array(::Int32) | ::Array(::Vips::Image) | ::Bool | ::Float64 | ::Int32 | ::Slice(::UInt8) | ::String | ::UInt64 | ::Vips::GObject | ::Vips::Optional"}],"args_string":"(value : Array(Float64) | Array(Int32) | Array(Vips::Image) | Bool | Float64 | Int32 | Slice(UInt8) | String | UInt64 | Vips::GObject | Vips::Optional)","args_html":"(value : Array(Float64) | Array(Int32) | Array(Vips::Image) | Bool | Float64 | Int32 | Slice(UInt8) | String | UInt64 | Vips::GObject | Vips::Optional)","location":{"filename":"src/vips/vips.cr","line_number":232,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L232"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Array(::Float64) | ::Array(::Int32) | ::Array(::Vips::Image) | ::Bool | ::Float64 | ::Int32 | ::Slice(::UInt8) | ::String | ::UInt64 | ::Vips::GObject | ::Vips::Optional"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"as_a32-instance-method","name":"as_a32","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":261,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L261"},"def":{"name":"as_a32","visibility":"Public","body":"@value.as(Array(Int32))"}},{"html_id":"as_a64-instance-method","name":"as_a64","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":265,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L265"},"def":{"name":"as_a64","visibility":"Public","body":"@value.as(Array(Float64))"}},{"html_id":"as_aimg-instance-method","name":"as_aimg","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":273,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L273"},"def":{"name":"as_aimg","visibility":"Public","body":"@value.as(Array(Image))"}},{"html_id":"as_b-instance-method","name":"as_b","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":235,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L235"},"def":{"name":"as_b","visibility":"Public","body":"if @value.is_a?(Number)\n return as_i32 > 0\nend\n@value.as(Bool)\n"}},{"html_id":"as_bytes-instance-method","name":"as_bytes","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":257,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L257"},"def":{"name":"as_bytes","visibility":"Public","body":"@value.as(Bytes)"}},{"html_id":"as_enum(cls:Enum.class)-instance-method","name":"as_enum","abstract":false,"args":[{"name":"cls","external_name":"cls","restriction":"Enum.class"}],"args_string":"(cls : Enum.class)","args_html":"(cls : Enum.class)","location":{"filename":"src/vips/vips.cr","line_number":285,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L285"},"def":{"name":"as_enum","args":[{"name":"cls","external_name":"cls","restriction":"Enum.class"}],"visibility":"Public","body":"cls.from_value(as_i32)"}},{"html_id":"as_f64-instance-method","name":"as_f64","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":244,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L244"},"def":{"name":"as_f64","visibility":"Public","body":"@value.is_a?(Number) ? (@value.as(Number)).to_f : @value.as(Float64)"}},{"html_id":"as_h-instance-method","name":"as_h","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":277,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L277"},"def":{"name":"as_h","visibility":"Public","body":"@value.as(Optional)"}},{"html_id":"as_i32-instance-method","name":"as_i32","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":240,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L240"},"def":{"name":"as_i32","visibility":"Public","body":"@value.is_a?(Number) ? (@value.as(Number)).to_i : @value.as(Int32)"}},{"html_id":"as_image-instance-method","name":"as_image","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":269,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L269"},"def":{"name":"as_image","visibility":"Public","body":"@value.as(Image)"}},{"html_id":"as_o-instance-method","name":"as_o","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":281,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L281"},"def":{"name":"as_o","visibility":"Public","body":"@value.as(GObject)"}},{"html_id":"as_s-instance-method","name":"as_s","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":252,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L252"},"def":{"name":"as_s","visibility":"Public","body":"if @value.is_a?(String)\n return @value.as(String)\nend\n@value.to_s\n"}},{"html_id":"as_u64-instance-method","name":"as_u64","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":248,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L248"},"def":{"name":"as_u64","visibility":"Public","body":"@value.is_a?(Number) ? (@value.as(Number)).to_u64 : @value.as(UInt64)"}},{"html_id":"value:VALTYPE-instance-method","name":"value","abstract":false,"location":{"filename":"src/vips/vips.cr","line_number":230,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L230"},"def":{"name":"value","return_type":"VALTYPE","visibility":"Public","body":"@value"}}]},{"html_id":"vips/Vips/VipsBlob","path":"Vips/VipsBlob.html","kind":"class","full_name":"Vips::VipsBlob","name":"VipsBlob","abstract":false,"superclass":{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vipsblob.cr","line_number":4,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L4"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"constructors":[{"html_id":"new(handle:Pointer(LibVips::VipsBlob))-class-method","name":"new","abstract":false,"args":[{"name":"handle","external_name":"handle","restriction":"::Pointer(LibVips::VipsBlob)"}],"args_string":"(handle : Pointer(LibVips::VipsBlob))","args_html":"(handle : Pointer(LibVips::VipsBlob))","location":{"filename":"src/vips/vipsblob.cr","line_number":5,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L5"},"def":{"name":"new","args":[{"name":"handle","external_name":"handle","restriction":"::Pointer(LibVips::VipsBlob)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(handle)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"get_data-instance-method","name":"get_data","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":9,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L9"},"def":{"name":"get_data","visibility":"Public","body":"data = LibVips.vips_blob_get(self, out size)\n{data, size}\n"}},{"html_id":"invalid?-instance-method","name":"invalid?","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":27,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L27"},"def":{"name":"invalid?","visibility":"Public","body":"@handle.null?"}},{"html_id":"length-instance-method","name":"length","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":14,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L14"},"def":{"name":"length","visibility":"Public","body":"@blob.area.length"}},{"html_id":"ref_count-instance-method","name":"ref_count","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":18,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L18"},"def":{"name":"ref_count","visibility":"Public","body":"@blob.area.count"}},{"html_id":"release-instance-method","name":"release","abstract":false,"location":{"filename":"src/vips/vipsblob.cr","line_number":22,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsblob.cr#L22"},"def":{"name":"release","visibility":"Public","body":"if @handle.null?\n return\nend\nLibVips.vips_area_unref(Box.box(@blob.area))\n"}}]},{"html_id":"vips/Vips/VipsException","path":"Vips/VipsException.html","kind":"class","full_name":"Vips::VipsException","name":"VipsException","abstract":false,"superclass":{"html_id":"vips/Exception","kind":"class","full_name":"Exception","name":"Exception"},"ancestors":[{"html_id":"vips/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vips.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"constructors":[{"html_id":"new(message)-class-method","name":"new","abstract":false,"args":[{"name":"message","external_name":"message","restriction":""}],"args_string":"(message)","args_html":"(message)","location":{"filename":"src/vips/vips.cr","line_number":3,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vips.cr#L3"},"def":{"name":"new","args":[{"name":"message","external_name":"message","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(message)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"vips/Vips/VipsObject","path":"Vips/VipsObject.html","kind":"class","full_name":"Vips::VipsObject","name":"VipsObject","abstract":false,"superclass":{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},"ancestors":[{"html_id":"vips/Vips/GObject","kind":"class","full_name":"Vips::GObject","name":"GObject"},{"html_id":"vips/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"vips/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/vips/vipsobject.cr","line_number":2,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L2"}],"repository_name":"vips","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"vips/Vips/Connection","kind":"class","full_name":"Vips::Connection","name":"Connection"},{"html_id":"vips/Vips/Image","kind":"class","full_name":"Vips::Image","name":"Image"},{"html_id":"vips/Vips/Interpolate","kind":"class","full_name":"Vips::Interpolate","name":"Interpolate"},{"html_id":"vips/Vips/Operation","kind":"class","full_name":"Vips::Operation","name":"Operation"},{"html_id":"vips/Vips/Region","kind":"class","full_name":"Vips::Region","name":"Region"}],"namespace":{"html_id":"vips/Vips","kind":"module","full_name":"Vips","name":"Vips"},"instance_methods":[{"html_id":"get(name:String)-instance-method","name":"get","doc":"Returns a GObject property","summary":"

    Returns a GObject property

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":22,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L22"},"def":{"name":"get","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"pspec = get_pspec(name)\nif pspec.nil?\n raise(VipsException.new(\"Property not found\"))\nend\ngtype = pspec.value_type\ngv = GValue.new\ngv.set_type(gtype)\nget(name, gv)\n"}},{"html_id":"get_blurb(name:String)-instance-method","name":"get_blurb","doc":"Get the blurb for a GObject property.","summary":"

    Get the blurb for a GObject property.

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":58,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L58"},"def":{"name":"get_blurb","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"pspec = get_pspec(name)\nif pspec.nil?\n return \"\"\nend\nString.new(LibVips.g_param_spec_get_blurb(pspec))\n"}},{"html_id":"get_description-instance-method","name":"get_description","doc":"Get the description of a GObject.","summary":"

    Get the description of a GObject.

    ","abstract":false,"location":{"filename":"src/vips/vipsobject.cr","line_number":65,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L65"},"def":{"name":"get_description","visibility":"Public","body":"String.new(LibVips.vips_object_get_description(@ohandle))"}},{"html_id":"get_pspec(name:String):LibVips::GParamSpec|Nil-instance-method","name":"get_pspec","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String) : LibVips::GParamSpec | Nil","args_html":"(name : String) : LibVips::GParamSpec | Nil","location":{"filename":"src/vips/vipsobject.cr","line_number":16,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L16"},"def":{"name":"get_pspec","args":[{"name":"name","external_name":"name","restriction":"String"}],"return_type":"LibVips::GParamSpec | ::Nil","visibility":"Public","body":"ret = LibVips.vips_object_get_argument(@ohandle, name, out pspec, out _, out _)\nret != 0 ? nil : pspec.value\n"}},{"html_id":"get_typeof(name:String)-instance-method","name":"get_typeof","doc":"Get the GType of a GObject property","summary":"

    Get the GType of a GObject property

    ","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":47,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L47"},"def":{"name":"get_typeof","args":[{"name":"name","external_name":"name","restriction":"String"}],"visibility":"Public","body":"if pspec = get_pspec(name)\n pspec.value_type\nelse\n Vips.clear_error\n nil\nend"}},{"html_id":"post_close(&block:->)-instance-method","name":"post_close","abstract":false,"location":{"filename":"src/vips/vipsobject.cr","line_number":7,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L7"},"def":{"name":"post_close","yields":0,"block_arity":0,"block_arg":{"name":"block","external_name":"block","restriction":"(->)"},"visibility":"Public","body":"signal_connect(\"postclose\", block)"}},{"html_id":"print_all-instance-method","name":"print_all","doc":"Print a table of all active libvips objects. Handy for debugging.","summary":"

    Print a table of all active libvips objects.

    ","abstract":false,"location":{"filename":"src/vips/vipsobject.cr","line_number":12,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L12"},"def":{"name":"print_all","visibility":"Public","body":"LibVips.vips_object_print_all"}},{"html_id":"set(gtype,name,value)-instance-method","name":"set","doc":"Set a GObject property. Value is converted to the property type, if possible.","summary":"

    Set a GObject property.

    ","abstract":false,"args":[{"name":"gtype","external_name":"gtype","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"value","external_name":"value","restriction":""}],"args_string":"(gtype, name, value)","args_html":"(gtype, name, value)","location":{"filename":"src/vips/vipsobject.cr","line_number":33,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L33"},"def":{"name":"set","args":[{"name":"gtype","external_name":"gtype","restriction":""},{"name":"name","external_name":"name","restriction":""},{"name":"value","external_name":"value","restriction":""}],"visibility":"Public","body":"gv = GValue.new\ngv.set_type(gtype)\ngv.set(value)\nset(name, gv)\n"}},{"html_id":"set(options:String)-instance-method","name":"set","doc":"Set a series of properties using a String","summary":"

    Set a series of properties using a String

    ","abstract":false,"args":[{"name":"options","external_name":"options","restriction":"String"}],"args_string":"(options : String)","args_html":"(options : String)","location":{"filename":"src/vips/vipsobject.cr","line_number":42,"url":"https://github.com/naqvis/crystal-vips/blob/17faac0e91b403905ab394da892629c97adc869f/src/vips/vipsobject.cr#L42"},"def":{"name":"set","args":[{"name":"options","external_name":"options","restriction":"String"}],"visibility":"Public","body":"(LibVips.vips_object_set_from_string(@ohandle, options)) == 0"}}]}]}]}}) \ No newline at end of file