ImageMagick-6.9.10-20差分
ImageMagick-6.9.10-19差分 - yoya's diaryの続き
The latest release of ImageMagick is version 6.9.10-20
- 7 系同時リリースは ImageMagick-7.0.8-20
まとめ
気になる事
差分
ChangeLog にない差分
- coders/dcm.c
- オフセットのファイル内かどうかチェック
4017c4017,4024 < stream_info->offsets[i]=(ssize_t) ReadBlobLSBSignedLong(image); --- > MagickOffsetType > offset; > > offset=(MagickOffsetType) ReadBlobLSBSignedLong(image); > if (offset > (MagickOffsetType) GetBlobSize(image)) > ThrowDCMException(CorruptImageError, > "InsufficientImageDataInFile"); > stream_info->offsets[i]=(ssize_t) offset;
- coders/hald.c
- いろいろ
105a106 > i, 122c123,125 < if (level < 2) --- > if (image_info->scene != 0) > level=image_info->scene; > if ((level < 2) || (level > 256)) 169a173,178 > (void) CloseBlob(image); > if (status == MagickFalse) > return(DestroyImageList(image)); > if (image_info->scene != 0) > for (i=0; i < (ssize_t) image_info->scene; i++) > AppendImageToList(&image,CloneImage(image,0,0,MagickTrue,exception));
- coders/jpeg.c
- 違い分からないけど diff で出てきた。。
135|4a1355,1357 > if ((dct_method == (const char *) NULL) && (image->quality > 0) && > (image->quality <= 90)) > jpeg_info.dct_method=JDCT_IFAST; 1361,1363d1363 < if ((dct_method == (const char *) NULL) && (image->quality > 0) && < (image->quality <= 90)) < jpeg_info.dct_method=JDCT_IFAST;
ChangeLog
2018-12-23 6.9.10-20 Cristy <quetzlzacatenango@image...> * Release ImageMagick version 6.9.10-20, GIT revision 14079:0ce665411:20181223
ImageMagick-6.9.10-19差分
ImageMagick-6.9.10-18差分 - yoya's diaryの続き
The latest release of ImageMagick is version 6.9.10-19
- 7 系同時リリースは ImageMagick-7.0.8-19
差分
ChangeLog にない差分
- coders/gif.c
1292c1292< image->colors=(size_t) (opacity+1);
-
- -
> opacity=(-1);
176a177 > ^L#define XmpNamespaceExtent 28 651c652,653 < iptc_profile=(StringInfo *) GetImageProfile(image,"iptc"); --- > /* The IPTC profile is actually an 8bim */ > iptc_profile=(StringInfo *) GetImageProfile(image,"8bim"); 659c661 < status=SetImageProfile(image,"iptc",profile); --- > status=SetImageProfile(image,"8bim",profile); 743,744c745,746 < if ((length > strlen(xmp_namespace)) && < (LocaleNCompare((char *) p,xmp_namespace,strlen(xmp_namespace)) == 0)) --- > else if ((length > XmpNamespaceExtent) && > (LocaleNCompare((char *) p,xmp_namespace,XmpNamespaceExtent-1) == 0)) 752,753c754,755 < p=GetStringInfoDatum(profile); < for (j=0; j < (ssize_t) GetStringInfoLength(profile); j++) --- > p=GetStringInfoDatum(profile)+XmpNamespaceExtent; > for (j=XmpNamespaceExtent; j < (ssize_t) GetStringInfoLength(profile); j++) 2122c2124 < GetStringInfoDatum(xmp_profile)[28]='\0'; --- > GetStringInfoDatum(xmp_profile)[XmpNamespaceExtent]='\0'; ||< - magick/identify.c -- image->extent を活用して GetBlobSize を呼ぶのを減らす >|c| 668c668 < if (GetBlobSize(image) != 0) --- > if (image->extent != 0) 670c670 < (void) FormatMagickSize(GetBlobSize(image),MagickTrue,format); --- > (void) FormatMagickSize(image->extent,MagickTrue,format); 1443c1443 < (void) FormatMagickSize(GetBlobSize(image),MagickTrue,format); --- > (void) FormatMagickSize(image->extent,MagickTrue,format); diff -rwb ImageMagick-6.9.10-18/magick/image.c ImageMagick-6.9.10-19/magick/image.c 831a832 > clone_image->extent=image->extent;
ChangeLog
2018-12-19 6.9.10-19 Cristy <quetzlzacatenango@image...> * Release ImageMagick version 6.9.10-19, GIT revision 14069:0ca60eda0:20181219
ImageMagick-6.9.10-18差分
ImageMagick-6.9.10-17差分 - yoyaのメモの続き
The latest release of ImageMagick is version 6.9.10-18
- 7 系同時リリースは ImageMagick-7.0.8-18
まとめ
- caption: で背景にゴミが混ざるかもしれなかった処理の対処。
- dib で bpp 8 を超える値はヘッダチェックで弾く。
- PNG から抽出するコメントに改行が混ざってたのを修正した。(入出力すると改行が増えてたかも?)
気になる事
差分
ChangeLog にない差分
- coders/caption.c
- 背景色での初期化処理を追加。
138a139,140 > if ((image->columns != 0) && (image->rows != 0)) > (void) SetImageBackgroundColor(image);
- coders/dib.c
- bits_per_pixel は 8以下しか許さない(?)
593a594,595 > if ((dib_info.number_colors != 0) && (dib_info.bits_per_pixel > 8)) > ThrowReaderException(CorruptImageError,"ImproperImageHeader"); 596c598 < if ((dib_info.number_colors != 0) || (dib_info.bits_per_pixel < 16)) --- > if ((dib_info.number_colors != 0) || (dib_info.bits_per_pixel <= 8))
- coders/pnm.c
- PNM コメント読み込みの修正。コメントの後ろに改行がある時に、改行をコメントに含めないようにした。
177c177 < if ((c != EOF) && (c != (int) '\n') && (c != (int) '\r')) --- > if (c != EOF)
- magick/magick-type.h
- 型定義の long double 対応。
49c49 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_LONG_DOUBLE) < typedef double MagickFloatType; --- > typedef long double MagickFloatType; #else 58c58 #elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_LONG_DOUBLE) < typedef double MagickDoubleType; --- > typedef long double MagickDoubleType; #else
- magick/profile.c
- source_colorspace 変数を設定しているが、まだ使ってないのでとりあえずコンパイラを黙らせてる。(何か作り中?)
1011a1012
> (void) source_colorspace;
ChangeLog
2018-12-18 6.9.10-18 Cristy <quetzlzacatenango@image...> * Release ImageMagick version 6.9.10-18, GIT revision 14061:2f9ab1cea:20181218 2018-12-18 6.9.10-18 Cristy <quetzlzacatenango@image...> * Revert MagickDoubleType patch to avoid i386 ABI break (reference https://github.com/ImageMagick/ImageMagick6/issues/31);
ImageMagick-6.9.10-17差分
ImageMagick-6.9.10-16差分 - yoyaのメモの続き
The latest release of ImageMagick is version 6.9.10-17
- 7 系同時リリースは ImageMagick-7.0.8-17
まとめ
(調査中)
気になる事
(調査中)
差分
ChangeLog にない差分
(調査中)
ChangeLog
2018-12-16 6.9.10-17 Cristy <quetzlzacatenango@image...> * Release ImageMagick version 6.9.10-17, GIT revision 14053:4ae0f812c:20181216
ImageMagick-6.9.10-16差分
ImageMagick-6.9.10-15差分 - yoyaのメモの続き
The latest release of ImageMagick is version 6.9.10-16
- 7 系同時リリースは ImageMagick-7.0.8-16
差分
ChangeLog にない差分
(調査中)
ChangeLog
2018-12-02 6.9.10-16 Cristy <quetzlzacatenango@image...> * Check for modulo underflow. * Change SVG default DPI to 86 from 90 to meet recommendation of SVG2 & CSS.
ImageMagick-6.9.10-15差分
ImageMagick-6.9.10-14差分 - yoyaのメモの続き
The latest release of ImageMagick is version 6.9.10-15
- 7 系同時リリースは ImageMagick-7.0.8-15
まとめ
- ChangeLog は空っぽ。
- DefaultSVGDensity を 90 から 96 に変更。
気になる事
- GIF の長さチェックおかしかったの今まで大丈夫?
- DICOM で Explicit VR のケアが増えた場所が LittleEndian 前提。BigEndian 無しでいいの?
- magick_attribute で可変引数等で期待しない引数を渡された時の警告が入ってる。
差分
ChangeLog にない差分
- coders/bmp.c
- 長さチェックの間違いで7倍はみ出てそう
coders/bmp.c 968,969d967 < if (((MagickSizeType) length/8) > GetBlobSize(image)) < ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile"); 972a971,972 > if ((MagickSizeType) length > GetBlobSize(image)) > ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
coders/dcm.c
-
- Explicit VR (Transfer Syntax の一種) としての処理に OF, UT を追加。
3205,3208c3205,3210 < if ((strncmp(explicit_vr,"OB",2) == 0) || < (strncmp(explicit_vr,"UN",2) == 0) || < (strncmp(explicit_vr,"OW",2) == 0) || < (strncmp(explicit_vr,"SQ",2) == 0)) --- > if ((strcmp(explicit_vr,"OB") == 0) || > (strcmp(explicit_vr,"OW") == 0) || > (strcmp(explicit_vr,"OF") == 0) || > (strcmp(explicit_vr,"SQ") == 0) || > (strcmp(explicit_vr,"UN") == 0) || > (strcmp(explicit_vr,"UT") == 0))
- coders/dib.c
- 長さチェック
672a673,674 > if ((MagickSizeType) length > (256*GetBlobSize(image))) > ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
- coders/fits.c
- depth の計算ミス修正
730c730 < image->depth > 8 ? GetFITSPixelRange(image->depth)/2.0 : 0.0); --- > image->depth > 8 ? (GetFITSPixelRange(image->depth)+1)/2.0 : 0.0);
- coders/gif.c
1106c1106,1107 < length; --- > extent, > offset; 1108,1110d1108 < /* < Read comment extension. < */ 1112c1110,1111 < for (length=0; ; length+=count) --- > extent=MagickPathExtent; > for (offset=0; ; offset+=count) 1118c1117,1127 < (void) ConcatenateString(&comments,(const char *) buffer); --- > if ((count+offset+MagickPathExtent) >= (ssize_t) extent) > { > extent<<=1; > comments=(char *) ResizeQuantumMemory(comments,extent+ > MagickPathExtent,sizeof(*comments)); > if (comments == (char *) NULL) > ThrowGIFException(ResourceLimitError, > "MemoryAllocationFailed"); > } > (void) CopyMagickString(&comments[offset],(char *) buffer,extent- > offset); 1739,1740c1748 < if ((LocaleCompare(write_info->magick,"GIF87") != 0) && < (value != (const char *) NULL)) --- > if (value != (const char *) NULL)
- coders/heic.c
218c218 < void --- > unsigned char 229,230c229,230 < exif_buffer=AcquireMagickMemory(exif_size); < if (exif_buffer != NULL) --- > exif_buffer=(unsigned char*) AcquireMagickMemory(exif_size); > if (exif_buffer != (unsigned char*) NULL) 239c239,243 < profile=BlobToStringInfo(exif_buffer,exif_size); --- > // The first 4 byte should be skipped since they indicate the > // offset to the start of the TIFF header of the Exif data. > profile=(StringInfo*) NULL; > if (exif_size > 8) > profile=BlobToStringInfo(exif_buffer+4,exif_size-4);
- diff -rbw ImageMagick-6.9.10-14/coders/icon.c ImageMagick-6.9.10-15/coders/icon.c
- 最後の16バイト
375,376c375,376 < count=ReadBlob(image,length,png+16); < if (count != (ssize_t) length) --- > count=ReadBlob(image,length-16,png+16); > if (count != (ssize_t) (length-16))
- coders/jpeg.c
- option 変数の再利用を辞めて、場所毎に変数名を分けた。
- dct-method 未指定で quality が 90 以下の場合 JDCT_IFAST を使う。
1034a1035 > *dct_method, 1238,1241c1239,1241 < jpeg_info.dct_method=JDCT_FLOAT; < option=GetImageOption(image_info,"jpeg:dct-method"); < if (option != (const char *) NULL) < switch (*option) --- > dct_method=GetImageOption(image_info,"jpeg:dct-method"); > if (dct_method != (const char *) NULL) > switch (*dct_method) 1246c1246 < if (LocaleCompare(option,"default") == 0) --- > if (LocaleCompare(dct_method,"default") == 0) <略> > if ((dct_method == (const char *) NULL) && (quality <= 90)) > jpeg_info.dct_method=JDCT_IFAST;
- coders/miff.c
- 型指定の修正
183a184,186 > magick_attribute((__malloc__)); > > static void *AcquireBZIPMemory(void *context,int items,int size) 190a194,196 > magick_attribute((__malloc__)); > > static void *AcquireLZMAMemory(void *context,size_t items,size_t size) 197a204,206 > unsigned int size) magick_attribute((__malloc__)); > > static voidpf AcquireZIPMemory(voidpf context,unsigned int items,
- coders/msl.c
- MSDWarning と MSLError の attribute 指定(print書式を間違えると警告がでるのと同じ?)
7568a7569,7571 > magick_attribute((__format__ (__printf__,2,3))); > > static void MSLWarning(void *context,const char *format,...) 7600a7604,7606 > magick_attribute((__format__ (__printf__,2,3))); > > static void MSLError(void *context,const char *format,...) |<< ** ChangeLog >|| 2018-12-01 6.9.10-15 Cristy <quetzlzacatenango@image...> * Release ImageMagick version 6.9.10-15, GIT revision 14011:ddd5bd95d:20181201
IO_SoundFont 1.1.0 をリリースしました
↑これの続き。
% composer require yoya/io_soundfont
openpear はもういないので、composer 対応しました。
実行結果
% php vendor/yoya/io_soundfont/sample/sftree.php emuaps_8mb.sf2 Bank: idx:0 Preset: idx:43 name:'Contra Bass' bag:0=>1 presetBag: ndx:0 Mod: idx:0 Type:0 P:0 D:0 CC:1 Index:21 DestOper:34(attackVolEnv) Amount:9020 AmdSrcOper:Type:0 P:0 D:0 CC:0 Index:0(No Controler) TransOper:0 Mod: idx:1 Type:0 P:0 D:0 CC:1 Index:23 DestOper:28(decayModEnv) Amount:2776 AmdSrcOper:Type:0 P:0 D:0 CC:0 Index:0(No Controler) TransOper:0 Mod: idx:2 Type:0 P:0 D:0 CC:1 Index:23 DestOper:26(attackModEnv) Amount:17000 AmdSrcOper:Type:0 P:0 D:0 CC:0 Index:0(No Controler) TransOper:0 Mod: idx:3 Type:0 P:0 D:0 CC:1 Index:24 DestOper:22(freqModLFO) Amount:-311 AmdSrcOper:Type:0 P:0 D:0 CC:0 Index:0(No Controler) TransOper:0 Mod: idx:4 Type:1 P:0 D:0 CC:1 Index:24 DestOper:5(modLfoToPitch) Amount:-4 AmdSrcOper:Type:0 P:0 D:0 CC:0 Index:0(No Controler) TransOper:0 Mod: idx:5 Type:1 P:0 D:0 CC:1 Index:23 DestOper:38(releaseVolEnv) Amount:3122 AmdSrcOper:Type:0 P:0 D:0 CC:0 Index:0(No Controler) TransOper:0 Mod: idx:6 Type:1 P:0 D:0 CC:1 Index:22 DestOper:9(initialFilterQ) Amount:627 AmdSrcOper:Type:0 P:0 D:0 CC:0 Index:0(No Controler) TransOper:0 Mod: idx:7 Type:1 P:0 D:0 CC:1 Index:23 DestOper:29(sustainModEnv) Amount:1000 AmdSrcOper:Type:0 P:0 D:0 CC:0 Index:0(No Controler) TransOper:0 Mod: idx:8 Type:0 P:0 D:0 CC:1 Index:23 DestOper:8(initialFilterFc) Amount:-2480 AmdSrcOper:Type:0 P:0 D:0 CC:0 Index:0(No Controler) TransOper:0 Mod: idx:9 Type:0 P:0 D:0 CC:1 Index:23 DestOper:11(modEnvToFilterFc) Amount:2449 AmdSrcOper:Type:0 P:0 D:0 CC:0 Index:0(No Controler) TransOper:0 Mod: idx:10 Type:0 P:0 D:1 CC:0 Index:2(Note-On Velocity) DestOper:8(initialFilterFc) Amount:-2480 AmdSrcOper:Type:0 P:0 D:0 CC:0 Index:0(No Controler) TransOper:0 Mod: idx:11 Type:1 P:0 D:0 CC:1 Index:21 DestOper:8(initialFilterFc) Amount:-13500 AmdSrcOper:Type:0 P:0 D:0 CC:0 Index:0(No Controler) TransOper:0 presetBag: ndx:1 Gen: idx:0 genOper:41(instrument) Amount:0 name:'Contrabass' bagNdx: 0=>5 <略>