rmagick 5.5.0 → 6.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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'