ImageMagick-6.9.9-44差分

ImageMagick-6.9.9-43差分 - yoyaのメモの続き

The latest release of ImageMagick is version 6.9.9-44

まとめ

  • HEIC 出力対応
    • 6.9.9-34 の HEIC 対応は削除して新しく libheif を利用する形で作り直されました。
  • draw 命令でのメモリ省エネ
  • 高速化。0 or ほぼ0の係数を渡した時に処理をスキップ
気になる事

差分

  • 多くの修正。初期化変数の利用。整数オーバーフロウ、メモリ溢れ、タイムアウト。(OSS Fuzz の寄与)
ChangeLogにない差分
  • coders/heic.c
> static MagickBooleanType WriteHEICImage(const ImageInfo *image_info,Image *image,
  • coders/pnm.c
    • コメントを長さつきで渡す引数を追加
> typedef struct _CommentInfo
> {
>   char
>     *comment;
>
>   size_t
>     extent;
> } CommentInfo;
140c152
< static int PNMComment(Image *image)
---
> static int PNMComment(Image *image,CommentInfo *comment_info)
  • magick/cache.c
    • Alpha マスク値が殆ど0の時に、RGB マスク処理を省略
>     if (fabs(mask_alpha) >= MagickEpsilon)
>       {
>         SetPixelRed(q,mask_alpha*MagickOver_((MagickRealType) p->red,
>           (MagickRealType) GetPixelOpacity(p),(MagickRealType) q->red,
>           (MagickRealType) GetPixelOpacity(q)));
>         SetPixelGreen(q,mask_alpha*MagickOver_((MagickRealType) p->green,
>           (MagickRealType) GetPixelOpacity(p),(MagickRealType) q->green,
>           (MagickRealType) GetPixelOpacity(q)));
>         SetPixelBlue(q,mask_alpha*MagickOver_((MagickRealType) p->blue,
>           (MagickRealType) GetPixelOpacity(p),(MagickRealType) q->blue,
>           (MagickRealType) GetPixelOpacity(q)));
  • magick/draw.c
    • draw 命令の格納テーブルサイズをへらす。(無条件で 65536 x primitive_info 構造体のメモリを確保してた)
<   number_points=65536;
---
>   number_points=4096

ChangeLog

(該当行無し)