ImageMagick-6.9.10-26差分

ImageMagick-6.9.10-26差分

http://www.imagemagick.org/script/download.php
The latest release of ImageMagick is version 6.9.10-26

7 系同時リリースは ImageMagick-7.0.8-26

まとめ

  • issue の解決
気になる事
  • BMP形式の ICCプロファイル書き込み対応した。(というか僕がコミットした)
  • libwebp 0.6.0 から -define webp:use-sharp-yuv=1 が使える。はずがミスってて実際は動かない。

差分

ChangeLog にない差分

  • coders/bmp.c
    • BMPICC プロファイル出力対応
1646a1647
>     profile_data,
>     profile_size,
>     profile_size_pad;
>
2197a2203,2213
>     profile_data=0;
>     profile_size=0;
>     profile_size_pad=0;
>     if (profile) {
>       profile_data=(MagickOffsetType) bmp_info.file_size-14;  /* from head of BMP info header */
>       profile_size=(MagickOffsetType) GetStringInfoLength(profile);
>       if (profile_size%4) {
>         profile_size_pad=4-(profile_size%4);
>       }
>       bmp_info.file_size+=profile_size+profile_size_pad;
>     }
2239a2256,2258
>         if (profile) {
>           (void) WriteBlobLSBLong(image,0x4D424544U);  /* PROFILE_EMBEDDED */
>         } else {
2240a2260
>         }
2303,2304c2323,2325
<             (void) WriteBlobLSBLong(image,0x00);  /* dummy profile data */
<             (void) WriteBlobLSBLong(image,0x00);  /* dummy profile length */
---
>             (void) WriteBlobLSBLong(image,(unsigned int) profile_data);
>             (void) WriteBlobLSBLong(image,(unsigned int) (profile_size+
>               profile_size_pad));
2354a2376,2385
>     if (profile) {
>       if (image->debug != MagickFalse)
>         (void) LogMagickEvent(CoderEvent,GetMagickModule(),
>           "  Profile:  %g bytes",(double) profile_size+profile_size_pad);
>       (void) WriteBlob(image,(size_t) profile_size,GetStringInfoDatum(profile));
>       if (profile_size_pad) {  /* padding for 4 bytes multiple */
>         (void) WriteBlob(image,(size_t) profile_size_pad,(unsigned char *)
>           "\0\0\0");
>       }
>     }
3784c3784,3791
<                (void) SetImageProperty(image,text[i].key,value);
---
>               {
>                 char
>                   key[MaxTextExtent];
>
>                 (void) FormatLocaleString(key,MaxTextExtent,"png:%s",
>                   text[i].key);
>                 (void) SetImageProperty(image,key,value);
>               }
(略)
3854c3910
<   value=strtol(point,&p,10);
---
>   value=(ssize_t) strtol(point,&p,10);
(略)
268a274,356
> static Image *RenderSVGImage(const ImageInfo *image_info,Image *image,
>   ExceptionInfo *exception)
  • coders/tiff.c
    • WRITE 処理での PHOTOMETRIC_SEPARATED の考慮漏れの修正
3652a3653
>              (photometric == PHOTOMETRIC_SEPARATED) ||
3674a3676
>              (photometric == PHOTOMETRIC_SEPARATED) ||
3688a3691
>              (photometric == PHOTOMETRIC_SEPARATED) ||
3699a3703
>              (photometric == PHOTOMETRIC_SEPARATED) ||
3714a3719
>              (photometric == PHOTOMETRIC_SEPARATED) ||
  • coders/webp.c
    • libweb-0.6.0 から追加された use_sharp_yuv を使えるようにするはずが。。。
      • 現状 DECODER_ABI は最新が 0208 だし、RGB=>YUV の encode 機能なので ENCODER_ABI (こちらは 0.6.0 から 020e)と間違えてるっぽい。あとで修正PR送っとく。
735a736,740
> #if WEBP_DECODER_ABI_VERSION >= 0x020e
>   value=GetImageOption(image_info,"webp:use-sharp-yuv");
>   if (value != (char *) NULL)
>     configure.use_sharp_yuv=StringToInteger(value);
  • magick/constitute.c
    • ReadImage で scene geometry なのに "%d-%d" 形式になってない場合だけ CloneImages で作り直す。
636a637,641
>       int
>         first_scene,
>         last_scene,
>         n;
>
639a645,647
>       n=sscanf(read_info->scenes,"%d-%d",&first_scene,&last_scene);
>       if (n != 2)
>         {
643c651,652
<           "SubimageSpecificationReturnsNoImages","`%s'",read_info->filename);
---
>               "SubimageSpecificationReturnsNoImages","`%s'",
>               read_info->filename);
649a659
>     }
diff -rBw ImageMagick-6.9.10-25/magick/draw.c ImageMagick-6.9.10-26/magick/draw.c
2462c2462
<         return(status == 0 ? MagickFalse : MagickTrue);
---
>         return(status);
  • magick/draw.c
    • シンプルにした。
2462c2462
<         return(status == 0 ? MagickFalse : MagickTrue);
---
>         return(status);
  • magick/locale.c
    • リファイン。nt-base.h とも絡む。
288d287
< #if defined(MAGICKCORE_HAVE_NEWLOCALE)
291,294d289
< #elif defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__MINGW32__)
<   if (c_locale != (locale_t) NULL)
<     _free_locale(c_locale);
< #endif
1529,1530c1524,1525
<   if (c_locale == (locale_t) NULL)
<     return(tolower(c));
---
> #if defined(MAGICKCORE_LOCALE_SUPPORT)
>   if (c_locale != (locale_t) NULL)
1531a1527,1528
> #endif
>   return(tolower(c));
1665,1666c1662,1663
<   if (c_locale == (locale_t) NULL)
<     return(toupper(c));
---
> #if defined(MAGICKCORE_LOCALE_SUPPORT)
>   if (c_locale != (locale_t) NULL)
1667a1665,1666
> #endif
>   return(toupper(c));
  • magick/nt-base.h
    • Windows 用に define で freelocale に統一。
103a104,106
> #if !defined(freelocale)
> #  define freelocale  _free_locale
> #endif
  • magick/pixel-accessor.h
    • キャスト
114c114
<     return(0);
---
>     return((Quantum) 0);

ChangeLog

2019-02-03  6.9.10-27 Cristy  <quetzlzacatenango@image...>
  * Release ImageMagick version 6.9.10-27, GIT revision 14180:153da6bd6:20190203

2019-02-02  6.9.10-26 Cristy  <quetzlzacatenango@image...>
  * Fixed a number of issues (reference
    https://github.com/ImageMagick/ImageMagick/issues).