ImageMagick-6.9.6-6差分
ImageMagick-6.9.6-5差分 - yoyaのメモの続き
The latest release of ImageMagick is version 6.9.6-6
- 7 系同時リリースは ImageMagick-7.0.3-8
まとめ
差分
- 良い line break が見つからない場合、caption にそれを当てはめる。
- 標準偏差の計算で Off by 1 (境界判定で1つずれる)の間違い
- Debian パッチを適用
- EPT 画像を TIFF 又は EPS の片方だけ扱う。
- -clone オプションでもうメモリリークしないように。
ChangeLog の分
- magick/annotate.c
602a603 > width=0; 647a649,703 > if (width > image->columns) > { > char > *text; > > /* > No convenient break point, force one. > */ > text=AcquireString(draw_info->text); <大量に>
- coders/ept.c
218c218 < if (offset < 30) --- > if ((ept_info.tiff_length != 0) && (offset < 30)) 225c225 < if (offset < 30) --- > if ((ept_info.postscript_length != 0) && (offset < 30))
- magick/draw.c
1442c1442,1443 < clone_info->clip_mask=(char *) NULL; --- > if (clone_info->clip_mask != (char *) NULL) > clone_info->clip_mask=DestroyString(clone_info->clip_mask);
これはこれで NULL を入れなくなったので、ワイルドポインタの危険性が追加されたような?
ChangeLogにない差分
251c251 < @for dir in $(DOCDIRS) ; do \ --- > for dir in $(DOCDIRS) ; do \ 258,261c258,263 < for file in $$docsrcdir/*.* ; do \ < echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$$dir" ; \ < $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$$dir ; \ < done ; \ --- > if test -d $$docsrcdir; then \ > for file in $$docsrcdir/*.* ; do \ > echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$$dir" ; \ > $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$$dir ; \ > done ; \ > fi; \
- coders/rle.c
230c230 < if (map_length >= 32) --- > if (map_length >= 22)
- coders/sgi.c
337a338,339 > if ((iris_info.dimension == 0) || (iris_info.dimension > 3)) > ThrowReaderException(CorruptImageError,"ImproperImageHeader"); 360a363 > image->matte=iris_info.depth == 4 ? MagickTrue : MagickFalse; 553,558d555 < /* < Initialize image structure. < */ < image->matte=iris_info.depth == 4 ? MagickTrue : MagickFalse; < image->columns=iris_info.columns; < image->rows=iris_info.rows;
- config/config.h.in
- readdir_r の有無を configure で吸収
396,398d395 < /* Define to 1 if you have the `readdir_r' function. */ < #undef HAVE_READDIR_R <
magick/cache.c
1699d1698 < assert(cache_info->opencl != (OpenCLCacheInfo *) NULL); diff -rB ImageMagick-6.9.6-5/magick/compare.c ImageMagick-6.9.6-6/magick/compare.c 765a766 > gamma,
- magick/property.c
- indent オプションが消えて、colors, compression, interlace, quality, rendering-intent が追加された
> if (LocaleCompare("colors",property) == 0) > { > image->colors=GetNumberColors(image,(FILE *) NULL,&image->exception); > (void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double) > image->colors); > break; > } 2908a2916,2921 > if (LocaleCompare("compression",property) == 0) > { > string=CommandOptionToMnemonic(MagickCompressOptions,(ssize_t) > image->compression); > break; > } 2984a2998,3003 > if (LocaleCompare("interlace",property) == 0) > { > string=CommandOptionToMnemonic(MagickInterlaceOptions,(ssize_t) > image->interlace); > break; > } 3137a3157,3166 > case 'q': > { > if (LocaleCompare("quality",property) == 0) > { > (void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double) > image->quality); > break; > } > break; > } 3139a3169,3174 > if (LocaleCompare("rendering-intent",property) == 0) > { > string=CommandOptionToMnemonic(MagickIntentOptions,(ssize_t) > image->rendering_intent); > break; > } 4089,4100d4123 < break; < } < if (LocaleCompare("intent",property) == 0) < { < ssize_t < rendering_intent; < < rendering_intent=ParseCommandOption(MagickIntentOptions,MagickFalse, < value); < if (rendering_intent < 0) < break; < image->rendering_intent=(RenderingIntent) rendering_intent;
- magick/quantize.c
- 減色の色決定時の色差計算にガンマ値を考慮
> gamma, 2187,2190c2188,2191 < image->error.mean_error_per_pixel=(double) mean_error_per_pixel/area; < image->error.normalized_mean_error=(double) QuantumScale*QuantumScale* < mean_error/area; < image->error.normalized_maximum_error=(double) QuantumScale*maximum_error; --- > gamma=PerceptibleReciprocal(area); > image->error.mean_error_per_pixel=gamma*mean_error_per_pixel; > image->error.normalized_mean_error=gamma*QuantumScale*QuantumScale*mean_error; > image->error.normalized_maximum_error=QuantumScale*maximum_error;
- magick/utility.c
- readdir_r がない時の処理
1551,1554d1550 < #if defined(MAGICKCORE_HAVE_READDIR_R) < return(readdir_r(directory,entry,result)); < #else < (void) entry; 1556,1558c1552,1556 < *result=readdir(directory); < return(errno); < #endif --- > entry=readdir(directory); > *result=entry; > if ((entry == (struct dirent *) NULL) && (errno != 0)) > return(-1); > return(0);
ChangeLog
2016-11-25 6.9.6-6 Cristy <quetzlzacatenango@image...> * Release ImageMagick version 6.9.6-6, GIT revision 11169:94edafc:20161125. 2016-11-20 6.9.6-6 Cristy <quetzlzacatenango@image...> * If a convenient line break is not found, force it for caption: (reference https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=30887). * Off by 1 error when computing the standard deviation (reference https://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=30866). * Apply Debian patches, (reference https://github.com/ImageMagick/ImageMagick/issues/304). * Permit EPT images with just a TIFF or EPS image, not both (reference https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=30921). * The -clone option no longer leak memory.