ruby-vips 2.0.17 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +42 -0
  3. data/.github/workflows/test.yml +80 -0
  4. data/.standard.yml +17 -0
  5. data/.yardopts +0 -1
  6. data/CHANGELOG.md +13 -0
  7. data/Gemfile +3 -1
  8. data/README.md +4 -4
  9. data/Rakefile +13 -21
  10. data/TODO +3 -6
  11. data/VERSION +1 -1
  12. data/example/annotate.rb +6 -6
  13. data/example/connection.rb +18 -9
  14. data/example/daltonize8.rb +6 -6
  15. data/example/draw_lines.rb +30 -0
  16. data/example/example1.rb +4 -4
  17. data/example/example2.rb +6 -6
  18. data/example/example3.rb +5 -5
  19. data/example/example4.rb +2 -2
  20. data/example/example5.rb +4 -4
  21. data/example/inheritance_with_refcount.rb +35 -36
  22. data/example/progress.rb +3 -3
  23. data/example/thumb.rb +6 -6
  24. data/example/trim8.rb +1 -1
  25. data/example/watermark.rb +2 -2
  26. data/example/wobble.rb +1 -1
  27. data/lib/ruby-vips.rb +1 -1
  28. data/lib/vips.rb +121 -75
  29. data/lib/vips/blend_mode.rb +29 -25
  30. data/lib/vips/connection.rb +4 -4
  31. data/lib/vips/gobject.rb +18 -11
  32. data/lib/vips/gvalue.rb +54 -54
  33. data/lib/vips/image.rb +232 -155
  34. data/lib/vips/interpolate.rb +3 -2
  35. data/lib/vips/methods.rb +165 -15
  36. data/lib/vips/mutableimage.rb +154 -0
  37. data/lib/vips/object.rb +84 -85
  38. data/lib/vips/operation.rb +161 -82
  39. data/lib/vips/region.rb +6 -6
  40. data/lib/vips/source.rb +11 -12
  41. data/lib/vips/sourcecustom.rb +7 -8
  42. data/lib/vips/target.rb +12 -13
  43. data/lib/vips/targetcustom.rb +9 -10
  44. data/lib/vips/version.rb +1 -1
  45. data/ruby-vips.gemspec +26 -22
  46. metadata +28 -48
  47. data/.rubocop.yml +0 -22
  48. data/.rubocop_todo.yml +0 -473
  49. data/.travis.yml +0 -57
  50. data/install-vips.sh +0 -26
@@ -48,8 +48,9 @@ module Vips
48
48
  end
49
49
 
50
50
  def initialize name
51
- ptr = Vips::vips_interpolate_new name
52
- raise Vips::Error if ptr == nil
51
+ name = name.to_s if name.is_a? Symbol
52
+ ptr = Vips.vips_interpolate_new name
53
+ raise Vips::Error if ptr.nil?
53
54
 
54
55
  super ptr
55
56
  end
data/lib/vips/methods.rb CHANGED
@@ -462,6 +462,7 @@ module Vips
462
462
  # Autorotate image by exif tag.
463
463
  # @param opts [Hash] Set of options
464
464
  # @option opts [Vips::Angle] :angle Output Angle image was rotated by
465
+ # @option opts [Boolean] :flip Output Whether the image was flipped or not
465
466
  # @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
466
467
 
467
468
  # @!method recomb(m, **opts)
@@ -586,6 +587,7 @@ module Vips
586
587
  # @param opts [Hash] Set of options
587
588
  # @option opts [Float] :sigma Standard deviation of pixels in generated image
588
589
  # @option opts [Float] :mean Mean of pixels in generated image
590
+ # @option opts [Integer] :seed Random number seed
589
591
  # @return [Vips::Image] Output image
590
592
 
591
593
  # @!method self.text(text, **opts)
@@ -854,6 +856,7 @@ module Vips
854
856
  # @param height [Integer] Image height in pixels
855
857
  # @param opts [Hash] Set of options
856
858
  # @option opts [Integer] :cell_size Size of Worley cells
859
+ # @option opts [Integer] :seed Random number seed
857
860
  # @return [Vips::Image] Output image
858
861
 
859
862
  # @!method self.perlin(width, height, **opts)
@@ -863,6 +866,7 @@ module Vips
863
866
  # @param opts [Hash] Set of options
864
867
  # @option opts [Integer] :cell_size Size of Perlin cells
865
868
  # @option opts [Boolean] :uchar Output an unsigned char image
869
+ # @option opts [Integer] :seed Random number seed
866
870
  # @return [Vips::Image] Output image
867
871
 
868
872
  # @!method self.switch(tests, **opts)
@@ -872,7 +876,7 @@ module Vips
872
876
  # @return [Vips::Image] Output image
873
877
 
874
878
  # @!method self.csvload(filename, **opts)
875
- # Load csv from file.
879
+ # Load csv.
876
880
  # @param filename [String] Filename to load from
877
881
  # @param opts [Hash] Set of options
878
882
  # @option opts [Integer] :skip Skip this many lines at the start of the file
@@ -887,8 +891,24 @@ module Vips
887
891
  # @option opts [Vips::ForeignFlags] :flags Output Flags for this file
888
892
  # @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
889
893
 
894
+ # @!method self.csvload_source(source, **opts)
895
+ # Load csv.
896
+ # @param source [Vips::Source] Source to load from
897
+ # @param opts [Hash] Set of options
898
+ # @option opts [Integer] :skip Skip this many lines at the start of the file
899
+ # @option opts [Integer] :lines Read this many lines from the file
900
+ # @option opts [String] :whitespace Set of whitespace characters
901
+ # @option opts [String] :separator Set of separator characters
902
+ # @option opts [Boolean] :memory Force open via memory
903
+ # @option opts [Vips::Access] :access Required access pattern for this file
904
+ # @option opts [Boolean] :sequential Sequential read only
905
+ # @option opts [Boolean] :fail Fail on first error
906
+ # @option opts [Boolean] :disc Open to disc
907
+ # @option opts [Vips::ForeignFlags] :flags Output Flags for this file
908
+ # @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
909
+
890
910
  # @!method self.matrixload(filename, **opts)
891
- # Load matrix from file.
911
+ # Load matrix.
892
912
  # @param filename [String] Filename to load from
893
913
  # @param opts [Hash] Set of options
894
914
  # @option opts [Boolean] :memory Force open via memory
@@ -899,6 +919,18 @@ module Vips
899
919
  # @option opts [Vips::ForeignFlags] :flags Output Flags for this file
900
920
  # @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
901
921
 
922
+ # @!method self.matrixload_source(source, **opts)
923
+ # Load matrix.
924
+ # @param source [Vips::Source] Source to load from
925
+ # @param opts [Hash] Set of options
926
+ # @option opts [Boolean] :memory Force open via memory
927
+ # @option opts [Vips::Access] :access Required access pattern for this file
928
+ # @option opts [Boolean] :sequential Sequential read only
929
+ # @option opts [Boolean] :fail Fail on first error
930
+ # @option opts [Boolean] :disc Open to disc
931
+ # @option opts [Vips::ForeignFlags] :flags Output Flags for this file
932
+ # @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
933
+
902
934
  # @!method self.rawload(filename, width, height, bands, **opts)
903
935
  # Load raw data from a file.
904
936
  # @param filename [String] Filename to load from
@@ -953,6 +985,18 @@ module Vips
953
985
  # @option opts [Vips::ForeignFlags] :flags Output Flags for this file
954
986
  # @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
955
987
 
988
+ # @!method self.ppmload_source(source, **opts)
989
+ # Load ppm base class.
990
+ # @param source [Vips::Source] Source to load from
991
+ # @param opts [Hash] Set of options
992
+ # @option opts [Boolean] :memory Force open via memory
993
+ # @option opts [Vips::Access] :access Required access pattern for this file
994
+ # @option opts [Boolean] :sequential Sequential read only
995
+ # @option opts [Boolean] :fail Fail on first error
996
+ # @option opts [Boolean] :disc Open to disc
997
+ # @option opts [Vips::ForeignFlags] :flags Output Flags for this file
998
+ # @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
999
+
956
1000
  # @!method self.radload(filename, **opts)
957
1001
  # Load a radiance image from a file.
958
1002
  # @param filename [String] Filename to load from
@@ -990,7 +1034,7 @@ module Vips
990
1034
  # @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
991
1035
 
992
1036
  # @!method self.pdfload(filename, **opts)
993
- # Load pdf with libpoppler.
1037
+ # Load pdf from file.
994
1038
  # @param filename [String] Filename to load from
995
1039
  # @param opts [Hash] Set of options
996
1040
  # @option opts [Integer] :page Load this page from the file
@@ -1007,7 +1051,7 @@ module Vips
1007
1051
  # @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
1008
1052
 
1009
1053
  # @!method self.pdfload_buffer(buffer, **opts)
1010
- # Load pdf with libpoppler.
1054
+ # Load pdf from buffer.
1011
1055
  # @param buffer [VipsBlob] Buffer to load from
1012
1056
  # @param opts [Hash] Set of options
1013
1057
  # @option opts [Integer] :page Load this page from the file
@@ -1023,13 +1067,15 @@ module Vips
1023
1067
  # @option opts [Vips::ForeignFlags] :flags Output Flags for this file
1024
1068
  # @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
1025
1069
 
1026
- # @!method self.svgload(filename, **opts)
1027
- # Load svg with rsvg.
1028
- # @param filename [String] Filename to load from
1070
+ # @!method self.pdfload_source(source, **opts)
1071
+ # Load pdf from source.
1072
+ # @param source [Vips::Source] Source to load from
1029
1073
  # @param opts [Hash] Set of options
1074
+ # @option opts [Integer] :page Load this page from the file
1075
+ # @option opts [Integer] :n Load this many pages
1030
1076
  # @option opts [Float] :dpi Render at this DPI
1031
1077
  # @option opts [Float] :scale Scale output by this factor
1032
- # @option opts [Boolean] :unlimited Allow SVG of any size
1078
+ # @option opts [Array<Double>] :background Background value
1033
1079
  # @option opts [Boolean] :memory Force open via memory
1034
1080
  # @option opts [Vips::Access] :access Required access pattern for this file
1035
1081
  # @option opts [Boolean] :sequential Sequential read only
@@ -1111,6 +1157,20 @@ module Vips
1111
1157
  # @option opts [Vips::ForeignFlags] :flags Output Flags for this file
1112
1158
  # @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
1113
1159
 
1160
+ # @!method self.gifload_source(source, **opts)
1161
+ # Load gif with giflib.
1162
+ # @param source [Vips::Source] Source to load from
1163
+ # @param opts [Hash] Set of options
1164
+ # @option opts [Integer] :page Load this page from the file
1165
+ # @option opts [Integer] :n Load this many pages
1166
+ # @option opts [Boolean] :memory Force open via memory
1167
+ # @option opts [Vips::Access] :access Required access pattern for this file
1168
+ # @option opts [Boolean] :sequential Sequential read only
1169
+ # @option opts [Boolean] :fail Fail on first error
1170
+ # @option opts [Boolean] :disc Open to disc
1171
+ # @option opts [Vips::ForeignFlags] :flags Output Flags for this file
1172
+ # @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
1173
+
1114
1174
  # @!method self.pngload(filename, **opts)
1115
1175
  # Load png from file.
1116
1176
  # @param filename [String] Filename to load from
@@ -1254,6 +1314,7 @@ module Vips
1254
1314
  # @param filename [String] Filename to load from
1255
1315
  # @param opts [Hash] Set of options
1256
1316
  # @option opts [Integer] :page Load this page from the image
1317
+ # @option opts [Integer] :subifd Select subifd index
1257
1318
  # @option opts [Integer] :n Load this many pages
1258
1319
  # @option opts [Boolean] :autorotate Rotate image using orientation tag
1259
1320
  # @option opts [Boolean] :memory Force open via memory
@@ -1269,6 +1330,7 @@ module Vips
1269
1330
  # @param buffer [VipsBlob] Buffer to load from
1270
1331
  # @param opts [Hash] Set of options
1271
1332
  # @option opts [Integer] :page Load this page from the image
1333
+ # @option opts [Integer] :subifd Select subifd index
1272
1334
  # @option opts [Integer] :n Load this many pages
1273
1335
  # @option opts [Boolean] :autorotate Rotate image using orientation tag
1274
1336
  # @option opts [Boolean] :memory Force open via memory
@@ -1284,6 +1346,7 @@ module Vips
1284
1346
  # @param source [Vips::Source] Source to load from
1285
1347
  # @param opts [Hash] Set of options
1286
1348
  # @option opts [Integer] :page Load this page from the image
1349
+ # @option opts [Integer] :subifd Select subifd index
1287
1350
  # @option opts [Integer] :n Load this many pages
1288
1351
  # @option opts [Boolean] :autorotate Rotate image using orientation tag
1289
1352
  # @option opts [Boolean] :memory Force open via memory
@@ -1410,8 +1473,24 @@ module Vips
1410
1473
  # @option opts [Vips::ForeignFlags] :flags Output Flags for this file
1411
1474
  # @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
1412
1475
 
1476
+ # @!method self.heifload_source(source, **opts)
1477
+ # Load a heif image.
1478
+ # @param source [Vips::Source] Source to load from
1479
+ # @param opts [Hash] Set of options
1480
+ # @option opts [Integer] :page Load this page from the file
1481
+ # @option opts [Integer] :n Load this many pages
1482
+ # @option opts [Boolean] :thumbnail Fetch thumbnail image
1483
+ # @option opts [Boolean] :autorotate Rotate image using exif orientation
1484
+ # @option opts [Boolean] :memory Force open via memory
1485
+ # @option opts [Vips::Access] :access Required access pattern for this file
1486
+ # @option opts [Boolean] :sequential Sequential read only
1487
+ # @option opts [Boolean] :fail Fail on first error
1488
+ # @option opts [Boolean] :disc Open to disc
1489
+ # @option opts [Vips::ForeignFlags] :flags Output Flags for this file
1490
+ # @return [Vips::Image, Hash<Symbol => Object>] Output image, Hash of optional output items
1491
+
1413
1492
  # @!method csvsave(filename, **opts)
1414
- # Save image to csv file.
1493
+ # Save image to csv.
1415
1494
  # @param filename [String] Filename to save to
1416
1495
  # @param opts [Hash] Set of options
1417
1496
  # @option opts [String] :separator Separator characters
@@ -1420,8 +1499,18 @@ module Vips
1420
1499
  # @option opts [Integer] :page_height Set page height for multipage save
1421
1500
  # @return [nil]
1422
1501
 
1502
+ # @!method csvsave_target(target, **opts)
1503
+ # Save image to csv.
1504
+ # @param target [Vips::Target] Target to save to
1505
+ # @param opts [Hash] Set of options
1506
+ # @option opts [String] :separator Separator characters
1507
+ # @option opts [Boolean] :strip Strip all metadata from image
1508
+ # @option opts [Array<Double>] :background Background value
1509
+ # @option opts [Integer] :page_height Set page height for multipage save
1510
+ # @return [nil]
1511
+
1423
1512
  # @!method matrixsave(filename, **opts)
1424
- # Save image to matrix file.
1513
+ # Save image to matrix.
1425
1514
  # @param filename [String] Filename to save to
1426
1515
  # @param opts [Hash] Set of options
1427
1516
  # @option opts [Boolean] :strip Strip all metadata from image
@@ -1429,6 +1518,15 @@ module Vips
1429
1518
  # @option opts [Integer] :page_height Set page height for multipage save
1430
1519
  # @return [nil]
1431
1520
 
1521
+ # @!method matrixsave_target(target, **opts)
1522
+ # Save image to matrix.
1523
+ # @param target [Vips::Target] Target to save to
1524
+ # @param opts [Hash] Set of options
1525
+ # @option opts [Boolean] :strip Strip all metadata from image
1526
+ # @option opts [Array<Double>] :background Background value
1527
+ # @option opts [Integer] :page_height Set page height for multipage save
1528
+ # @return [nil]
1529
+
1432
1530
  # @!method matrixprint(**opts)
1433
1531
  # Print matrix.
1434
1532
  # @param opts [Hash] Set of options
@@ -1470,6 +1568,19 @@ module Vips
1470
1568
  # @param opts [Hash] Set of options
1471
1569
  # @option opts [Boolean] :ascii save as ascii
1472
1570
  # @option opts [Boolean] :squash save as one bit
1571
+ # @option opts [Integer] :bitdepth set to 1 to write as a 1 bit image
1572
+ # @option opts [Boolean] :strip Strip all metadata from image
1573
+ # @option opts [Array<Double>] :background Background value
1574
+ # @option opts [Integer] :page_height Set page height for multipage save
1575
+ # @return [nil]
1576
+
1577
+ # @!method ppmsave_target(target, **opts)
1578
+ # Save to ppm.
1579
+ # @param target [Vips::Target] Target to save to
1580
+ # @param opts [Hash] Set of options
1581
+ # @option opts [Boolean] :ascii save as ascii
1582
+ # @option opts [Boolean] :squash save as one bit
1583
+ # @option opts [Integer] :bitdepth set to 1 to write as a 1 bit image
1473
1584
  # @option opts [Boolean] :strip Strip all metadata from image
1474
1585
  # @option opts [Array<Double>] :background Background value
1475
1586
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1522,6 +1633,7 @@ module Vips
1522
1633
  # @option opts [Vips::RegionShrink] :region_shrink Method to shrink regions
1523
1634
  # @option opts [Integer] :skip_blanks Skip tiles which are nearly equal to the background
1524
1635
  # @option opts [Boolean] :no_strip Don't strip tile metadata
1636
+ # @option opts [String] :id Resource ID
1525
1637
  # @option opts [Boolean] :strip Strip all metadata from image
1526
1638
  # @option opts [Array<Double>] :background Background value
1527
1639
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1547,6 +1659,7 @@ module Vips
1547
1659
  # @option opts [Vips::RegionShrink] :region_shrink Method to shrink regions
1548
1660
  # @option opts [Integer] :skip_blanks Skip tiles which are nearly equal to the background
1549
1661
  # @option opts [Boolean] :no_strip Don't strip tile metadata
1662
+ # @option opts [String] :id Resource ID
1550
1663
  # @option opts [Boolean] :strip Strip all metadata from image
1551
1664
  # @option opts [Array<Double>] :background Background value
1552
1665
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1564,6 +1677,7 @@ module Vips
1564
1677
  # @option opts [Integer] :colours Max number of palette colours
1565
1678
  # @option opts [Integer] :Q Quantisation quality
1566
1679
  # @option opts [Float] :dither Amount of dithering
1680
+ # @option opts [Integer] :bitdepth Write as a 1, 2, 4 or 8 bit image
1567
1681
  # @option opts [Boolean] :strip Strip all metadata from image
1568
1682
  # @option opts [Array<Double>] :background Background value
1569
1683
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1580,6 +1694,7 @@ module Vips
1580
1694
  # @option opts [Integer] :colours Max number of palette colours
1581
1695
  # @option opts [Integer] :Q Quantisation quality
1582
1696
  # @option opts [Float] :dither Amount of dithering
1697
+ # @option opts [Integer] :bitdepth Write as a 1, 2, 4 or 8 bit image
1583
1698
  # @option opts [Boolean] :strip Strip all metadata from image
1584
1699
  # @option opts [Array<Double>] :background Background value
1585
1700
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1597,6 +1712,7 @@ module Vips
1597
1712
  # @option opts [Integer] :colours Max number of palette colours
1598
1713
  # @option opts [Integer] :Q Quantisation quality
1599
1714
  # @option opts [Float] :dither Amount of dithering
1715
+ # @option opts [Integer] :bitdepth Write as a 1, 2, 4 or 8 bit image
1600
1716
  # @option opts [Boolean] :strip Strip all metadata from image
1601
1717
  # @option opts [Array<Double>] :background Background value
1602
1718
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1615,6 +1731,7 @@ module Vips
1615
1731
  # @option opts [Boolean] :overshoot_deringing Apply overshooting to samples with extreme values
1616
1732
  # @option opts [Boolean] :optimize_scans Split spectrum of DCT coefficients into separate scans
1617
1733
  # @option opts [Integer] :quant_table Use predefined quantization table with given index
1734
+ # @option opts [Vips::ForeignJpegSubsample] :subsample_mode Select chroma subsample operation mode
1618
1735
  # @option opts [Boolean] :strip Strip all metadata from image
1619
1736
  # @option opts [Array<Double>] :background Background value
1620
1737
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1632,6 +1749,7 @@ module Vips
1632
1749
  # @option opts [Boolean] :overshoot_deringing Apply overshooting to samples with extreme values
1633
1750
  # @option opts [Boolean] :optimize_scans Split spectrum of DCT coefficients into separate scans
1634
1751
  # @option opts [Integer] :quant_table Use predefined quantization table with given index
1752
+ # @option opts [Vips::ForeignJpegSubsample] :subsample_mode Select chroma subsample operation mode
1635
1753
  # @option opts [Boolean] :strip Strip all metadata from image
1636
1754
  # @option opts [Array<Double>] :background Background value
1637
1755
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1650,6 +1768,7 @@ module Vips
1650
1768
  # @option opts [Boolean] :overshoot_deringing Apply overshooting to samples with extreme values
1651
1769
  # @option opts [Boolean] :optimize_scans Split spectrum of DCT coefficients into separate scans
1652
1770
  # @option opts [Integer] :quant_table Use predefined quantization table with given index
1771
+ # @option opts [Vips::ForeignJpegSubsample] :subsample_mode Select chroma subsample operation mode
1653
1772
  # @option opts [Boolean] :strip Strip all metadata from image
1654
1773
  # @option opts [Array<Double>] :background Background value
1655
1774
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1667,6 +1786,7 @@ module Vips
1667
1786
  # @option opts [Boolean] :overshoot_deringing Apply overshooting to samples with extreme values
1668
1787
  # @option opts [Boolean] :optimize_scans Split spectrum of DCT coefficients into separate scans
1669
1788
  # @option opts [Integer] :quant_table Use predefined quantization table with given index
1789
+ # @option opts [Vips::ForeignJpegSubsample] :subsample_mode Select chroma subsample operation mode
1670
1790
  # @option opts [Boolean] :strip Strip all metadata from image
1671
1791
  # @option opts [Array<Double>] :background Background value
1672
1792
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1686,6 +1806,7 @@ module Vips
1686
1806
  # @option opts [Integer] :kmin Minimum number of frames between key frames
1687
1807
  # @option opts [Integer] :kmax Maximum number of frames between key frames
1688
1808
  # @option opts [Integer] :reduction_effort Level of CPU effort to reduce file size
1809
+ # @option opts [String] :profile ICC profile to embed
1689
1810
  # @option opts [Boolean] :strip Strip all metadata from image
1690
1811
  # @option opts [Array<Double>] :background Background value
1691
1812
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1704,6 +1825,7 @@ module Vips
1704
1825
  # @option opts [Integer] :kmin Minimum number of frames between key frames
1705
1826
  # @option opts [Integer] :kmax Maximum number of frames between key frames
1706
1827
  # @option opts [Integer] :reduction_effort Level of CPU effort to reduce file size
1828
+ # @option opts [String] :profile ICC profile to embed
1707
1829
  # @option opts [Boolean] :strip Strip all metadata from image
1708
1830
  # @option opts [Array<Double>] :background Background value
1709
1831
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1723,6 +1845,7 @@ module Vips
1723
1845
  # @option opts [Integer] :kmin Minimum number of frames between key frames
1724
1846
  # @option opts [Integer] :kmax Maximum number of frames between key frames
1725
1847
  # @option opts [Integer] :reduction_effort Level of CPU effort to reduce file size
1848
+ # @option opts [String] :profile ICC profile to embed
1726
1849
  # @option opts [Boolean] :strip Strip all metadata from image
1727
1850
  # @option opts [Array<Double>] :background Background value
1728
1851
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1740,8 +1863,9 @@ module Vips
1740
1863
  # @option opts [Integer] :tile_width Tile width in pixels
1741
1864
  # @option opts [Integer] :tile_height Tile height in pixels
1742
1865
  # @option opts [Boolean] :pyramid Write a pyramidal tiff
1743
- # @option opts [Boolean] :miniswhite Use 0 for white in 1-bit images
1744
1866
  # @option opts [Boolean] :squash Squash images down to 1 bit
1867
+ # @option opts [Boolean] :miniswhite Use 0 for white in 1-bit images
1868
+ # @option opts [Integer] :bitdepth Write as a 1, 2, 4 or 8 bit image
1745
1869
  # @option opts [Vips::ForeignTiffResunit] :resunit Resolution unit
1746
1870
  # @option opts [Float] :xres Horizontal resolution in pixels/mm
1747
1871
  # @option opts [Float] :yres Vertical resolution in pixels/mm
@@ -1750,7 +1874,9 @@ module Vips
1750
1874
  # @option opts [Boolean] :properties Write a properties document to IMAGEDESCRIPTION
1751
1875
  # @option opts [Vips::RegionShrink] :region_shrink Method to shrink regions
1752
1876
  # @option opts [Integer] :level ZSTD compression level
1877
+ # @option opts [Boolean] :subifd Save pyr layers as sub-IFDs
1753
1878
  # @option opts [Boolean] :lossless Enable WEBP lossless mode
1879
+ # @option opts [Vips::ForeignDzDepth] :depth Pyramid depth
1754
1880
  # @option opts [Boolean] :strip Strip all metadata from image
1755
1881
  # @option opts [Array<Double>] :background Background value
1756
1882
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1767,8 +1893,9 @@ module Vips
1767
1893
  # @option opts [Integer] :tile_width Tile width in pixels
1768
1894
  # @option opts [Integer] :tile_height Tile height in pixels
1769
1895
  # @option opts [Boolean] :pyramid Write a pyramidal tiff
1770
- # @option opts [Boolean] :miniswhite Use 0 for white in 1-bit images
1771
1896
  # @option opts [Boolean] :squash Squash images down to 1 bit
1897
+ # @option opts [Boolean] :miniswhite Use 0 for white in 1-bit images
1898
+ # @option opts [Integer] :bitdepth Write as a 1, 2, 4 or 8 bit image
1772
1899
  # @option opts [Vips::ForeignTiffResunit] :resunit Resolution unit
1773
1900
  # @option opts [Float] :xres Horizontal resolution in pixels/mm
1774
1901
  # @option opts [Float] :yres Vertical resolution in pixels/mm
@@ -1777,7 +1904,9 @@ module Vips
1777
1904
  # @option opts [Boolean] :properties Write a properties document to IMAGEDESCRIPTION
1778
1905
  # @option opts [Vips::RegionShrink] :region_shrink Method to shrink regions
1779
1906
  # @option opts [Integer] :level ZSTD compression level
1907
+ # @option opts [Boolean] :subifd Save pyr layers as sub-IFDs
1780
1908
  # @option opts [Boolean] :lossless Enable WEBP lossless mode
1909
+ # @option opts [Vips::ForeignDzDepth] :depth Pyramid depth
1781
1910
  # @option opts [Boolean] :strip Strip all metadata from image
1782
1911
  # @option opts [Array<Double>] :background Background value
1783
1912
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1833,6 +1962,7 @@ module Vips
1833
1962
  # @option opts [Integer] :Q Q factor
1834
1963
  # @option opts [Boolean] :lossless Enable lossless compression
1835
1964
  # @option opts [Vips::ForeignHeifCompression] :compression Compression format
1965
+ # @option opts [Integer] :speed CPU effort
1836
1966
  # @option opts [Boolean] :strip Strip all metadata from image
1837
1967
  # @option opts [Array<Double>] :background Background value
1838
1968
  # @option opts [Integer] :page_height Set page height for multipage save
@@ -1844,11 +1974,25 @@ module Vips
1844
1974
  # @option opts [Integer] :Q Q factor
1845
1975
  # @option opts [Boolean] :lossless Enable lossless compression
1846
1976
  # @option opts [Vips::ForeignHeifCompression] :compression Compression format
1977
+ # @option opts [Integer] :speed CPU effort
1847
1978
  # @option opts [Boolean] :strip Strip all metadata from image
1848
1979
  # @option opts [Array<Double>] :background Background value
1849
1980
  # @option opts [Integer] :page_height Set page height for multipage save
1850
1981
  # @return [VipsBlob] Buffer to save to
1851
1982
 
1983
+ # @!method heifsave_target(target, **opts)
1984
+ # Save image in heif format.
1985
+ # @param target [Vips::Target] Target to save to
1986
+ # @param opts [Hash] Set of options
1987
+ # @option opts [Integer] :Q Q factor
1988
+ # @option opts [Boolean] :lossless Enable lossless compression
1989
+ # @option opts [Vips::ForeignHeifCompression] :compression Compression format
1990
+ # @option opts [Integer] :speed CPU effort
1991
+ # @option opts [Boolean] :strip Strip all metadata from image
1992
+ # @option opts [Array<Double>] :background Background value
1993
+ # @option opts [Integer] :page_height Set page height for multipage save
1994
+ # @return [nil]
1995
+
1852
1996
  # @!method self.thumbnail(filename, width, **opts)
1853
1997
  # Generate thumbnail from file.
1854
1998
  # @param filename [String] Filename to read from
@@ -1991,6 +2135,7 @@ module Vips
1991
2135
  # @option opts [Float] :idx Horizontal input displacement
1992
2136
  # @option opts [Float] :idy Vertical input displacement
1993
2137
  # @option opts [Array<Double>] :background Background value
2138
+ # @option opts [Boolean] :premultiplied Images have premultiplied alpha
1994
2139
  # @option opts [Vips::Extend] :extend How to generate the extra pixels
1995
2140
  # @return [Vips::Image] Output image
1996
2141
 
@@ -2537,7 +2682,7 @@ module Vips
2537
2682
  # @!method merge(sec, direction, dx, dy, **opts)
2538
2683
  # Merge two images.
2539
2684
  # @param sec [Vips::Image] Secondary image
2540
- # @param direction [Vips::Direction] Horizontal or vertcial merge
2685
+ # @param direction [Vips::Direction] Horizontal or vertical merge
2541
2686
  # @param dx [Integer] Horizontal displacement from sec to ref
2542
2687
  # @param dy [Integer] Vertical displacement from sec to ref
2543
2688
  # @param opts [Hash] Set of options
@@ -2547,7 +2692,7 @@ module Vips
2547
2692
  # @!method mosaic(sec, direction, xref, yref, xsec, ysec, **opts)
2548
2693
  # Mosaic two images.
2549
2694
  # @param sec [Vips::Image] Secondary image
2550
- # @param direction [Vips::Direction] Horizontal or vertcial mosaic
2695
+ # @param direction [Vips::Direction] Horizontal or vertical mosaic
2551
2696
  # @param xref [Integer] Position of reference tie-point
2552
2697
  # @param yref [Integer] Position of reference tie-point
2553
2698
  # @param xsec [Integer] Position of secondary tie-point
@@ -2568,7 +2713,7 @@ module Vips
2568
2713
  # @!method mosaic1(sec, direction, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, **opts)
2569
2714
  # First-order mosaic of two images.
2570
2715
  # @param sec [Vips::Image] Secondary image
2571
- # @param direction [Vips::Direction] Horizontal or vertcial mosaic
2716
+ # @param direction [Vips::Direction] Horizontal or vertical mosaic
2572
2717
  # @param xr1 [Integer] Position of first reference tie-point
2573
2718
  # @param yr1 [Integer] Position of first reference tie-point
2574
2719
  # @param xs1 [Integer] Position of first secondary tie-point
@@ -2586,6 +2731,11 @@ module Vips
2586
2731
  # @option opts [Integer] :bandno Band to search for features on
2587
2732
  # @return [Vips::Image] Output image
2588
2733
 
2734
+ # @!method matrixinvert(**opts)
2735
+ # Invert an matrix.
2736
+ # @param opts [Hash] Set of options
2737
+ # @return [Vips::Image] Output matrix
2738
+
2589
2739
  # @!method match(sec, xr1, yr1, xs1, ys1, xr2, yr2, xs2, ys2, **opts)
2590
2740
  # First-order match of two images.
2591
2741
  # @param sec [Vips::Image] Secondary image