rmagick 5.5.0 → 6.0.1

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.
@@ -288,17 +288,11 @@ DEFINE_GVL_STUB2(WriteImage, const ImageInfo *, Image *);
288
288
  DEFINE_GVL_STUB4(GetImageChannelEntropy, const Image *, const ChannelType, double *, ExceptionInfo *);
289
289
  #endif
290
290
 
291
- #if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
292
291
  DEFINE_GVL_STUB3(RotationalBlurImage, const Image *, const double, ExceptionInfo *);
293
- #else
294
- DEFINE_GVL_STUB3(RadialBlurImage, const Image *, const double, ExceptionInfo *);
295
- #endif
296
292
 
297
293
  #if defined(IMAGEMAGICK_7)
298
- #elif defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
299
- DEFINE_GVL_STUB4(RotationalBlurImageChannel, const Image *, const ChannelType, const double, ExceptionInfo *);
300
294
  #else
301
- DEFINE_GVL_STUB4(RadialBlurImageChannel, const Image *, const ChannelType, const double, ExceptionInfo *);
295
+ DEFINE_GVL_STUB4(RotationalBlurImageChannel, const Image *, const ChannelType, const double, ExceptionInfo *);
302
296
  #endif
303
297
 
304
298
  /**
@@ -2327,6 +2321,7 @@ Image_capture(int argc, VALUE *argv, VALUE self ATTRIBUTE_UNUSED)
2327
2321
  rm_ensure_result(new_image);
2328
2322
 
2329
2323
  rm_set_user_artifact(new_image, image_info);
2324
+ rm_sync_image_options(new_image, image_info);
2330
2325
 
2331
2326
  RB_GC_GUARD(info_obj);
2332
2327
 
@@ -7307,6 +7302,7 @@ Image_from_blob(VALUE klass ATTRIBUTE_UNUSED, VALUE blob_arg)
7307
7302
 
7308
7303
  rm_ensure_result(images);
7309
7304
  rm_set_user_artifact(images, info);
7305
+ rm_sync_image_options(images, info);
7310
7306
 
7311
7307
  RB_GC_GUARD(info_obj);
7312
7308
 
@@ -7963,26 +7959,7 @@ Image_gray_q(VALUE self)
7963
7959
  #if defined(HAVE_SETIMAGEGRAY)
7964
7960
  return has_attribute(self, (MagickBooleanType (*)(const Image *, ExceptionInfo *))SetImageGray);
7965
7961
  #else
7966
- #if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
7967
7962
  return has_attribute(self, IsGrayImage);
7968
- #else
7969
- // For ImageMagick 6.7
7970
- Image *image;
7971
- ColorspaceType colorspace;
7972
- VALUE ret;
7973
-
7974
- image = rm_check_destroyed(self);
7975
- colorspace = image->colorspace;
7976
- if (image->colorspace == sRGBColorspace || image->colorspace == TransparentColorspace) {
7977
- // Workaround
7978
- // If image colorspace has non-RGBColorspace, IsGrayImage() always return false.
7979
- image->colorspace = RGBColorspace;
7980
- }
7981
-
7982
- ret = has_attribute(self, IsGrayImage);
7983
- image->colorspace = colorspace;
7984
- return ret;
7985
- #endif
7986
7963
  #endif
7987
7964
  }
7988
7965
 
@@ -9931,6 +9908,8 @@ Image_initialize(int argc, VALUE *argv, VALUE self)
9931
9908
  CALL_FUNC_WITHOUT_GVL(GVL_FUNC(SetImageExtent), &args);
9932
9909
  #endif
9933
9910
 
9911
+ rm_sync_image_options(image, info);
9912
+
9934
9913
  // If the caller did not supply a fill argument, call SetImageBackgroundColor
9935
9914
  // to fill the image using the background color. The background color can
9936
9915
  // be set by specifying it when creating the Info parm block.
@@ -10671,11 +10650,11 @@ Image_pixel_color(int argc, VALUE *argv, VALUE self)
10671
10650
  DestroyExceptionInfo(exception);
10672
10651
 
10673
10652
  #if defined(IMAGEMAGICK_7)
10674
- old_color.red = GetPixelRed(image, old_pixel);
10675
- old_color.green = GetPixelGreen(image, old_pixel);
10676
- old_color.blue = GetPixelBlue(image, old_pixel);
10677
- old_color.alpha = GetPixelAlpha(image, old_pixel);
10678
- old_color.black = GetPixelBlack(image, old_pixel);
10653
+ old_color.red = GetPixelRed(image, old_pixel) + 0.5;
10654
+ old_color.green = GetPixelGreen(image, old_pixel) + 0.5;
10655
+ old_color.blue = GetPixelBlue(image, old_pixel) + 0.5;
10656
+ old_color.alpha = GetPixelAlpha(image, old_pixel) + 0.5;
10657
+ old_color.black = GetPixelBlack(image, old_pixel) + 0.5;
10679
10658
  return Pixel_from_PixelPacket(&old_color);
10680
10659
  #else
10681
10660
  old_color = *old_pixel;
@@ -10750,11 +10729,11 @@ Image_pixel_color(int argc, VALUE *argv, VALUE self)
10750
10729
  if (pixel)
10751
10730
  {
10752
10731
  #if defined(IMAGEMAGICK_7)
10753
- old_color.red = GetPixelRed(image, pixel);
10754
- old_color.green = GetPixelGreen(image, pixel);
10755
- old_color.blue = GetPixelBlue(image, pixel);
10756
- old_color.alpha = GetPixelAlpha(image, pixel);
10757
- old_color.black = GetPixelBlack(image, pixel);
10732
+ old_color.red = GetPixelRed(image, pixel) + 0.5;
10733
+ old_color.green = GetPixelGreen(image, pixel) + 0.5;
10734
+ old_color.blue = GetPixelBlue(image, pixel) + 0.5;
10735
+ old_color.alpha = GetPixelAlpha(image, pixel) + 0.5;
10736
+ old_color.black = GetPixelBlack(image, pixel) + 0.5;
10758
10737
 
10759
10738
  SetPixelRed(image, new_color.red, pixel);
10760
10739
  SetPixelGreen(image, new_color.green, pixel);
@@ -11185,11 +11164,9 @@ Image_quantum_operator(int argc, VALUE *argv, VALUE self)
11185
11164
  case SumQuantumOperator:
11186
11165
  qop = SumEvaluateOperator;
11187
11166
  break;
11188
- #if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
11189
11167
  case RootMeanSquareQuantumOperator:
11190
11168
  qop = RootMeanSquareEvaluateOperator;
11191
11169
  break;
11192
- #endif
11193
11170
  }
11194
11171
 
11195
11172
  exception = AcquireExceptionInfo();
@@ -11307,15 +11284,9 @@ Image_radial_blur(VALUE self, VALUE angle_obj)
11307
11284
  image = rm_check_destroyed(self);
11308
11285
  exception = AcquireExceptionInfo();
11309
11286
 
11310
- #if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
11311
11287
  GVL_STRUCT_TYPE(RotationalBlurImage) args = { image, angle, exception };
11312
11288
  void *ret = CALL_FUNC_WITHOUT_GVL(GVL_FUNC(RotationalBlurImage), &args);
11313
11289
  new_image = reinterpret_cast<decltype(new_image)>(ret);
11314
- #else
11315
- GVL_STRUCT_TYPE(RadialBlurImage) args = { image, angle, exception };
11316
- void *ret = CALL_FUNC_WITHOUT_GVL(GVL_FUNC(RadialBlurImage), &args);
11317
- new_image = reinterpret_cast<decltype(new_image)>(ret);
11318
- #endif
11319
11290
  rm_check_exception(exception, new_image, DestroyOnError);
11320
11291
  DestroyExceptionInfo(exception);
11321
11292
 
@@ -11366,12 +11337,9 @@ Image_radial_blur_channel(int argc, VALUE *argv, VALUE self)
11366
11337
  new_image = (Image *)CALL_FUNC_WITHOUT_GVL(GVL_FUNC(RotationalBlurImage), &args);
11367
11338
  CHANGE_RESULT_CHANNEL_MASK(new_image);
11368
11339
  END_CHANNEL_MASK(image);
11369
- #elif defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
11340
+ #else
11370
11341
  GVL_STRUCT_TYPE(RotationalBlurImageChannel) args = { image, channels, angle, exception };
11371
11342
  new_image = (Image *)CALL_FUNC_WITHOUT_GVL(GVL_FUNC(RotationalBlurImageChannel), &args);
11372
- #else
11373
- GVL_STRUCT_TYPE(RadialBlurImageChannel) args = { image, channels, angle, exception };
11374
- new_image = (Image *)CALL_FUNC_WITHOUT_GVL(GVL_FUNC(RadialBlurImageChannel), &args);
11375
11343
  #endif
11376
11344
  rm_check_exception(exception, new_image, DestroyOnError);
11377
11345
  DestroyExceptionInfo(exception);
@@ -11630,9 +11598,11 @@ rd_image(VALUE klass ATTRIBUTE_UNUSED, VALUE file, gvl_function_t fp)
11630
11598
  #endif
11631
11599
 
11632
11600
  rm_check_exception(exception, images, DestroyOnError);
11633
- rm_set_user_artifact(images, info);
11634
11601
  DestroyExceptionInfo(exception);
11635
11602
 
11603
+ rm_set_user_artifact(images, info);
11604
+ rm_sync_image_options(images, info);
11605
+
11636
11606
  RB_GC_GUARD(info_obj);
11637
11607
 
11638
11608
  return array_from_images(images);
@@ -11774,9 +11744,10 @@ Image_read_inline(VALUE self ATTRIBUTE_UNUSED, VALUE content)
11774
11744
  magick_free((void *)blob);
11775
11745
 
11776
11746
  rm_check_exception(exception, images, DestroyOnError);
11777
-
11778
11747
  DestroyExceptionInfo(exception);
11748
+
11779
11749
  rm_set_user_artifact(images, info);
11750
+ rm_sync_image_options(images, info);
11780
11751
 
11781
11752
  RB_GC_GUARD(info_obj);
11782
11753
 
@@ -14,7 +14,7 @@
14
14
  #define MAIN // Define external variables
15
15
  #include "rmagick.h"
16
16
 
17
- #if defined(HAVE_SETMAGICKALIGNEDMEMORYMETHODS) && defined(HAVE_RB_GC_ADJUST_MEMORY_USAGE)
17
+ #if defined(HAVE_SETMAGICKALIGNEDMEMORYMETHODS)
18
18
  #if defined(HAVE_POSIX_MEMALIGN) || defined(HAVE__ALIGNED_MSIZE)
19
19
  #define USE_RM_ALIGNED_MALLOC 1
20
20
 
@@ -1019,10 +1019,8 @@ Init_RMagick2(void)
1019
1019
  ENUMERATOR(ShapeAlphaChannel)
1020
1020
  ENUMERATOR(TransparentAlphaChannel)
1021
1021
  ENUMERATOR(BackgroundAlphaChannel)
1022
- #if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
1023
1022
  ENUMERATOR(AssociateAlphaChannel)
1024
1023
  ENUMERATOR(DisassociateAlphaChannel)
1025
- #endif
1026
1024
  #if defined(IMAGEMAGICK_7)
1027
1025
  ENUMERATOR(OnAlphaChannel)
1028
1026
  ENUMERATOR(OffAlphaChannel)
@@ -1052,7 +1050,12 @@ Init_RMagick2(void)
1052
1050
  ENUMERATOR(BlackChannel)
1053
1051
  ENUMERATOR(IndexChannel)
1054
1052
  ENUMERATOR(GrayChannel)
1053
+ ENUMERATOR(CompositeChannels)
1055
1054
  ENUMERATOR(AllChannels)
1055
+ ENUMERATOR(TrueAlphaChannel)
1056
+ ENUMERATOR(RGBChannels)
1057
+ ENUMERATOR(GrayChannels)
1058
+ ENUMERATOR(SyncChannels)
1056
1059
  ENUMERATORV(AlphaChannel, OpacityChannel)
1057
1060
  ENUMERATORV(DefaultChannels, 0xff & ~OpacityChannel)
1058
1061
  ENUMERATORV(HueChannel, RedChannel)
@@ -1090,7 +1093,6 @@ Init_RMagick2(void)
1090
1093
  ENUMERATOR(Rec709YCbCrColorspace)
1091
1094
  ENUMERATOR(LogColorspace)
1092
1095
  ENUMERATOR(CMYColorspace)
1093
- #if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
1094
1096
  ENUMERATOR(LuvColorspace)
1095
1097
  ENUMERATOR(HCLColorspace)
1096
1098
  ENUMERATOR(LCHColorspace)
@@ -1103,7 +1105,6 @@ Init_RMagick2(void)
1103
1105
  ENUMERATOR(HCLpColorspace)
1104
1106
  ENUMERATOR(YDbDrColorspace)
1105
1107
  ENUMERATORV(XyYColorspace, xyYColorspace)
1106
- #endif
1107
1108
  #if defined(IMAGEMAGICK_7)
1108
1109
  #if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_7_0_8)
1109
1110
  ENUMERATOR(LinearGRAYColorspace)
@@ -1196,9 +1197,7 @@ Init_RMagick2(void)
1196
1197
  ENUMERATOR(UndefinedCompositeOp)
1197
1198
  ENUMERATOR(VividLightCompositeOp)
1198
1199
  ENUMERATOR(XorCompositeOp)
1199
- #if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
1200
1200
  ENUMERATOR(HardMixCompositeOp)
1201
- #endif
1202
1201
  #if defined(IMAGEMAGICK_7)
1203
1202
  ENUMERATOR(CopyAlphaCompositeOp)
1204
1203
  #else
@@ -1242,6 +1241,7 @@ Init_RMagick2(void)
1242
1241
 
1243
1242
  // DisposeType constants
1244
1243
  DEF_ENUM(DisposeType)
1244
+ ENUMERATOR(UnrecognizedDispose)
1245
1245
  ENUMERATOR(UndefinedDispose)
1246
1246
  ENUMERATOR(BackgroundDispose)
1247
1247
  ENUMERATOR(NoneDispose)
@@ -1318,9 +1318,7 @@ Init_RMagick2(void)
1318
1318
  ENUMERATOR(RobidouxSharpFilter)
1319
1319
  ENUMERATOR(CosineFilter)
1320
1320
  ENUMERATOR(SplineFilter)
1321
- #if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
1322
1321
  ENUMERATOR(LanczosRadiusFilter)
1323
- #endif
1324
1322
  ENUMERATORV(WelchFilter, WelshFilter)
1325
1323
  ENUMERATORV(HannFilter, HanningFilter)
1326
1324
  END_ENUM
@@ -1412,9 +1410,7 @@ Init_RMagick2(void)
1412
1410
  ENUMERATOR(RootMeanSquaredErrorMetric)
1413
1411
  ENUMERATOR(NormalizedCrossCorrelationErrorMetric)
1414
1412
  ENUMERATOR(FuzzErrorMetric)
1415
- #if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
1416
1413
  ENUMERATOR(PerceptualHashErrorMetric)
1417
- #endif
1418
1414
  #if defined(IMAGEMAGICK_7)
1419
1415
  ENUMERATOR(UndefinedErrorMetric)
1420
1416
  ENUMERATOR(MeanErrorPerPixelErrorMetric)
@@ -1546,9 +1542,7 @@ Init_RMagick2(void)
1546
1542
  ENUMERATOR(ExponentialQuantumOperator)
1547
1543
  ENUMERATOR(MedianQuantumOperator)
1548
1544
  ENUMERATOR(SumQuantumOperator)
1549
- #if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
1550
1545
  ENUMERATOR(RootMeanSquareQuantumOperator)
1551
- #endif
1552
1546
  END_ENUM
1553
1547
 
1554
1548
  // RenderingIntent
@@ -1673,9 +1667,7 @@ Init_RMagick2(void)
1673
1667
  ENUMERATOR(CorrelateNormalizeValue)
1674
1668
  ENUMERATOR(AreaValue)
1675
1669
  ENUMERATOR(DecimalValue)
1676
- #if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
1677
1670
  ENUMERATOR(SeparatorValue)
1678
- #endif
1679
1671
  ENUMERATOR(AllValues)
1680
1672
  END_ENUM
1681
1673
 
@@ -1744,9 +1736,7 @@ Init_RMagick2(void)
1744
1736
  ENUMERATOR(OctagonalKernel)
1745
1737
  ENUMERATOR(EuclideanKernel)
1746
1738
  ENUMERATOR(UserDefinedKernel)
1747
- #if defined(IMAGEMAGICK_GREATER_THAN_EQUAL_6_8_9)
1748
1739
  ENUMERATOR(BinomialKernel)
1749
- #endif
1750
1740
  END_ENUM
1751
1741
 
1752
1742
  /*-----------------------------------------------------------------------*/
@@ -1822,25 +1812,20 @@ Init_RMagick2(void)
1822
1812
  * were compiled with.
1823
1813
  *
1824
1814
  * No Ruby usage (internal function)
1825
- *
1826
- * Notes:
1827
- * - Bypass the test by defining the constant RMAGICK_BYPASS_VERSION_TEST to
1828
- * 'true' at the top level, before requiring 'rmagick'
1829
1815
  */
1830
1816
  static void
1831
1817
  test_Magick_version(void)
1832
1818
  {
1833
1819
  size_t version_number;
1834
1820
  const char *version_str;
1835
- ID bypass = rb_intern("RMAGICK_BYPASS_VERSION_TEST");
1836
1821
 
1837
- if (RTEST(rb_const_defined(rb_cObject, bypass)) && RTEST(rb_const_get(rb_cObject, bypass)))
1838
- {
1839
- return;
1840
- }
1822
+ /* ImageMagick versions are defined as major, minor and patch, each of which are defined as a value in 1 byte. */
1823
+ /* ImageMagick 6.9.12 has `#define MagickLibVersion 0x69C` */
1824
+ /* It use only major and minor versions. */
1825
+ size_t mask_major_minor_version = 0xFFFFFFF0;
1841
1826
 
1842
1827
  version_str = GetMagickVersion(&version_number);
1843
- if (version_number != MagickLibVersion)
1828
+ if ((version_number & mask_major_minor_version) != (MagickLibVersion & mask_major_minor_version))
1844
1829
  {
1845
1830
  int n, x;
1846
1831
 
@@ -1191,7 +1191,7 @@ rm_set_magick_pixel_packet(Pixel *pixel, MagickPixel *pp)
1191
1191
  /**
1192
1192
  * Return the color name corresponding to the pixel values.
1193
1193
  *
1194
- * @overload to_color(compliance = Magick::AllCompliance, alpha = false, depth = Magick::MAGICKCORE_QUANTUM_DEPTH, hex = false)
1194
+ * @overload to_color(compliance = Magick::AllCompliance, alpha = false, depth = Magick::MAGICKCORE_QUANTUM_DEPTH, hex = true)
1195
1195
  * @param compliance [Magick::ComplianceType] A ComplianceType constant
1196
1196
  * @param alpha [Boolean] If false, the pixel's alpha attribute is ignored
1197
1197
  * @param depth [Numeric] An image depth
@@ -1205,7 +1205,7 @@ Pixel_to_color(int argc, VALUE *argv, VALUE self)
1205
1205
  Image *image;
1206
1206
  Pixel *pixel;
1207
1207
  MagickPixel mpp;
1208
- MagickBooleanType hex = MagickFalse;
1208
+ MagickBooleanType hex = MagickTrue;
1209
1209
  char name[MaxTextExtent];
1210
1210
  ExceptionInfo *exception;
1211
1211
  ComplianceType compliance = AllCompliance;
@@ -21,6 +21,11 @@
21
21
  static VALUE rescue_not_str(VALUE, VALUE ATTRIBUTE_UNUSED) ATTRIBUTE_NORETURN;
22
22
  static void handle_exception(ExceptionInfo *, Image *, ErrorRetention);
23
23
 
24
+ #if defined(IMAGEMAGICK_7)
25
+ DEFINE_GVL_STUB3(TransformImageColorspace, Image *, const ColorspaceType, ExceptionInfo *);
26
+ #else
27
+ DEFINE_GVL_STUB2(TransformImageColorspace, Image *, const ColorspaceType);
28
+ #endif
24
29
 
25
30
  DEFINE_GVL_STUB5(CloneImage, const Image *, const size_t, const size_t, const MagickBooleanType, ExceptionInfo *);
26
31
 
@@ -367,7 +372,6 @@ double
367
372
  rm_percentage2(VALUE arg, double max, bool only_positive)
368
373
  {
369
374
  double pct;
370
- char *end;
371
375
 
372
376
  if (!rm_check_num2dbl(arg))
373
377
  {
@@ -590,23 +594,27 @@ rm_cur_image(VALUE img)
590
594
  VALUE
591
595
  rm_pixelcolor_to_color_name(Image *image, PixelColor *color)
592
596
  {
593
- PixelColor pp;
594
- char name[MaxTextExtent];
595
- ExceptionInfo *exception;
597
+ MagickPixel mpp;
598
+ char tuple[MaxTextExtent];
596
599
 
597
- exception = AcquireExceptionInfo();
598
-
599
- pp = *color;
600
600
  #if defined(IMAGEMAGICK_7)
601
- pp.depth = MAGICKCORE_QUANTUM_DEPTH;
602
- pp.colorspace = image->colorspace;
601
+ mpp = *color;
602
+ mpp.alpha_trait = BlendPixelTrait;
603
+ mpp.colorspace = image->colorspace;
604
+ #else
605
+ rm_init_magickpixel(image, &mpp);
606
+ mpp.red = GetPixelRed(color);
607
+ mpp.green = GetPixelGreen(color);
608
+ mpp.blue = GetPixelBlue(color);
609
+ mpp.opacity = GetPixelOpacity(color);
610
+ mpp.index = (MagickRealType) 0.0;
611
+ mpp.matte = MagickTrue;
603
612
  #endif
613
+ mpp.depth = image->depth;
604
614
 
605
- QueryColorname(image, &pp, X11Compliance, name, exception);
606
- CHECK_EXCEPTION();
607
- DestroyExceptionInfo(exception);
615
+ GetColorTuple(&mpp, MagickTrue, tuple);
608
616
 
609
- return rb_str_new2(name);
617
+ return rb_str_new2(tuple);
610
618
  }
611
619
 
612
620
 
@@ -1057,13 +1065,14 @@ void rm_sync_image_options(Image *image, Info *info)
1057
1065
  {
1058
1066
  #if defined(IMAGEMAGICK_7)
1059
1067
  exception = AcquireExceptionInfo();
1060
- SetImageColorspace(image, info->colorspace, exception);
1061
- // We should not throw an exception in this method because we will
1062
- // leak memory in the place where this method is called. And that is
1063
- // why the exception is being ignored here.
1068
+ GVL_STRUCT_TYPE(TransformImageColorspace) args = { image, info->colorspace, exception };
1069
+ CALL_FUNC_WITHOUT_GVL(GVL_FUNC(TransformImageColorspace), &args);
1070
+ CHECK_EXCEPTION();
1064
1071
  DestroyExceptionInfo(exception);
1065
1072
  #else
1066
- SetImageColorspace(image, info->colorspace);
1073
+ GVL_STRUCT_TYPE(TransformImageColorspace) args = { image, info->colorspace };
1074
+ CALL_FUNC_WITHOUT_GVL(GVL_FUNC(TransformImageColorspace), &args);
1075
+ rm_check_image_exception(image, RetainOnError);
1067
1076
  #endif
1068
1077
  }
1069
1078
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Magick
4
- VERSION = '5.5.0'
5
- MIN_RUBY_VERSION = '2.3.0'
6
- MIN_IM_VERSION = '6.7.7'
4
+ VERSION = '6.0.1'
5
+ MIN_RUBY_VERSION = '3.0.0'
6
+ MIN_IM_VERSION = '6.8.9'
7
7
  end
data/lib/rmagick.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rmagick_internal.rb'
3
+ require 'rmagick_internal'