ImageMagick-6.9.3-0差分

ImageMagick-6.9.2-10差分 - yoyaのメモの続き

The latest release of ImageMagick is version 6.9.3-0

まとめ

  • 16ビットpnmの最大値を 65535 に。
    • ケアレスミスで 16ビットの時に最大値が 4294967295 (32ビット相当)だった。
  • 欧州式表現の数字が途中で改行しないように
  • strip で削除する PNG Chunk 対象を増やした。追加分 (cHRM,gAMA)
    • ちなみに今までは (EXIF,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date)
  • ComplexText 対応 (アラビア語とかの右横書き)
    • 入ったばかりだし ChangeLog に書いてないので動作するかは不明。
  • MagickCore API の DrawAllocateWand は廃止で AcquireDrawingWand 推奨

差分

  • 16bit pnm 画像は
  • 16-bit pnm images have a max value of 65535.
    • coders/pnm.c
      • ケアレスミスで 16ビットの時に最大値を 32ビット相当にしていたっぽい。
        if (image->depth <= 8)
          (void) WriteBlobString(image,"255\n");
	else
<          if (image->depth <= 8)
>          if (image->depth <= 16)
            (void) WriteBlobString(image,"65535\n");
          else
            (void) WriteBlobString(image,"4294967295\n");

ChangeLogにない差分

  • Magick++/lib/Magick++/Include.h
    • API メソッド名変更
>   using MagickCore::AcquireDrawingWand;
1118d1118
<   using MagickCore::DrawAllocateWand;
<   ${MAKE} -f Makefile.aperl CC='g++' TEST_VERBOSE=1 test
---
>   ${MAKE} -f Makefile.aperl CC='gcc' TEST_VERBOSE=1 test
48c48
<   ${MAKE} CC='g++' TEST_VERBOSE=1 test
---
>   ${MAKE} CC='gcc' TEST_VERBOSE=1 test
  • coders/tiff.c
    • depth 1 の時にモノクロ設定するのを間違えて depth=0 を処理していたのを修正(?)
>   (void) SetImageType(image,BilevelType);
>   (void) SetImageDepth(image,1);
<略>
>         (void) SetImageDepth(image,1);
<略>
<                 if ((image_info->depth == 0) && (image->matte == MagickFalse) &&
<                     (SetImageMonochrome(image,&image->exception) != MagickFalse))
<                   {
<                     status=SetQuantumDepth(image,quantum_info,1);
<                     if (status == MagickFalse)
<                       ThrowWriterException(ResourceLimitError,
<                         "MemoryAllocationFailed");
<                   }
---
>                 if ((image->depth == 1) && (image->matte == MagickFalse))
>                   SetImageMonochrome(image,&image->exception);
  • magick/annotate.c
    • raqm glyph 導入
> #if defined(MAGICKCORE_CTL_DELEGATE)
> #include <raqm.h>
> #else
> typedef struct _raqm_glyph_info_t
> {
>   int
>     index,
>     x_offset,
>     x_advance,
>     y_offset;
>
>   unsigned int
>     cluster;
> } raqm_glyph_info_t;
>
> typedef enum
> {
>   RAQM_DIRECTION_DEFAULT,
>   RAQM_DIRECTION_RTL,
>   RAQM_DIRECTION_LTR
> } raqm_direction_t;
> #endif
>   const FT_Face face,const raqm_direction_t direction,const FT_Int32 flags,
>   raqm_glyph_info_t **grapheme)
> {
> #if defined(MAGICKCORE_CTL_DELEGATE)
>   return((size_t) raqm_shape(text,length,face,direction,&grapheme));
  • magick/image.c
    • 絵のループで depth が昇順になるように(?)
>   depth=images->depth;
<略>
>     if (next->depth > depth)
>       depth=next->depth;
<略>
>   append_image->depth=depth;
-- StripImage で PNG chunk の除外処理プロファイルが増えた
>|c|
  status=SetImageArtifact(image,"png:exclude-chunk",
<     "EXIF,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date");
>     "cHRM,EXIF,gAMA,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date");
  • /magick/vision.c
    • _CCObject を _CCObjectInfo に改名
< typedef struct _CCObject
> typedef struct _CCObjectInfo
    • artifact に connected-components:keep 追加
>   artifact=GetImageArtifact(image,"connected-components:keep");
>   if (artifact != (const char *) NULL)
>     {
>       /*
>         Keep these objects (make others transparent).
>       */
  • wand/deprecate.c
    • DrawAllocateWand を DEPLICATE 対象に

> WandExport DrawingWand *DrawAllocateWand(const DrawInfo *draw_info,Image *image)
> {
> return(AcquireDrawingWand(draw_info,image));
> }

  • wand/drawing-wand.c
    • 関数名変更
<   MvgPrintf(DrawingWand *,const char *,...) wand_attribute((format
---
>   MVGPrintf(DrawingWand *,const char *,...) wand_attribute((format

ChangeLog

2016-01-01  6.9.3-0 Cristy  <quetzlzacatenango@image...>
  * New version 6.9.3-0, GIT revision 10445:620328b:20160101.

2015-12-31  6.9.3-0 Cristy  <quetzlzacatenango@image...>
  * Don't break on euro-style numbers (reference
    http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=28910).

2015-12-22  6.9.3-0 Glenn Randers-Pehrson <glennrp@image...>
  * 16-bit pnm images have a max value of 65535.