ChangeLog 151 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939
  1. 4/10/24 8.15.5
  2. - version bump, revise C++ soname
  3. 3/10/24 8.15.4
  4. - fix an off-by-one error in vips__token_get()
  5. - heifsave: fix crash when passing an invalid bitdepth [kleisauke]
  6. - webpsave: fix memory leak on error [dloebl]
  7. - heifsave: ensure NCLX profile is freed in lossless mode [kleisauke]
  8. - threadpool: fix a race condition in error handling [kleisauke]
  9. - disable GLib cast checks and asserts for plain builds [kleisauke]
  10. - fix jpeg in tiff for high Q [nahilsobh]
  11. - threadset: fix a race condition during thread exit [kleisauke]
  12. - fix compatibility with MSVC [Julianiolo]
  13. 11/8/24 8.15.3
  14. - fix dzsave of >8-bit images to JPEG
  15. - jpegsave: fix chrominance subsampling mode with jpegli [kleisauke]
  16. - pngload: disable ADLER32/CRC checking in non-fail mode [kleisauke]
  17. - improve target_clones support check [kleisauke]
  18. - fix pipe read limit
  19. - fix a rare crash on Windows in highly threaded applications [Julianiolo]
  20. - vipssave: fix infinite loop on Windows with large images [pdbourke]
  21. - conva: fix a crash with {u,}{short,int} images [erdmann]
  22. - fix vips_image_get_string
  23. - heifsave: fix lossless mode [kleisauke]
  24. - composite: fix dest-atop blend mode [kleisauke]
  25. - fix vips_source_map for zero-length sources [kleisauke]
  26. 12/3/24 8.15.2
  27. - fix deflate compression of tiff pyramids [manthey]
  28. - thumbnail always writes 8-bit thumbnails [turtletowerz]
  29. - lower min scale factor to 0.0 in svgload and pdfload [lovell]
  30. - heifload: don't warn on images with nclx profiles [kleisauke]
  31. - ppmload: ensure multi-line comments are skipped [lovell]
  32. - fix arrayjoin with some pipelines [TheEssem]
  33. - fix high Q mono JPEG TIFF write with mozjpeg [cavenel]
  34. - tiffsave: ensure large file support (>2GB) on MSVC [kleisauke]
  35. - check linker for target_clones support [lovell]
  36. 18/12/23 8.15.1
  37. - reduceh: fix Highway path on SSE2 [DarthSim]
  38. - fix JPEG in TIFF colourspace for Q >= 90 [heman1-test]
  39. - fix build with upcoming libjxl 0.9 [kleisauke]
  40. - jxlsave: lower min effort value to 1 [DarthSim]
  41. - fix build without libjpeg [ionenwks]
  42. - fix vips7 plugin load [jcupitt]
  43. - allow ".jfif" as a suffix for jpegsave [casperbrike]
  44. - don't let the magick sniffer hijack TIFF [kleisauke]
  45. - ignore BLOCKED classes in foreign map [jcupitt]
  46. - add locks to fftw3 calls [akash-akya]
  47. 11/11/23 8.15.0
  48. - add support for target_clones attribute [lovell]
  49. * use with (un)premultiply for ~10% perf gain on AVX CPUs
  50. * use with XYZ to LAB colourspace conversion for ~10% perf gain on AVX CPUs
  51. - add fast path to extract_band and bandjoin for uchar images [lovell]
  52. - reduce `vips_sharpen` max `sigma` to 10 [lovell]
  53. - inline scRGB to XYZ colourspace conversion, ~2x faster [lovell]
  54. - set "interlaced=1" for interlaced GIF images [kleisauke]
  55. - add @line_art to find_trim [miltoncandelero]
  56. - improve C++ binding [MathemanFlo]
  57. * add `inplace()` / `VImage::new_from_memory_copy()`
  58. * add overloads for `draw_*()` / `VImage::thumbnail_buffer()`
  59. - allow negative line spacing in text [donghuikugou]
  60. - add VIPS_META_BITS_PER_SAMPLE metadata, deprecate the
  61. "palette-bit-depth" and "heif-bitdepth" meta fields [MathemanFlo]
  62. - add "revalidate" to foreign loaders [jcupitt]
  63. - add `premultiplied` option to smartcrop [lovell]
  64. - add "prewitt" and "scharr" edge detectors, "sobel" is more accurate for
  65. non-uchar formats [jcupitt]
  66. - add support for forms in pdfium loader [kleisauke]
  67. - swap built-in profiles with ICC v4 variants [kleisauke]
  68. - remove libgsf dependency in favor of libarchive [kleisauke]
  69. - better chunking for small shrinks [jcupitt]
  70. - use alpha range of 0.0 - 1.0 for scRGB images [DarthSim]
  71. - add support for 16-bit float TIFFs [DarthSim]
  72. - add direct mode to dzsave [jcupitt]
  73. - require C++11 as a minimum standard [kleisauke]
  74. - add support for SIMD via Highway [kleisauke]
  75. - threaded write in tiffsave for tiled JPEG and JPEG2000 [jcupitt]
  76. - add vips_thread_execute() to the public API [jcupitt]
  77. - add "keep" flag to foreign savers, deprecate "strip" [a3mar]
  78. - improve scRGB handling [jcupitt]
  79. 18/9/23 8.14.5
  80. - fix a crash with alpha plus icc_import and icc_export [jcupitt]
  81. - fix a crash in jxlsave [jcupitt]
  82. 15/8/23 8.14.4
  83. - fix null-pointer dereference during svgload [kleisauke]
  84. - heif{load,save}: guard against NULL strings [kleisauke]
  85. - pdfiumload: fix rendering of pages with different sizes [DarthSim]
  86. 20/7/23 8.14.3
  87. - fix ICC handling of greyscale images with a incompatible profile [kleisauke]
  88. - fix use-after-free during tiff pyramid save [kleisauke]
  89. - fix vips7 PNG load and save when using libspng [jcupitt]
  90. - tiffload: slightly relax tile size sanity check [lovell]
  91. - heifsave: limit dimensions to a maximum edge of 16384 [lovell]
  92. - colourspace: ensure CMYK conversion uses the embedded ICC profile [kleisauke]
  93. - ensure chromatic adaptation during icc_{im,ex}port() [kleisauke]
  94. - improve ICC compatibility check for CMYK images [kleisauke]
  95. 21/3/23 8.14.2
  96. - use a private fontmap in vips_text() [jcupitt]
  97. - increase sanity checks on TIFF tile dimensions [lovell]
  98. - ensure compatibility with libheif > 1.14.2 [kleisauke]
  99. - minor doc fixes [jcupitt]
  100. - sanitise dimensions in JPEG-compressed TIFF images [lovell]
  101. - fix target pnm write [ewelot]
  102. - dedupe FITS header write [ewelot]
  103. - fix `strip` parameter in webpsave [jcupitt]
  104. - earlier abort of webpsave on kill [dloebl]
  105. - fix thumbnail of CMYK images with an embedded ICC profile [kleisauke]
  106. - fix ICC handling of RGB images with a monochrome profile [kleisauke]
  107. - ensure ICC transforms keep all precision [kleisauke]
  108. - fix openslideload associated=XXX load [jcupitt]
  109. - fix compatibility with MSVC [SpaceIm]
  110. 9/1/23 8.14.1
  111. - add vips_thread_isworker() compatibility function [remicollet]
  112. - add vips_semaphore_down_timeout() [kleisauke]
  113. - idle threads are removed after 15s [kleisauke]
  114. - fix version number in gtk-doc index [kleisauke]
  115. - save mono fits images as NAXIS=2 [ewelot]
  116. - fix jpeg `autorotate` for orientation 3 [zhifengzhuang]
  117. 22/12/22 8.14.0
  118. - remove autotools
  119. - remove various obsolete scripts
  120. - remove benchmark
  121. - `jp2ksave` defaults to chroma subsample off, and jp2 write
  122. - don't minimise `vips_sink_screen()` input after expose ... improves
  123. caching during interactive use
  124. - require libjxl 0.6+
  125. - add `interlace` option to GIF save [dloebl]
  126. - magick load sets `magick-format` metadata [aksdb]
  127. - add `.pnm` save [ewelot]
  128. - threaded tiff jp2k and jpeg decompress
  129. - improve speed and efficiency of animated WebP write [dloebl]
  130. - add `rgb` mode to openslideload
  131. - new thread recycler
  132. - threadpools size dynamically with load
  133. - operations can hint threadpool size
  134. - faster `dzsave`
  135. - support for N-colour ICC profiles
  136. - add bash completions for `vips`
  137. - fits load and allows many more bands
  138. - fits write doesn't duplicate header fields
  139. - add `wrap` to `vips_text()`
  140. - GIF load supports truncated frames [tlsa]
  141. - EXIF support for PNG load and save
  142. - expose location of interest when using attention based cropping [ejoebstl]
  143. - deprecate gifsave `reoptimise`, add `reuse`
  144. - add `encoder` to heifsave [dloebl]
  145. - add `cplusplus` meson build option [jcupitt]
  146. - make arrayjoin much faster with large arrays
  147. 9/11/22 started 8.13.4
  148. - missing include in mosaic_fuzzer [ServOKio]
  149. - emit "finish" at the end of targetcustom write [lucaskanashiro]
  150. 11/10/22 started 8.13.3
  151. - improve rules for 16-bit heifsave [johntrunc]
  152. - improve libspng palette write [kleisauke]
  153. - improve libspng palette sort [DarthSim]
  154. - ensure EXIF has prefix before parsing [lovell]
  155. - fix low bit depth palette spng save [DarthSim]
  156. - fix thumbnail of non-sRGB images with an export profile [kleisauke]
  157. 5/9/22 started 8.13.2
  158. - in dzsave, add add missing include directive for errno/EEXIST [kleisauke]
  159. - fix 8 bit palette PNG save [lovell]
  160. - fix null string in buffer print [pclewis]
  161. - revise caching of seq mode loaders [jcupitt]
  162. - reduce latency on dzsave kill [kleisauke]
  163. - improve text too large check [kleisauke]
  164. - fix subifd writing for small images [ruven]
  165. - name ICC profiles in spngsave [lovell]
  166. 24/7/22 started 8.13.1
  167. - fix im7 feature detection in meson
  168. - add a summary table at the end of configure in meson
  169. - fix libpng fallback when spng is disabled in meson
  170. - add "unlimited" to jpegload
  171. - better 0 detection in unpremultiply
  172. - fix low bitdepth spng save [jeffska]
  173. - fix PNG low bitdepth save of high bitdepth images
  174. - add support for libjxl 0.7 [kleisauke]
  175. - improve compatibility with older libgsf versions [kleisauke]
  176. 21/11/21 started 8.13
  177. - configure fails for requested but unmet dependencies [remicollet]
  178. - add support for another quantiser [DarthSim]
  179. - add "extend", "background" and "premultiplied" to vips_mapim() to fix edge
  180. antialiasing [GavinJoyce]
  181. - add support for HDR HEIC and AVIF images
  182. - add vips_spngsave()
  183. - jpeg2000 load left-justifies bitdepth
  184. - add "password" option to pdfload, fix byte ordering of "background"
  185. - add vips_operation_block_set(), vips_block_untrusted_set()
  186. - improve the pixel rng
  187. - new meson build system [tintou]
  188. - improve introspection annotations [tintou]
  189. - add "unlimited" to heifload [lovell]
  190. - add support for regions in C++ API [shado23]
  191. - add "maxerror" to gifsave [dloebl]
  192. - update libnsgif API [tlsa]
  193. - deprecate "properties" option to dzsave (now always on)
  194. - add vips_dzsave_buffer()
  195. - always set the min stack size for pthreads, if we can
  196. - add "fail-on" to thumbnail
  197. - add "gap" option to vips_reduce[hv]() and vips_resize() [kleisauke]
  198. - add "ceil" option to vips_shrink() [kleisauke]
  199. - quality improvements for image resizing [kleisauke]
  200. - add vips_source_new_from_target()
  201. - add vips_target_seek(), vips_target_read(), vips_target_new_temp()
  202. - add vips_tiffsave_target()
  203. - add vips_target_end(), deprecate vips_target_finish()
  204. - add "mixed" to webpsave [dloebl]
  205. - add support for ICC profiles and linear encoding to JXL load and save [f1ac]
  206. - add "reoptimise" to gifsave [dloebl]
  207. - add "bitdepth" to magicksave [dloebl]
  208. - change default PNG filter to "none" [lovell]
  209. 26/11/21 started 8.12.3
  210. - better arg checking for vips_hist_find_ndim() [travisbell]
  211. - fix thumbnail with CMYK output [AdamGaskins]
  212. - fix size_t / ssize_t confusion [flga]
  213. - fix jxl compatibility break [lovell]
  214. 26/11/21 started 8.12.2
  215. - make exif resuint optional and default to inch
  216. - win: don't set create time on inappropriate file descriptors [lovell]
  217. - fall back to magicksave for gif if cgif is not present [erik-frontify]
  218. - fix a crash with 0 length vectors
  219. - change default frame delay for GIFs from 1s to 0.1s
  220. - remove stray trailing comma from iiif3 dirnames [whalehub]
  221. - fix TTF load [chregu]
  222. - revise GIF save alpha threshold [jfcalvo]
  223. - raise libpng pixel size limit from 1m to 10m pixels [jskrzypek]
  224. - fix gif save change detector [TheEssem]
  225. - fix load from pipe with variable size reads
  226. 21/11/21 started 8.12.1
  227. - fix insert [chregu]
  228. 14/6/21 started 8.12
  229. - all tools support `--version`
  230. - add vips_svgload_string() convenience function
  231. - fix thumbnail with small image plus crop plus no upsize [Andrewsville]
  232. - rename speed / reduction-effort / etc. params as "effort"
  233. - add gifsave [lovell]
  234. - arrayjoin minimises inputs during sequential processing, saving a lot of
  235. memory and file descriptors
  236. - add vips_image_get_format_max()
  237. - flatten handles out of range alpha and max_alpha correctly
  238. - don't use atexit for cleanup, it's too unreliable
  239. - tiff writer loops for the whole image rather than per page [LionelArn2]
  240. - fix VipsSource with named pipes [vibbix]
  241. - added restart_interval option to jpegsave [manthey]
  242. - add IIIF3 support to dzsave [martimpassos]
  243. - add atan2 to math2 [indus]
  244. - improve buffer and target save file format selection
  245. - added VipsForeignPpmFormat, format arg to ppm savers
  246. - add fail-on to give better control over loader error sensitivity
  247. - add hyperbolic functions sinh, cosh, tanh, asinh, acosh, atanh [hroskes]
  248. - add untiled jp2k load
  249. - "insert" will minimise in seq mode
  250. - better EXIF string handling [lovell]
  251. 16/8/21 started 8.11.4
  252. - fix off-by-one error in new rank fast path
  253. - add "unlimited" flag to png load [joshuamsager]
  254. - improve filtering of .v enums [lovell]
  255. - better logic to prevent shrink to nothing in thumbnail [kleisauke]
  256. 14/7/21 started 8.11.3
  257. - build threadpool later [kleisauke]
  258. - add jxlsave prototypes [adil-benameur]
  259. - limit text chunks in PNGs [randy408]
  260. 15/6/20 started 8.11.2
  261. - better libdir guessing [remi]
  262. - fix tiff pyramid creation with jp2k compression (was broken by 8.11.1)
  263. - don't load modules if we're built without modules
  264. 18/6/21 started 8.11.1
  265. - add more example code to C docs
  266. - update libtool support in configure.ac
  267. - more startup info if VIPS_INFO is set
  268. - command-line programs set glib prgname (no longer set for you by VIPS_INIT)
  269. - enable strip chopping for TIFF read [DavidStorm]
  270. - disable modules by default for static builds [kleisauke]
  271. - fix jpeg tiff pyramid save
  272. 14/8/20 started 8.11
  273. - add vips_jpegload_source() and vips_svgload_source() to public C API
  274. - integrate doxygen in build system to generate C++ API docs
  275. - improve C++ API doc comments
  276. - add VipsInterpolate and guint64 support to C++ API
  277. - add VImage::new_from_memory_steal [Zeranoe]
  278. - vipsthumbnail supports stdin / stdout thumbnailing
  279. - have a lock just for pdfium [DarthSim]
  280. - get pdfium load building again [Projkt-James]
  281. - add _source load support for pdfium
  282. - add "seed" param to perlin, worley and gaussnoise
  283. - add vips_source_g_input_stream_new() to load images from a GInputStream
  284. - add openslideload_source(), vipsload_source(), vipssave_target()
  285. - add hist path to rank for large windows on uchar images
  286. - better 8/16-bit choice for pngsave
  287. - avoid NaN in mapim [afontenot]
  288. - hist_find outputs a double histogram for large images [erdmann]
  289. - fix ref leaks in mosaicing package
  290. - run libvips leak test in CI
  291. - add vips_fitsload_source(), vips_niftiload_source()
  292. - png and gif load note background colour as metadata [781545872]
  293. - add vips_image_[set|get]_array_double()
  294. - add GIF load with libnsgif
  295. - add jp2kload, jp2ksave
  296. - add jp2k compression to tiff load and save
  297. - add JPEG-XL load and save
  298. - add black_point_compensation flag for icc transforms
  299. - add "rgba" flag to vips_text() to enable full colour text rendering
  300. - move openslide, libheif, poppler and magick to loadable modules [kleisauke]
  301. - better detection of invalid ICC profiles, better fallback paths
  302. - add "premultiply" flag to tiffsave
  303. - new threading model has a single threadpool shared by all
  304. pipelines [kleisauke]
  305. 30/4/21 start 8.10.7
  306. - better vips7 PNG load compatibility [SkyDiverCool]
  307. - fix load of large PPM images from a pipe [ewelot]
  308. 22/12/20 start 8.10.6
  309. - don't seek on bad file descriptors [kleisauke]
  310. - check for null memory sources [kleisauke]
  311. - improve ppmload, fixing a couple of small bugs
  312. - improve EOF detection in jpegload [bozaro]
  313. - improve error detection in spngload [randy408]
  314. - fix includes of glib headers in C++ [lovell]
  315. - fix build with more modern librsvg [lovell]
  316. - fix a possible segv with very wide images [f1ac]
  317. - fix issue thumbnailing RGBA images in linear mode [jjonesrs]
  318. - improve vipsthumbnail profile handling
  319. - fix tiff deflate predictor setting [Adios]
  320. - fix vector path for composite on i386 [kleisauke]
  321. 18/12/20 started 8.10.5
  322. - fix potential /0 in animated webp load [lovell]
  323. 14/12/20 started 8.10.4
  324. - fix spng detection
  325. 18/10/20 started 8.10.3
  326. - relax heic is_a rules [hisham]
  327. - fix vips7 webp load [barryspearce]
  328. - fix out of bounds exif read in heifload
  329. - fix out of bounds read in tiffload
  330. - fix tiffsave region shrink mode [imgifty]
  331. - add missing flushes on write to target [harukizaemon]
  332. - hide info messages you could get with some older glibs [kleisauke]
  333. - fix --no-strip on dzsave with icc-profiles [altert]
  334. - better GraphicsMagick image write [bfriesen]
  335. - add missing read loops to spng, heif, giflib and ppm load [kleisauke]
  336. - block zero width or height images from imagemagick load [Koen1999]
  337. - check for overflow in gifload height [lovell]
  338. - fix msb_first default in ppm load and save [ewelot]
  339. - force binary mode on win for connection read / write [Alreiber]
  340. - better testing for output to target [barryspearce]
  341. - ppmload_source was missing is_a [ewelot]
  342. - improve webpload rounding and blending behaviour [lovell]
  343. - fix range clip in int32 -> unsigned casts [ewelot]
  344. - fix precision error in clip of float -> int casts [ewelot]
  345. - fix load of HEIC images with 0 length metadata [ddennedy-gpsw]
  346. - revise rounding in reduce [kleisauke]
  347. 6/9/20 started 8.10.2
  348. - update magicksave/load profile handling [kelilevi]
  349. - better demand hint rules [kaas3000]
  350. - fix tiff thumbnail from buffer and source [vansante]
  351. - in jpegsave, don't set JFIF resolution if we set EXIF resolution
  352. - bump minimum libheif version to 1.3 [lovell]
  353. - dzsave in iiif mode could set info.json dimensions off by one [Linden6]
  354. - pdfload allows dpi and scale to both be set [le0daniel]
  355. - allow gaussblur sigma zero, meaning no blur
  356. - better heif signature detection [lovell]
  357. - fix vips_fractsurf() typo [kleisauke]
  358. - better heif EOF detection [lovell]
  359. - fix gir build with g-o-i 1.66+ [László]
  360. - improve seek behaviour on pipes
  361. - add "speed" param to heifsave [lovell]
  362. - fix regression in C path for dilate / erode [kleisauke]
  363. - fix build with libheif save but no load [estepnv]
  364. 9/8/20 started 8.10.1
  365. - fix markdown -> xml conversion in doc generation
  366. - remove typedef redefinitions to please old gccs
  367. - fix regression in tiff pyramid thumbnailing [tand826]
  368. - stop 0-length buffer being passed to imagemagick [lovell]
  369. - convert no-profile CMYK to RGB on save [augustocdias]
  370. - ensure SVG loader skips input with chars outside x09-x7F range [lovell]
  371. - better mask sizing in gaussmat [johntrunc]
  372. - fix tiffsave "squash" handling [barryspearce]
  373. - fix jpegload autorotate [chregu]
  374. - only start the background render thread on first use
  375. 24/1/20 started 8.10.0
  376. - more conformat IIIF output from dzsave [regisrob]
  377. - add @id to dzsave to set IIIF id property [regisrob]
  378. - add max and min to region shrink [rgluskin]
  379. - allow \ as an escape character in vips_break_token() [akemrir]
  380. - tiffsave has a "depth" param to set max pyr depth
  381. - libtiff LOGLUV images load and save as libvips XYZ
  382. - add gifload_source, csvload_source, csvsave_target, matrixload_source,
  383. matrixsave_source, pdfload_source, heifload_source, heifsave_target,
  384. ppmload_source, ppmsave_target
  385. - revise vipsthumbnail flags
  386. - add VIPS_LEAK env var
  387. - add vips_pipe_read_limit_set(), --vips-pipe-read-limit,
  388. VIPS_PIPE_READ_LIMIT
  389. - revise gifload to fix BACKGROUND and PREVIOUS dispose [alon-ne]
  390. - add subsample_mode, deprecate no_subsample in jpegsave [Elad-Laufer]
  391. - add vips_isdirf()
  392. - add PAGENUMBER support to tiff write [jclavoie-jive]
  393. - add "all" mode to smartcrop
  394. - flood fill could stop half-way for some very complex shapes
  395. - better handling of unaligned reads in multipage tiffs [petoor]
  396. - mark old --delete option to vipsthumbnail as deprecated [UweOhse]
  397. - png save with a bad ICC profile just gives a warning
  398. - add "premultipled" option to vips_affine(), clarified vips_resize()
  399. behaviour with alpha channels
  400. - improve bioformats support with read and write of tiff subifd pyramids
  401. - thumbnail exploits subifd pyramids
  402. - handle all EXIF orientation cases, deprecate
  403. vips_autorot_get_angle() [Elad-Laufer]
  404. - load PNGs with libspng, if possible
  405. - deprecate heifload autorotate -- it's now always on
  406. - revised resize improves accuracy [kleisauke]
  407. - add --vips-config flag to show configuration info
  408. - add "bitdepth" param to tiff save, deprecate "squash" [MathemanFlo]
  409. - tiff load and save now supports 2 and 4 bit data [MathemanFlo]
  410. - pngsave @bitdepth parameter lets you write 1, 2 and 4 bit PNGs
  411. - ppmsave also uses "bitdepth" now, for consistency
  412. - reduce operation cache max to 100
  413. - rework the final bits of vips7 for vips8 [kleisauke]
  414. - --disable-deprecated now works [kleisauke]
  415. - vipsheader allows "stdin" as a filename
  416. - gifload allows gifs with images outside the canvas
  417. - wasm compatibility patches [kleisauke]
  418. - webpsave has a @profile param
  419. 24/4/20 started 8.9.3
  420. - better iiif tile naming [IllyaMoskvin]
  421. 31/1/19 started 8.9.2
  422. - fix a deadlock with --vips-leak [DarthSim]
  423. - better gifload behaviour for DISPOSAL_UNSPECIFIED [DarthSim]
  424. - ban ppm max_value < 0
  425. - add fuzz corpus to dist
  426. - detect read errors correctly in source_sniff
  427. - fix regression in autorot [malomalo]
  428. - thumbnail on HEIC images could select the thumbnail incorrectly under some
  429. size modes [ZorinArsenij]
  430. 20/6/19 started 8.9.1
  431. - don't use the new source loaders for new_from_file or new_from_buffer, it
  432. will break the loader priority system
  433. - fix thumbnail autorot [janko]
  434. - fix a warning with magicksave with no delay array [chregu]
  435. - fix a race in tiled tiff load [kleisauke]
  436. - better imagemagick init [LebronCurry]
  437. - lock for metadata changes [jcupitt]
  438. 20/6/19 started 8.9.0
  439. - add vips_image_get/set_array_int()
  440. - disable webp alpha output if all frame fill the canvas and are solid
  441. - support arrays of delays for animated images [deftomat]
  442. - add "unlimited" flag to svgload
  443. - disable webp alpha output if all frames fill the canvas and are solid
  444. - add "compression" option to heifsave [lovell]
  445. - support webp and zstd compression in tiff
  446. - loaders use "minimise" to close input files earlier
  447. - integrate support for oss-fuzz [omira-sch]
  448. - add vips_switch() / vips_case() ... fast many-way ifthenelse
  449. - better const handling for arithmetic operators fixes comparisons against out
  450. of range values
  451. - sharpen restores input colourspace
  452. - handle alpha in heifload / heifsave [meyermarcel]
  453. - add @interpretation and @format to rawload
  454. - nifti load/save uses double for all floating point metadata
  455. - add vips_error_buffer_copy()
  456. - add VipsSource and VipsTarget: a universal IO class for loaders and savers
  457. - jpeg, png, tiff (though not tiffsave), rad, svg, ppm and webp use the
  458. new IO class
  459. - rewritten ppm load/save is faster and uses less memory
  460. - add @no_strip option to dzsave [kalozka1]
  461. - add iiif layout to dzsave
  462. - fix use of resolution-unit metadata on tiff save [kayarre]
  463. - support TIFF CIELAB images with alpha [angelmixu]
  464. - support TIFF with premultiplied alpha in any band
  465. - block metadata changes on shared images [pvdz]
  466. - RGB and sRGB are synonmous
  467. 17/9/19 started 8.8.4
  468. - improve compatibility with older imagemagick versions
  469. - remove realpath, since it can fail on systems with grsec
  470. 31/8/19 started 8.8.3
  471. - revert sharpen restoring the input colourspace
  472. - xres/yres tiffsave params were in pixels/cm [f--f]
  473. 9/7/19 started 8.8.2
  474. - better early shutdown in readers
  475. - don't attempt to save large XMP to jpeg [tnextday]
  476. - always fetch HEIC metadata from the main image [zhoux2016]
  477. - fix loop in malformed ppm [Kyle-Kyle]
  478. - better support for PNGs with long comment names
  479. - fix build with GM
  480. - add locks for pdfium load
  481. - fix build with MSVC
  482. - fix a problem with shinkv tail processing [angelmixu]
  483. - fix a read one byte beyond buffer bug in jpegload
  484. - make GIF parsing less strict
  485. - better feof() handling in GIF load
  486. - clip coding and interpretation on vips image read
  487. - check image bounds for GIF load
  488. - prevent over-pre-shrink in thumbnail [kleisauke]
  489. - fix sharpen with sigma 0.5 [2h4dl]
  490. - sharpen restores input colourspace
  491. - verify bands/format for coded images
  492. - improve data_length handling for jpeg metadata
  493. 24/5/19 started 8.8.1
  494. - improve realpath() use on older libc
  495. - better magickload error messages
  496. - more consistent behaviour for page-height metadata
  497. - fix for composite with many small images and some combinations of blend modes
  498. - fix memleak in tiff pyr save to memory [scossu]
  499. - istiff attempts to read the first directory rather than just testing the
  500. magic number [przemyslawpluta]
  501. - much faster ismagick() [jcupitt]
  502. - better behaviour for vips_region_fetch() if request lies partly outside image
  503. - remove 256 band limit in arithmetic.c [erdmann]
  504. - disable Orc if building with CET [lovell]
  505. - fix vipsthumbnail with pyr tiff [kleisauke]
  506. - text autofit could occasionally terminate early [levmorozov]
  507. - fewer warnings on tiffload [chregu]
  508. - vips_resize() breaks aspect ratio and limits shrink to prevent <1px
  509. dimensions [lovell]
  510. 21/9/18 started 8.8.0
  511. - much faster smartcrop [lovell]
  512. - add low/high to smartcrop [jcupitt]
  513. - add XMP support to png read/write [jcupitt]
  514. - deprecate thumbnail auto_rotate, add no_rotate [jcupitt]
  515. - implement thumbnail shrink-on-load for openslide images [jcupitt]
  516. - add animated webp support [jcupitt]
  517. - revise vips_cast() to improve behaviour with uint images [erdmann]
  518. - add bandand()/or()/eor() to cplusplus binding [clcaalu]
  519. - implement shrink-on-load for tiff pyramids [jcupitt]
  520. - added vips_image_set_blob_copy() [jcupitt]
  521. - don't stop composite on first non-transparent image [felixbuenemann, GDmac]
  522. - add vips_rect_overlapsrect()
  523. - composite is much faster at positioning subimages
  524. - stop tiff pyr layers if width or height drop to 1 [gvincke]
  525. - dzsave has a new skip_blanks option
  526. - add vips_CMYK2XYZ() and vips_XYZ2CMYK(), plus associated routes
  527. - include cmyk and srgb fallback profiles
  528. - add vips_profile_load() and use it everywhere
  529. - fix race in temp filename creation [lhecker]
  530. - add @reduction_effort param to webpsave [lovell]
  531. - add @option_string param to thumbnail_buffer [kleisauke]
  532. - add XMP, IPCT, ICC, EXIF etc. support to magickload/magicksave
  533. - much lower memuse for gifload
  534. - tilecache speedups
  535. - add vips_heifload(), vips_heifsave()
  536. - add heif thumbnail support to vips_thumbnail()
  537. - free threadpool earlier, reducing mem growth for some long-running
  538. processes [jtorresfabra]
  539. - add vips_region_fetch() / _width() / _height() for language bindings
  540. - vips_text() supports justification
  541. - move vips_image_set_kill() and iskilled() to the public API
  542. - dzsave to szi sets suffix correctly [martinweihrauch]
  543. - dzsave szi writes "scan-properties.xml"
  544. - add vips_image_(get|set)_image()
  545. - add openslideload option to attach all associated images as metadata
  546. - dzsave to szi will write all associated images
  547. - remove old c++ and python interfaces
  548. - vipsthumbnail can thumbnail animated and multipage images
  549. - deprecate webpload @shrink, use @scale instead
  550. 31/3/19 started 8.7.5
  551. - better buffer sizing in tiff reader [omira-sch]
  552. 4/1/19 started 8.7.4
  553. - magickload with magick6 API did not chain exceptions correctly causing a
  554. memory leak under some conditions [kleisauke]
  555. - zero memory on allocate to prevent write of uninitialized memory under some
  556. error conditions [Balint Varga-Perke]
  557. 21/11/18 started 8.7.3
  558. - fix infinite loop for autofit with non-scaleable font
  559. - mapim was not offsetting by window offset [erdmann]
  560. - better rounding for scale [kleisauke]
  561. - fix a memleak in magick6load [kleisauke]
  562. 21/11/18 started 8.7.2
  563. - more info output for temp files to help diagnose problems
  564. - vips_text() could set the wrong DPI
  565. - vips_text() leaked in autofit mode
  566. 23/9/18 started 8.7.1
  567. - update function list in docs [janko-m]
  568. - test for g_str_to_ascii() [jcupitt]
  569. - fix temp file open on Windows and fallback on linux [lovell]
  570. 23/12/17 started 8.7.0
  571. - add magicksave, save image with libMagick [dlemstra]
  572. - remove jpeg thumbnail from EXIF if "jpeg-thumbnail-data" has been removed by
  573. user
  574. - hough_line scales width to 0 - 180, not 0 - 360
  575. - hough_line is 4x faster
  576. - hough_circle is 2x faster
  577. - add vips_sobel() and vips_canny() edge detectors
  578. - add vips_rotate() ... a convenience method for vips_similarity()
  579. - svgload was missing is_a [lovell]
  580. - better header sniffing for small files
  581. - drop incompatible ICC profiles before save
  582. - better hasalpha rules
  583. - create funcs always make MULTIBAND (ie. no alpha)
  584. - use O_TMPFILE, if available [Alexander--]
  585. - set "interlaced=1" for interlaced JPG and PNG images
  586. - add PDFium PDF loader
  587. - jpegload adds a jpeg-chroma-subsample field with eg. 4:4:4 for no
  588. chrominance subsampling.
  589. - tiffload, pdfload, magickload set VIPS_META_N_PAGES "n-pages" metadata item
  590. - add fontfile option to vips_text() [fangqiao]
  591. - add vips_transpose3d() -- swap major dimensions in a volumetric image
  592. - remove vips7 stuff from default API ... you must now #include it explicitly
  593. - added vips_argument_get_id() to fix derived classes on win32 [angelmixu]
  594. - fix compile with MSVC 2017 [angelmixu]
  595. - pdfload has a option for background
  596. - vips7 C++ interface defaults off
  597. - make members, getters and operators "const" in cpp API
  598. - composite has params for x/y position of sub-images [medakk]
  599. - add Mitchell kernel
  600. - pyramid builders have a choice of 2x2 shrinkers [harukizaemon]
  601. - add `palette` option to pngsave [felixbuenemann]
  602. - add basic nifti load/save support
  603. - support writing string-valued fields via libexif
  604. - paste in the test suite from pyvips
  605. - get EXIF tag names from tag plus ifd [@Nan619]
  606. - escape ASCII control characters in XML
  607. - magickload now sniffs some file types itself
  608. - update radiance load from upstream
  609. - add region_shrink to tiffsave
  610. - mapim could fail for float index images with coordinates out of int range
  611. - scale openexr alpha to 0 - 255
  612. - close input earlier, when we can [kleisauke]
  613. - add vips_object_get_args() for language bindings [kleisauke]
  614. 12/3/18 started 8.6.4
  615. - better fitting of fonts with overhanging edges [Adrià]
  616. - revise C++ example [fangqiao]
  617. - strict round down on jpeg shrink on load [davidwood]
  618. - configure test for g++ 7.2 and composite.cpp
  619. - don't Ping in magickload, too unreliable
  620. - ensure WebP can add metadata when compiled with libwebpmux [lovell]
  621. - improve accuracy of vector path convolution [felixbuenemann]
  622. 12/2/18 started 8.6.3
  623. - use pkg-config to find libjpeg, if we can
  624. - better clean of output image in vips_image_write() fixes a crash
  625. writing twice to memory
  626. - better rounding behaviour in convolution means we hit the vector path more
  627. often
  628. - fix a crash if a delayed load failed [gsharpsh00ter]
  629. - icc_import attaches the fallback profile if it used it
  630. 5/1/18 started 8.6.2
  631. - vips_sink_screen() keeps a ref to the input image ... stops a rare race
  632. - fix a minor accidental ABI break in 8.6.0 -> 8.6.1 [remicollet]
  633. - fix read of plane-separate TIFFs with large strips [remicollet]
  634. - fix a C++ warning in composite.cpp [lovell]
  635. - remove number of images limit in composite
  636. - composite allows 1 mode ... reused for all joins
  637. - fix race in vips_sink() for seq read
  638. 10/12/17 started 8.6.1
  639. - fix mmap window new/free cycling
  640. - fix some compiler warnings
  641. - remove the 64-image limit on bandary operations
  642. - better version date [bmwiedemann]
  643. - bump wrapper script version [bgilbert]
  644. - fix a memleak on error during jpeg buffer write [lovell]
  645. - fix misspelling of IPTC as IPCT [lovell]
  646. - seq could be set on small images opened in random-access mode [aferrero2707]
  647. - fix small memleak in dzsave [lovell]
  648. - small speedup for rgb->g [lovell]
  649. 15/4/17 started 8.6.0
  650. - supports fits images with leading non-image HDUs, thanks benepo
  651. - add vips_image_new_from_image() and vips_image_new_from_image1() ... make a
  652. constant image
  653. - add new_from_image() to Python as well
  654. - slight change to cpp new_from_image() to match py/C behaviour
  655. - vips_conv(), vips_compass(), vips_convsep() default to FLOAT precision
  656. - add FORCE resize mode to break aspect ratio
  657. - add vips_thumbnail_image()
  658. - better prefix guessing on Windows, thanks tumagonx
  659. - savers support a "page_height" option for multipage save
  660. - rename 'disc' as 'memory' and default off
  661. - add vips_find_trim(), search for non-background areas
  662. - remove lcms1 support, it had bitrotted
  663. - `join` tagged as seq
  664. - support tiffsave_buffer for pyramids, thanks bubba
  665. - thumbnail and vipsthumbnail have an option for rendering intent, thanks
  666. kleisauke
  667. - set file create time on Windows, thanks dlong500
  668. - remove python tests ... moved to pyvips test suite
  669. - vips7 and vips8 python bindings default to off ... use the new pyvips
  670. binding instead
  671. - better svgload: larger output, handle missing width/height, thanks lovell
  672. - add vips_gravity() ... embed, but with direction rather than position
  673. - vips_text() can autofit text to a box, thanks gargsms
  674. - add vips_composite() / vips_composite2(): merge a set of images with
  675. a set of blend modes
  676. - better gobject-introspection annotations, thanks astavale
  677. - vips_image_write() severs all links between images, when it can ... thanks
  678. Warren and Nakilon
  679. - vector path for convolution is more accurate and can handle larger masks
  680. - linear and cubic kernels for reduce are higher quality
  681. - added vips_value_set_blob_free()
  682. - "--size Nx" to vipsthumbnail was broken, thanks jrochkind
  683. - fix build with gcc 7
  684. - add vips_fill_nearest() ... fill pixels with nearest colour
  685. - add VIPS_COMBINE_MIN, a new combining mode for vips_compass()
  686. - vips_hist_find_indexed() now has a @combine parameter
  687. - vips_affine() and vips_similarity() have a "background" parameter
  688. - fix nasty jaggies on the edges of affine output, thanks chregu
  689. - add gif-delay, gif-comment and gif-loop metadata
  690. - add dispose handling to gifload
  691. - dzsave outputs extra right and bottom overlap-only tiles, for closer spec
  692. adherence
  693. - deprecate the "centre" option for vips_resize(): it's now always on
  694. - setting the EXIF data block automatically sets other image tags
  695. - add "extend" option to affine; resize uses it to stop black edges
  696. 29/8/17 started 8.5.9
  697. - make --fail stop jpeg read on any libjpeg warning, thanks @mceachen
  698. - don't build enumtypes so often, removing perl as a compile dependency
  699. - fix a crash with heavy use of draw operations from language bindings,
  700. thanks @Nakilon
  701. 2/8/17 started 8.5.8
  702. - fix transparency detection in merge, thanks Haida
  703. - define env var VIPS_WARNING to hide warning messages
  704. - shut down dzsave output earlier to help mark-sweep bindings
  705. - fix webp thumbnail upscale, thanks Kleis
  706. 9/6/17 started 8.5.7
  707. - better smartcrop
  708. - transform cmyk->rgb automatically on write if there's an embedded profile
  709. and the saver does not support cmyk
  710. - fix DPI mixup in svgload ... we were writing images about 20% too large,
  711. thanks Fosk
  712. 19/5/17 started 8.5.6
  713. - tiff read with start page > 0 could break edge tiles or strips
  714. - raise b64 limit to allow for huge profiles (thanks jaume)
  715. - fix error return in blob save (thanks jaume)
  716. - tag vipsprofile as py2 (thanks ioquatix)
  717. - don't cache thumbnail (thanks tomasc)
  718. 23/4/17 started 8.5.5
  719. - doc polishing
  720. - more improvements for truncated PNG files, thanks juyunsang
  721. - improve corrupted jpg handling, thanks juyunsang
  722. - fix small test suite issues on os x
  723. 23/4/17 started 8.5.4
  724. - don't depend on image width when setting n_lines, thanks kleisauke
  725. 7/4/17 started 8.5.3
  726. - more link fixing in docs
  727. - revise cache sizing again to help out of order errors under heavy load, thanks
  728. kleisauke
  729. 25/3/17 started 8.5.2
  730. - better behaviour for truncated PNG files, thanks Yury
  731. - missing proto for vips_tiffsave_buffer(), thanks greut
  732. - move some docs from the wiki and blog into core libvips docs
  733. - add support for markdown in docs
  734. 25/3/17 started 8.5.1
  735. - init more classes earlier, thanks David
  736. 13/10/16 started 8.5.0
  737. - rewritten buffer system is safer and frees memory earlier
  738. - added tiff save to buffer
  739. - added dzsave save to buffer (zip only)
  740. - revise header get/set functions
  741. - better vipsheader behaviour with complex field types
  742. - added vips_image_hasalpha()
  743. - added vips_thumbnail() / vips_thumbnail_buffer()
  744. - webpload/webpsave read and write icc, xmp, exif metadata
  745. - better >4gb detect for zip dzsave output [Felix Bünemann]
  746. - all loaders have a @fail option, meaning fail on first warning, though it
  747. only does anything for jpg and csv
  748. - add vips_image_get_fields() to help bindings
  749. - add tiff multi-page read/write
  750. - add VIPS_META_PAGE_HEIGHT metadata
  751. - IM6/IM7 magickload supports page/n/page-height, all_frames deprecated
  752. - gifload supports n/page-height
  753. - added #defines for VIPS_SONAME, VIPS_LIBRARY_CURRENT, VIPS_LIBRARY_REVISION,
  754. VIPS_LIBRARY_AGE
  755. - better support for bscale / bzero in fits images
  756. - deprecate vips_warn() / vips_info(); use g_warning() / g_info() instead
  757. - vipsthumbnail supports much fancier geometry strings, thanks tomasc
  758. - vips_thumbnail() has new @size option
  759. - fix --vips-cache-max etc.
  760. - add compute reordering, plus some new API to support it:
  761. vips_reorder_margin_hint() and vips_reorder_prepare_many(), thanks
  762. aferrero2707
  763. - kick load operations from cache on read error, thanks gaillard
  764. - fix return from C++ assignment operator overloads (+=, -= etc)
  765. - add @max_slope to vips_hist_local() to implement CLAHE, thanks hunter-87
  766. - vips_gaussnoise() pixels are reproducible on recalc, thanks MvGulik
  767. - max/min sort values by y and x coordinate
  768. - tiff read uses libtiff scanline API if rows-per-strip is large
  769. - vips_region_shrink() knows about alpha, helps dzsave and tiffsave
  770. - use expat, not libxml, for XML load ... removes a required dependency, since
  771. we get expat as part of glib
  772. - new sequential mode infrastructure is faster and more flexible
  773. - add vips_smartcrop(), based on sharp's smartcropper
  774. - vipsthumbnail has a --smartcrop option
  775. - added vips_rot90() etc. convenience functions
  776. - fix vips_resize() bug when hscale and vscale were very different
  777. 8/12/16 started 8.4.5
  778. - allow libgsf-1.14.26 to help centos, thanks tdiprima
  779. 11/11/16 started 8.4.4
  780. - fix crash in vips.exe arg parsing on Windows, thanks Yury
  781. 18/10/16 started 8.4.3
  782. - fix error detection in gif_close, thanks aaron42net
  783. - fix tiny threading memleak
  784. - improve compatibility with very old glib, see #548
  785. 27/9/16 started 8.4.2
  786. - small doc improvements
  787. - fix error message for metadata fetch type mismatch
  788. - resolve a race condition in thread shutdown, thanks Lovell
  789. 1/5/16 started 8.4
  790. - many more wepsave options [Felix Bünemann]
  791. - added quant_table option to wepsave [Felix Bünemann]
  792. - added @n option to pdfload, thanks andris
  793. - dzsave won't write empty tiles in google mode, thanks bverem, perog,
  794. felixbuenemann
  795. - allow nested [] in CLI args
  796. - restore BandFmt on unpremultiply in vipsthumbnail
  797. - better python detection and build [Felix Bünemann]
  798. - max-alpha defaults to 65535 for RGB16/GREY16
  799. - added radsave_buffer [Henri Chain]
  800. - support tiff orientation tag
  801. - autorotate option for tiff load
  802. - tiffsave converts for jpg if jpg compression is turned on
  803. - tiffsave supports --strip
  804. - conversions to GREY16 could lock
  805. - free pixel buffers on image close as well as thread exit ... stops main
  806. thread buffers clogging up the system
  807. - dzsave can write compressed zips [Felix Bünemann]
  808. - vips_image_write() only refs the input when it has to ... makes it easier to
  809. combine many images in bounded memory
  810. - VImage::write() implementation was missing
  811. - VImage::write() return value changed from void to VImage to help chaining
  812. - added C++ arithmetic assignment overloads, += etc.
  813. - VImage::ifthenelse() with double args was missing =0 on options
  814. - better accuracy for reducev with smarter multiplication
  815. - better quality for vips_resize() with linear/cubic kernels
  816. - pyvips8 can create new metadata
  817. - better upsizing with vips_resize()
  818. - add imagemagick v7 support, thanks sachinwalia2k8
  819. - added vips_worley(), vips_perlin() noise generators
  820. - added vips_convf(), vips_convi(), vips_convasep(), vips_conva() ...
  821. im_conv*() functions rewritten as classes
  822. - vips_convsep() calls vips_convasep() for the approximate case
  823. - new fixed-point vector path for convi is up to about 2x faster
  824. - gif loader can make 1, 2, 3, or 4 bands depending on file contents
  825. - support --strip for pngsave
  826. - add svgz support [Felix Bünemann]
  827. - rename bootstrap.sh -> autogen.sh to help snapcraft
  828. - support unicode filenames on Windows
  829. - added VIPS_ROUND as well as VIPS_RINT
  830. - resize/reduce*/shrink*/affine now round output size to nearest rather than
  831. rounding down, thanks ioquatix
  832. - better support for tile overlaps in google maps mode in dzsave
  833. - dzsave puts vips-properties.xml in the main dir for gm and zoomify layouts
  834. - resize and reduce have @centre option for centre convention downsampling
  835. - vipsthumbnail uses centre convention to better match imagemagick
  836. _ add vips_foreign_get_suffixes()
  837. 19/8/16 started 8.3.4
  838. - better transparency handling in gifload, thanks diegocsandrim
  839. 30/7/16 started 8.3.3
  840. - fix performance regression in 8.3.2, thanks Lovell
  841. - yet more robust vips file reading
  842. 18/5/16 started 8.3.2
  843. - more robust vips image reading
  844. - more robust tiff read [Matt Richards]
  845. 15/4/16 started 8.3.1
  846. - rename vips wrapper script, it was still vips-8.2, thanks Benjamin
  847. - export C++ operator overloads for MSVC linking [Lovell]
  848. - fix magickload @page with GraphicsMagick
  849. - add giflib5 support
  850. - allow resize >1 on one axis, <1 on the other
  851. - vips_resize has an optional @kernel argument
  852. - fix giflib4 detection [felixbuenemann]
  853. 29/1/16 started 8.3
  854. - add vips_reduce*() ... a fast path for affine downsize
  855. - vips_resize() uses vips_reduce() with lanczos3
  856. - bicubic is better on 32-bit int images
  857. - add pdfload, svgload, gifload for PDF, SVG and GIF rendering
  858. - vipsthumbnail knows about pdfload and svgload
  859. - added @page param to magickload
  860. - matload is more specific (thanks bithive)
  861. - lower mem use for progressive jpg decode
  862. - sharpen has a new @sigma param, @radius is deprecated
  863. - sharpen allows a much greater range of parameters
  864. - sharpen defaults now suitable for screen output
  865. - better handling of deprecated args in python
  866. - much better handling of arrayimage command-line args
  867. - faster hist_find (Lovell Fuller)
  868. - webpload has a @shrink parameter for shrink-on-load
  869. - vipsthumbnail knows about webp shrink-on-load
  870. - better behaviour for vips_cast() shift of non-int types (thanks apacheark)
  871. - python .bandrank() now works like .bandjoin()
  872. - vipsthumbnail --interpolator and --sharpen switches are deprecated
  873. - switches to disable PPM, Rad and Analyze support
  874. - added VIPS_COUNT_PIXELS(), overcomputation tracking
  875. - @out_format in vips_system() can contain [options]
  876. - webpsave_buffer no longer ignores @lossless, thanks aaron42net
  877. - float tiff tagged as scRGB to match photoshop convention, thanks Murat
  878. - better jpeg autorot, thanks otto
  879. 24/3/16 started 8.2.4
  880. - fix nohalo and vsqbs interpolators, thanks Rafael
  881. 27/1/16 started 8.2.3
  882. - fix a crash with SPARC byte-order labq vips images
  883. - fix parsing of filenames containing brackets, thanks shilpi230
  884. - fix hist_entropy (lovell)
  885. - small fixes to radiance load
  886. 12/1/16 started 8.2.2
  887. - changes to ease compiling C++ binding with MSVC [Lovell Fuller]
  888. - reorder file tests to put slow loaders last
  889. - ifthenelse needs less C stack during eval
  890. - better rounding in bilinear interpolator
  891. - fix to "make check" in non-C locales [felixbuenemann]
  892. - use compiler builtins isnan, isinf, fabs, fmin, fmax, ceil, floor when
  893. possible [Lovell Fuller]
  894. - tune vips_shrinkh(), 30% faster [Lovell Fuller]
  895. - remove SEQ hint from vips_subsample(), fixes cli performance [erdmann]
  896. - fix double free on attach ICC profile from file in tiff write [erdmann]
  897. - use g_assert_not_reached()
  898. - better vips-from-C docs
  899. - remove Duff from im_conv() / im_conv_f() for a 25% speedup [Lovell Fuller]
  900. 1/1/16 started 8.2.1
  901. - add a compat stub [Benjamin Gilbert]
  902. - python bandjoin is now just an instance function
  903. - small doc improvements
  904. - small vips7 C++ improvement
  905. - remove exception specifications from vips8 C++ interface [Lovell Fuller]
  906. - VImage::get_typeof() now returns GType
  907. 7/10/15 started 8.2.0
  908. - added im_bufmagick2vips(), a vips7 wrapper for magick load from buffer
  909. - fetch unset property now returns default value rather than warning
  910. - many more const declarations to help gobject-introspection
  911. - rewritten vips_shrink() is 2x faster, much lower memuse, now handles complex
  912. - only allow [] for filename options
  913. - add memory.h to Python API .. makes tracked highwater visible
  914. - added bandjoin_const to add constant bands to an image
  915. - better alpha handling for tiff write, thanks sadaqatullahn
  916. - better cache sizing for vips_resize()
  917. - sizealike / formatalike / bandsalike elide completely if they can for
  918. a x2 saving in C stack use in many cases
  919. - added vips_mapim() ... resample with an index image, plus test
  920. - try to improve vips_resize() quality a little more
  921. - vips_resize() can do non-square resizes
  922. - dzsave removes tile metadata by default, thanks Benjamin
  923. - jpeg strip option removes a little more, thanks Benjamin
  924. - added vips_image_new_from_memory_copy()
  925. - improve vips_sink_screen() stability under heavy load
  926. - added vips_arrayjoin()
  927. - Python x.bandjoin(y) is now x.ibandjoin(y), sorry
  928. - faster and lower-mem TIFF read
  929. - faster bilinear interpolator
  930. - TIFF loads and saves IMAGEDESCRIPTION
  931. - add --properties flag to tiffsave
  932. - dzsave defaults changed: now writes 256x256 jpegs for non-edge tiles, thanks
  933. Daniel
  934. 7/5/15 started 8.1.1
  935. - oop, vips-8.0 wrapper script should be vips-8.1, thanks Danilo
  936. - fix vips7 pathname parsing on windows, thanks Lovell
  937. 7/5/15 starteld 8.1.0
  938. - add vips_premultiply(), vips_unpremultiply()
  939. - change the alpha range rules for vips_flatten() to match vips_premultiply()
  940. - vipsthumbnail uses vips_resize() rather than its own code
  941. - vipsthumbnail uses vips_premultiply() for better alpha quality
  942. - added bandand() bandor() bandeor() convenience funcs to Python
  943. - oops, base64 encode could pad by up to two zero bytes
  944. - added VipsRefString as a thing that gi bindings can unpack
  945. - support "with Vips.Image as i:" in Python
  946. - try to support DOS CSV and PPM files on linux
  947. - add vips_byteswap(), remove byteswap option from vips_copy()
  948. - add vips_bandfold()/vips_bandunfold()
  949. - dzsave supports zip output > 4gb, thanks benjamin
  950. - add support for HSV colourspace [Jonas Øgaard]
  951. - skip oversized markers in jpeg write
  952. - jpeg exif tags saved as name rather than title
  953. - can now set any jpeg exif tag, not just modify existing tags
  954. - add vips_hist_entropy()
  955. - vips_log(), vips_log10() are zero-avoiding
  956. - better overlap handling for dzsave, thanks robclouth
  957. - add @spacing option to vips_text()
  958. - tiff loads and saves IPCT and Photoshop data
  959. 7/5/15 started 8.0.3
  960. - dzsave and tif pyr write could fail for some image dimensions, thanks Jonas
  961. 4/5/15 started 8.0.2
  962. - fix a refcount error in C++ wrapper, thanks huskier
  963. - better C++ api test
  964. - test suite improvements
  965. - remove a couple of stray header decls, thanks benjamin
  966. 25/4/15 started 8.0.1
  967. - fix some compiler warnings
  968. - work around a glib bug that can cause segv under load
  969. - add some notes on threading to the docs
  970. - better leak reporting
  971. 11/2/15 started 8.0
  972. - remove old doc stuff, lots of doc improvements
  973. - add fliphor(), flipver(), rot90(), rot180(), rot270(), median(), dilate(),
  974. erode() convenience methods to Python and C++
  975. - python: use [] to index and slice image bands, use () to get a point
  976. - c++: use [] to band index, () returns a vector<double>
  977. - add shift option to cast
  978. - sRGB2scRGB and scRGB2sRGB scale 16-bit alpha to and from 8-bit
  979. - add magickload_buffer() [mcuelenaere]
  980. - add vips_foreign_is_a_buffer() [mcuelenaere]
  981. - added test_foreign.py, plus more test images
  982. - added vips_region_shrink(), fast x2 shrinker
  983. - rewritten tiff writer is about 3 - 4x faster at making pyramids
  984. - jpg, magick, png, tiff readers now use only 1 fd per input image
  985. - added vips_info_set(), vips_progress_set(), vips_profile_set() ... bindings
  986. can now support all the vips command-line options if they wish
  987. - better conversion to greyscale, thanks bkw
  988. - add vips_image_copy_memory(), improves stability with heavy threading
  989. - jpegsave supports new mozjpeg features [lovell]
  990. - add vips_vipsload(), vips_vipssave() ... why not
  991. 26/3/15 started 7.42.4
  992. - im_maxpos_avg() avoids NaN
  993. - small tiffsave doc improvements
  994. - better thresholding for tiffsave "squash" mode
  995. - add @miniswhite mode to tiffsave
  996. 6/2/15 started 7.42.3
  997. - bump version for back-compat ABI change
  998. - added vips_image_memory(), an alias for vips_image_new_memory()
  999. - improvements to configure for python
  1000. - remove --disable-cxx configure flag
  1001. - python imageize preserves interpretation
  1002. - fix dzsave as a target format
  1003. 30/12/14 started 7.42.2
  1004. - C++ required output params were broken, thanks Lovell
  1005. - remove VImage::scale() to get scale from header, it clashed with the
  1006. VipsScale operator, thanks Lovell
  1007. - allow c++ set enum from string
  1008. - display param default and range in usage
  1009. - better docs
  1010. - more tests
  1011. - renamed VIPS_FOREIGN_DZ_DEPTH_1 as VIPS_FOREIGN_DZ_DEPTH_ONE etc. to help
  1012. bindings
  1013. - vipsthumbnail will return an error code if one or more conversions failed
  1014. - disable chroma subsample in jpeg-tiff if Q >= 90
  1015. - try to handle tiffs with old-style 8-bit colormaps
  1016. - rename vipsthumbnail -o as -f, -o stays as a hidden flag
  1017. - fix some small leaks
  1018. - faster openslide load, thanks Benjamin
  1019. - add VInterpolate class to cplusplus binding, thanks Lovell
  1020. - add lower-level operation cache access
  1021. - turn on leak testing in test suite
  1022. - don't use isnormal() to test for crazy FP numbers, thanks Murat
  1023. - much faster RGB16 -> sRGB path
  1024. 24/12/14 started 7.42.1
  1025. - add gobject-2.0 to Requires: in vips and vips-cpp .pc files
  1026. - bump soname
  1027. - fix VipsBlob read
  1028. - remove "future" dependency, thanks bgilbert
  1029. 4/11/14 started 7.42.0
  1030. - better default resolution for png load
  1031. - better pbm (one bit) load, better pfm (float) load/save
  1032. - added pbm (one bit) save
  1033. - changed vips_gaussblur() parameters, sorry
  1034. - add .szi as a dzsave zip synonym
  1035. - support tiff XMP metadata
  1036. - support @density arg to magickload [Lovell]
  1037. - support python3.4 and python2.7 in new python binding
  1038. - vips_gaussmat() and vips_logmat() are now int by default, to match
  1039. vips_conv(), and use @precision, not @integer
  1040. - added --disable-pyvips8 switch to turn off new py binding
  1041. - "vips thing" exit status can now be used to test for optional components
  1042. 25/7/14 started 7.41.0
  1043. - start working on --disable-deprecated
  1044. - fix pngload with libpng >1.6.1
  1045. - add vips_resize()
  1046. - return of vips_init(), but just for bindings
  1047. - revised type.c to make it more binding-friendly
  1048. - add @background arg to save: the colour to flatten against
  1049. - add VIPS_ARGUMENT_MODIFY flag ... used for draw_circle etc, meaning an op
  1050. which modifies its argument
  1051. - rename VIPS_OPERATION_RELATIONAL_NOTEQUAL as VIPS_OPERATION_RELATIONAL_NOTEQ
  1052. for consistency
  1053. - python vips8 binding
  1054. - python vips8 test suite: test_arithmetic.py, test_colour.py,
  1055. test_conversion.py
  1056. - move zoomify ImageProperties file, now a better match to the official tool
  1057. - rename VIPS_ANGLE_180 as VIPS_ANGLE_D180 etc. to help python
  1058. - remove cimg support, we have a gmic plugin now instead
  1059. - add support for vips8 plugins
  1060. - added "autorotate" option to jpeg load
  1061. - added autorot operator
  1062. - added @filter option to pngsave (Lovell)
  1063. - C++ vips8 binding
  1064. 27/10/14 started 7.40.12
  1065. - better tiff detection (Lovell)
  1066. - fix memleak in sharpen (Lovell)
  1067. - fix profile handling in XYZ2scRGB, thanks Lovell
  1068. 8/10/14 started 7.40.11
  1069. - rework extra band handling for colour functions
  1070. - set interpretation of matlut output more carefully
  1071. 8/9/14 started 7.40.10
  1072. - icc_import and icc_transform checks the input profile for compatibility
  1073. with the image, thanks James
  1074. - try to make vips_thread_shutdown() optional
  1075. 8/9/14 started 7.40.9
  1076. - support jfif resunit "none"
  1077. - support GRAY as an input and output ICC space
  1078. - fix a read loop with setjmp() in png read, if the png file is broken
  1079. - fix vipsthumbnail with both input cmyk and output rgb profiles specified
  1080. - vipsthumbnail retries with specified input profile if embedded profile is
  1081. broken
  1082. - add @profile option to pngsave, matching tiff and jpeg
  1083. - fix a race in the operation cache [Lovell]
  1084. 8/9/14 started 7.40.8
  1085. - fix configure on rhel6 [Lovell]
  1086. - mono <-> rgb converters were not handling extra bands, thanks James
  1087. - support jpeg resunit "none"
  1088. 21/8/14 started 7.40.7
  1089. - width and height were swapped in matlab load
  1090. - set interpretation more carefully on matlab load
  1091. - fix memleak in tilecache [Lovell]
  1092. - fix memleak in VipsArray [Lovell]
  1093. - fix memleak in webp load from buffer [Lovell]
  1094. - fix memleak in png save to buffer [Lovell]
  1095. - make out of order read in png and jpg a fatal error
  1096. - add thread_shutdown() to C++ (and thereby to python)
  1097. 12/8/14 started 7.40.6
  1098. - more doc fixes
  1099. - fix similarity rotate+scale, thanks Topochicho
  1100. - fix 16-bit PNG save, thanks John
  1101. - fix dzsave date on Windows, thanks John
  1102. - fix vipsthumbnail on many-core systems, thanks James
  1103. 25/7/14 started 7.40.5
  1104. - fix a race in im_maxpos_avg()
  1105. - limit n_thr on tiny images
  1106. - don't exit() on memleak detected, just warn
  1107. - add "autocrop" option to openslide load
  1108. - argh fix affine, again, there were sometimes black bars with nohalo and the
  1109. vips8 interface
  1110. - pngsave in interlaced mode makes a copy of the image, so it's always seq
  1111. - vipsthumbnail shrinks to 1/2 window_size
  1112. - vipsthumbnail has an anti-alias filter between shrink and affine
  1113. - vipsthumbnail defaults to bicubic
  1114. - better rounding behaviour for fixed-point bicubic reduces noise
  1115. - fix pngload with libpng >=1.6.11
  1116. - fix colour for openslide read associated
  1117. 4/7/14 started 7.40.4
  1118. - fix vips_rawsave_fd(), thanks aferrero2707
  1119. - fix im_point()
  1120. - vips_scale() now does round to nearest to avoid rounding errors
  1121. - improve im_openout() compat macro
  1122. - more vips7 compatibility fixes, thanks steve
  1123. - more robust vips_system()
  1124. - add webp support to vips7
  1125. 30/6/14 started 7.40.3
  1126. - fix interlaced thumbnails in vipsthumbnail, thanks lovell
  1127. - fix use of "header" in benchmark/, thanks David
  1128. - fits save now caches the image before write, so it's top-to-bottom
  1129. - add --properties argument to dzsave, thanks bgilbert, jhenriksen
  1130. 25/6/14 started 7.40.2
  1131. - dzsave write to zip stops at 4gb, thanks bgilbert
  1132. - improve short option name handling, thanks bgilbert
  1133. - added --enable-docs configure option to help freebsd
  1134. - removed a bash-ism from configure to help freebsd
  1135. - don't assume GType fits in an int to help freebsd
  1136. 24/6/14 started 7.40.1
  1137. - revise man.1 pages
  1138. - fix vips_guess_prefix()
  1139. 23/6/14 started 7.40.0
  1140. - version bump
  1141. - renamed "header" as "vipsheader" and "edvips" as "vipsedit"
  1142. 21/1/14 started 7.39.0
  1143. - auto-decode for (almost) all operations, see vips_image_decode()
  1144. - background render thread cleans up and quits neatly
  1145. - colourspace has a source_space option
  1146. - operations can be tagged as "deprecated"
  1147. - redo im_draw_circle(), im_draw_flood(), im_draw_line(), im_draw_mask(),
  1148. im_draw_image(), im_draw_rect(), im_draw_point(), im_read_point(),
  1149. im_draw_smudge(), im_label_regions() as classes
  1150. - better rounding in vips_flatten()
  1151. - VipsStatistic operations are sequential
  1152. - vipsthumbnail has --rotate auto-rotate option
  1153. - removed embedded thumbnail reader from vipsthumbnail: embedded thumbnails
  1154. are too unlike the main image
  1155. - fix to vipsthumbnail --crop, thanks Alessandro
  1156. - add vips_sum()
  1157. - add vips_hough base class and vips_hough_line()
  1158. - add "mode" param to vips_draw_image()
  1159. - add vips_hough_circle()
  1160. - reduce default cache size to 1,000 operations
  1161. - added "postbuild" signal
  1162. - vips_system() now supports many input images and you can change image
  1163. argument order
  1164. - support 16-bit palette TIFFs, plus palette TIFFs can have an alpha
  1165. - libgsf-1 is now an optional dependency
  1166. - dzsave can directly write a ZIP file
  1167. - add ".vips" as an alternative suffix for vips files
  1168. - added vips_tiffload_buffer()
  1169. - added vips_image_new_from_buffer(), vips_image_write_to_buffer()
  1170. - added vips_object_set_from_string()
  1171. - added @container option to dzsave
  1172. - support 1/2/4 bit palette tiff images with alpha
  1173. - vips_system() now uses g_spawn_command_line_sync()
  1174. - added im_tile_cache_random() to help nip2
  1175. - added hough_circle() to vips7 C++ API
  1176. - added Travis CI config, thanks Lovell
  1177. - im_*merge(), im_*mosaic(), im_match*(), im_global_balance*(), im_remosaic(),
  1178. im_*mosaic1(), im_*merge1() redone as classes
  1179. - better filename tracking for globalbalance
  1180. - revised vips8 image load/save API, now simpler and more logical
  1181. - operations emit "invalidate" if any of their input images invalidate
  1182. - operation cache drops ops on invalidate
  1183. - skipahead is back, thanks to a new threadpool tweak
  1184. 6/3/14 started 7.38.6
  1185. - grey ramp minimum was wrong
  1186. - vipsthumbnail --crop could fail for very non-square images, thanks
  1187. Alessandro
  1188. - fix a crash in vips_rawsave(), thanks Andrea
  1189. - updated German translation, thanks Chris
  1190. - fix coordinate error in affine, thanks ferryfax
  1191. 24/2/14 started 7.38.5
  1192. - jpeg load from buffer could write to input, thanks Lovell
  1193. - fix webpload from buffer, thanks Lovell
  1194. - vips_sequential() could fail under heavy load
  1195. - remove support for seq mode read for operations like extract
  1196. 13/2/14 started 7.38.4
  1197. - --sharpen=none option to vipsthumbnail was broken, thanks ferryfax
  1198. - more locking on property create and lookup to help very-threaded systems,
  1199. thanks Nick
  1200. 22/1/14 started 7.38.3
  1201. - undeprecate VIPS_MASK_IDEAL_HIGHPASS and friends, ruby-vips was using them,
  1202. thanks ahacking
  1203. 22/1/14 started 7.38.2
  1204. - auto RAD decode for affine
  1205. - falsecolour was not working for some image types
  1206. - foreign memory buffer images did not have the right dhint, broke
  1207. command-line falsecolour on sequential images
  1208. - support many Radiance readers active at once
  1209. - add secret "rgbjpeg" flag to vips_tiffsave() to help IIP
  1210. 19/1/14 started 7.38.1
  1211. - bump soname, thanks benjamin
  1212. - better conversion to and from scrgb/xyz for rad (hdr)
  1213. - fix --interpolate flag to vipsthumbnail, thanks Lovell
  1214. 18/1/14 started 7.38.0
  1215. - version bump
  1216. 19/10/13 started 7.37.0
  1217. - redone im_rotate_*mask45(), im_gauss_*mask*(), im_log_*mask(), im_dilate(),
  1218. im_erode(), im_rank_image(), im_compass(), im_linedet(), im_gradient(),
  1219. im_convsep(), im_convsep_f(), im_fastcor(), im_spcor(), im_sharpen()
  1220. as classes
  1221. - im_gradcor() deprecated
  1222. - vips_init() now does some ABI compat checking, though this change requires
  1223. an ABI break
  1224. - add "interlace" option to vips_jpegsave()
  1225. - remove vips_image_copy_fields() and vips_demand_hint() and add
  1226. vips_image_pipeline() to do both jobs
  1227. - vipsthumbnail allows non-square bounding boxes, thanks seth
  1228. - add vips_matrixprint()
  1229. - add @point subsample mode to vips_subsample()
  1230. - im_contrast_surface() deprecated: it was slower than calling conv a few
  1231. times
  1232. - radiance load supports sequential read
  1233. - rewritten radiance decode is much faster
  1234. - add vips_crop(), a synonym for vips_extract_area()
  1235. - rename vips_gammacorrect() as vips_gamma(), now takes 1 / exp
  1236. - vips_gamma() works for any format
  1237. - add --linear mode to vipsthumbnail
  1238. - support XYZ as a PCS for vips_icc_import() and vips_icc_export()
  1239. - add --strip option to jpegsave
  1240. - added vips_gaussblur() convenience function
  1241. - added --vips-profile, records and dumps thread timing and memory use info
  1242. - added vipsprofile, visualises --vips-profile output
  1243. - auto-vectorization-friendly inner loops
  1244. - added vips::init() and vips::shutdown() to C++ API
  1245. - reuse pixel buffers on sharing to reduce mem cycling
  1246. - conv is SMALLTILE, huge mem use saving on wide images
  1247. - vipsthumbnail has a --crop option
  1248. - remove video4linux1 code, it was useless on all modern linuxes
  1249. - redone freq filter builders as classes
  1250. - redone im_fwfft(), im_invfft(), im_freqflt(), im_disp_ps(), im_fractsurf(),
  1251. im_phasecor() as classes
  1252. - vips_colourspace() allows B_W, GREY16, RGB16 as source / target
  1253. - added vips_thread_shutdown(), thanks Lovell
  1254. - vips_linear() has a uchar output mode
  1255. - redone im_cntlines(), im_rank() as classes
  1256. - move im_zerox() to deprecated, it wasm't very useful
  1257. 9/1/14 started 7.36.6
  1258. - fix some clang compiler warnings
  1259. 20/11/13 started 7.36.5
  1260. - better cache sizing in unbuffered sequential mode
  1261. - allow larger tile_size in dzsave
  1262. - remove use of PATH_MAX to help gnu hurd
  1263. - fix vips_hist_match()
  1264. 15/11/13 started 7.36.4
  1265. - improve compat with im_init_world()
  1266. 18/10/13 started 7.36.3
  1267. - fix compiler warnings in ubuntu 13.10
  1268. - reverse similarity rotation direction to match the convention used
  1269. elsewhere in vips
  1270. - fix blocked caching of sequential load operations
  1271. - fix cache flags
  1272. - fix --delete option to vipsthumbnail
  1273. 10/10/13 started 7.36.2
  1274. - better jpeg startup
  1275. - rename jpeg bool type to reduce confusion between libraries
  1276. 3/10/13 started 7.36.1
  1277. - fix to help OS X build
  1278. 3/10/13 started 7.36.0
  1279. - version bump
  1280. 1/7/13 started 7.35.0
  1281. - added vips_matrixload() and vips_matrixsave(), load and save vips mat format
  1282. - rename image arrays as image matrices ... INTERPRETATION_ARRAY ->
  1283. INTERPRETATION_MATRIX etc.
  1284. - rewrite im_buildlut(), im_identity*(), im_maplut(), im_falsecolour(),
  1285. im_gammacorrect(), im_histgr(), im_histcum(), im_histnorm(), im_heq(),
  1286. im_histnD(), im_histindexed(), im_histspec(), im_invertlut(), im_lhisteq(),
  1287. im_stdif(), im_project(), im_profile(), im_tone_build*(), im_mpercent*(),
  1288. im_ismonotonic() as classes
  1289. - vips_hist_local(), vips_stdif() do any number of bands
  1290. - thin vips8 wrapper for im_histplot()
  1291. - added vips_error_freeze() / vips_error_thaw()
  1292. - used freeze() / thaw() to stop file format sniffers logging spurious errors
  1293. - vipsthumbnail uses embedded jpg thumbnails if it can
  1294. - rename vips_diag() as vips_info(), add --vips-info flag
  1295. - deprecate im_hsp()
  1296. - added vips_webpload(), vips_webpload_buffer(), vips_webpsave(),
  1297. vips_webpsave_buffer(), vips_webpsave_mime()
  1298. - tiff reader allows separate planes for strip read
  1299. - tiff reader and writer allow many more formats, eg. 32-bit int, complex, etc.
  1300. - tiff reader and writer allow any number of bands
  1301. - added vips_image_new_matrixv()
  1302. - dzsave basename param now called filename, so you can use .dz as a
  1303. destination (basename is still there but deprecated)
  1304. - new _UNBUFFERED sequential mode saves memory in some important cases
  1305. - vips_conv() is a simple wrapper over the old convolution functions
  1306. - new optimize_coding param for jpeg write produces optimal Huffman tables,
  1307. thanks Lovell
  1308. - im_tone_map() and im_tone_analyse() deprecated
  1309. - new --band arg to vips_maplut() replaces im_tone_map() functionality
  1310. - added vips_similarity(), simple wrapper for vips_affine() that lets you
  1311. give a scale and rotate
  1312. 3/7/13 started 7.34.2
  1313. - lower priority for Matlab load to reduce segvs from Mat_Open(), thanks
  1314. Michael
  1315. - null-terminate libexif strings, thanks Mike
  1316. - openslide always outputs solid pixels
  1317. 28/6/13 started 7.34.1
  1318. - fix morphological operators on non-uchar images
  1319. - remove any ICC profile when we use vips to go to srgb
  1320. 7/6/13 started 7.34.0
  1321. - version bump
  1322. - oops, VImage.PIL_mode_from_vips() failed for CMYK, thanks Alessandro
  1323. - fix no-pango build
  1324. - add im_vips2dz(): run the deepzoom writer from vips7
  1325. - vips_magickload() has an option to read all images in a sequence
  1326. - redo im_make_xy(), im_*eye(), im_zone*(), im_sines() as classes
  1327. - added vips_pngload_buffer()
  1328. - faster --centre option to dzsave, thanks Kacey
  1329. 12/3/13 started 7.33.0
  1330. - vipsthumbnail lets you specify the sharpening mask
  1331. - turn off caching for im_copy()/vips_copy(), we use copy to stop sharing, and
  1332. it's cheap so caching doesn't help anyway
  1333. - auto rshift down to 8 bits on save, if necessary
  1334. - im_gaussnoise(), im_copy_file(), im_grid(), im_scale(), im_scaleps(),
  1335. im_wrap(), im_rotquad(), im_zoom(), im_subsample(), im_msb(), im_text(),
  1336. im_system(), im_system_image()
  1337. redone as classes
  1338. - add --angle option to dzsave
  1339. - another vips_shrink() fix argh
  1340. 14/5/13 started 7.32.4
  1341. - icc import and export could segv on very wide images
  1342. - fix centos 5 build, thanks re-boot
  1343. 16/4/13 started 7.32.3
  1344. - rename GETTEXT_PACKAGE as vips7.32 to help Debian (thanks Jay)
  1345. - added "persistent" option to tilecache
  1346. 12/3/13 started 7.32.2
  1347. - removed some left-over debugging code from configure.ac
  1348. - better handling of args without values, thanks Ruven
  1349. - better error messages from vips.c
  1350. - fix demand hints so "vips shrink" works again, thanks Jan
  1351. - im_jpeg2vips.c builds without jpeglib.h, thanks Alessandro
  1352. 6/2/13 started 7.32.1
  1353. - fix --without-lcms, thanks speckins
  1354. - updates to licence, thanks Benjamin
  1355. - remove "fred" from dist
  1356. - better bootstrap on OS X
  1357. 22/1/13 started 7.32.0
  1358. - tilecache in threaded mode could deadlock if the downstream pixel source
  1359. raised an error (thanks Todd)
  1360. - fix another dzsave corner-case (thanks Martin)
  1361. - neater output for "header"
  1362. - added VIPS_META_LOADER: record the loader name
  1363. = header displays this loader hint
  1364. - vipsthumbnail is better at cache sizing
  1365. 31/8/12 started 7.31.0
  1366. - redone im_Lab2XYZ(), im_XYZ2Lab(), im_Lab2LCh(), im_LCh2Lab(), im_UCS2LCh,
  1367. im_LCh2UCS(), im_XYZ2Yxy(), im_Yxy2XYZ(), im_float2rad(), im_rad2float(),
  1368. im_Lab2LabQ(), im_LabQ2Lab(), im_Lab2LabS(), im_LabS2Lab(), im_LabQ2LabS(),
  1369. im_LabS2LabQ(), im_LabQ2disp(), im_XYZ2disp(), im_disp2XYZ(),
  1370. im_icc_import*(), im_icc_export*(), im_icc_transform*(), im_dE_fromLab(),
  1371. im_dECMC_fromLab(), im_dE00_from_Lab(), im_icc_ac2rc() as classes
  1372. - added vips_colourspace(), vips_colourspace_issupported(), replaces all
  1373. derived conversions
  1374. - faster and more accurate sRGB <-> XYZ conversion
  1375. - support 16-bit sRGB import and export
  1376. - rename UCS colourspace as CMC
  1377. - dzsave can write zoomify and google maps layout as well
  1378. - tilecache supports threaded access, so openslide read now threads
  1379. - openslide2vips gets underlying tile size from openslide
  1380. - embed has 'background' option
  1381. - dzsave --layout google has a @background option
  1382. - dzsave has a --depth option
  1383. - update for new glib threading API
  1384. - remove no threads option, glib no longer support it
  1385. - better --help output for vips driver prog
  1386. - vipsthumbnail -o allows absolute file names
  1387. - much better exif handling for jpg images (thanks Gary)
  1388. - preserve jpeg app13 (photoshop ipct)
  1389. - vips_max() / _min() track the top n maxima / minima
  1390. - deprecate im_maxpos_avg(): too specialised to be worth maintaining
  1391. - deprecate im_linreg(): easily done by combining other operators
  1392. - deprecate im_point(): easily done by combining other operators
  1393. - add binary complex operations, with cross_phase as the only one so far
  1394. - added vips_bandbool(), with vips_bandand(), _bandor(), _bandeor() as
  1395. convenience functions
  1396. - added scRGB colourspace, linear light float space with sRGB primaries
  1397. - all interpolators use corner convention ... we had round-to-nearest in
  1398. several of them before, causing a range of annoying problems
  1399. - redone im_affine*() as a class
  1400. - added input space displacement to affine
  1401. - VipsArea is threadsafe
  1402. - dzsave has a --centre option
  1403. 31/12/12 started 7.30.8
  1404. - png icc profile write was broken
  1405. 31/12/12 started 7.30.7
  1406. - better option parsing for "vips", thanks Haida
  1407. - small fixes to help OS X
  1408. - backported threaded tile cache from next version, im_tile_cache() now
  1409. uses it to prevent a deadlock, see comment there
  1410. 14/11/12 started 7.30.6
  1411. - capture tiff warnings earlier
  1412. 14/11/12 started 7.30.5
  1413. - fix libtool version mess up (thanks Benjamin)
  1414. 2/10/12 started 7.30.4
  1415. - remove options from format string in .dzi (thanks Martin)
  1416. - vipsCC.pc required the wrong version of vips (thanks Alessandro)
  1417. - larger max tile size for dzsave
  1418. - linecache is 50% larger to leave some slop room
  1419. 13/9/12 started 7.30.3
  1420. - linecache sized itself too large
  1421. - fix a compile failure if libtiff was not found (thanks Martin)
  1422. - dzsave did not work for images with an odd number of scanlines
  1423. (thanks Martin)
  1424. 4/9/12 started 7.30.2
  1425. - sequential stops all threads on error
  1426. - sequential delays ahead threads rather than blocking them completely
  1427. 6/8/12 started 7.30.1
  1428. - fixes to dzsave: shrink down to a 1x1 pixel tile, round image size up on
  1429. shrink, write a .dzi file with the pyramid params, default tile size and
  1430. overlap now matches the openslide writer
  1431. - wrap VipsInterpolate for C++
  1432. - so affinei and affinei_all appear in Python
  1433. - be more cautious enabling YCbCr mode in tiff write
  1434. - add "DEPRECATED" flag to arguments
  1435. - jpeg load/save note and use the preferred resolution unit
  1436. - better error msgs for enum args
  1437. - fix compiler warnings in production build (thanks Dmitry)
  1438. - fix spurious warnings about exif updates
  1439. - VipsSequential has an integrated cache and stalls out of order threads
  1440. - add a line cache ... sizes up dynamically with request size
  1441. - tilecache / linecache use a hash table not a linear list
  1442. 20/7/12 started 7.30.0
  1443. - support "rs" mode in vips7
  1444. - add --vips-version cmdline arg
  1445. - fix --without-tiff / exr / jpeg / png / magick
  1446. - add --vips-fatal flag
  1447. 19/3/12 started 7.29.0
  1448. - sanity-check PNG read geometry
  1449. - nearest-neighbor interpolation rounds coordinates to nearest instead of
  1450. rounding down (thanks Nicolas)
  1451. - add dzsave, save in deep zoom format
  1452. - rework im_shrink() as a class
  1453. - remove im_rightshift_size(), just a convenience function now
  1454. - vipsthumbnail no longer removes profiles by default
  1455. - much more gentle sharpening in thumbnails
  1456. - added "minimise" signal, used by tilecache to drop
  1457. - add :seq support to im_tiff2vips(), im_jpeg2vips() ... helps ruby-vips
  1458. - better thread safety for vips8 operation dispatch
  1459. - better thread safety for upstream / downstream image linking
  1460. - added "rs" open mode, removed "rd"
  1461. - added vips_operation_get_flags() ... system for attaching sets of flags to
  1462. operations
  1463. - added VIPS_OPERATION_SEQUENTIAL flag
  1464. - vips8 command-line interface uses this to turn sequential mode on
  1465. automatically when possible
  1466. - better handling of input files in vips7 command-line interface
  1467. - sequential can skip ahead, so extract / insert are now seq
  1468. 16/7/12 started 7.28.10
  1469. - wopconst was broken
  1470. - vips_sign() was broken
  1471. - png save compression range was wrong
  1472. - more/moreeq was wrong
  1473. - vips7 ppm save with options was broken
  1474. - don't cache write operations
  1475. 18/6/12 started 7.28.9
  1476. - slightly more memory debugging output
  1477. - remove references to the static bicubic interpolator from the docs
  1478. - fix temp file handling on Windows --- was breaking for non-vips files
  1479. over 100mb
  1480. - better support for using images from multiple threads
  1481. 18/6/12 started 7.28.8
  1482. - fixes for centos5 portability
  1483. 18/6/12 started 7.28.7
  1484. - add vips_flatten() -- flatten RGBA to RGB
  1485. - better alpha handling in PNG load
  1486. - don't save RGBA PNG as CMYK JPG (thanks Tobsn)
  1487. - fix a crash with malformed jpg files (thanks Grigoriy)
  1488. - vipsthumbnail enables sequential mode more and caches lines better
  1489. 19/4/12 started 7.28.6
  1490. - better resolution unit handling in deprecated im_vips2tiff()
  1491. - use TIFF_CFLAGS output from pkg-config (thanks Jay)
  1492. - much faster vips_argument_map()
  1493. - make jpeg pyramids work with tiff4
  1494. - tiff loader always offers THINSTRIP (thanks Diuming)
  1495. - add "nocache" operation flag, set for sequential load (thanks Diuming)
  1496. - fix a crash in the tiff reader for huge values of RowsPerStrip (thanks
  1497. Nicolas)
  1498. - remove use of G_DEFINE_BOXED_TYPE() to help compat (thanks Jake)
  1499. 19/4/12 started 7.28.5
  1500. - ifthenelse blend mode was broken
  1501. - small blend speedup
  1502. - default to libtiff-4
  1503. 17/4/12 started 7.28.4
  1504. - up max buffer size for vipsbuf
  1505. 6/4/12 started 7.28.3
  1506. - vips_divide() failed for int arguments
  1507. - fix warning for unused vips7 gvalue argument
  1508. - fix openslide read: always return png-style rgba, im_argb2rgba() becomes a
  1509. NOP
  1510. - cast to unsigned int now removes <0 values
  1511. - vips7 interface to openslide now supports :,level,associated options (thanks
  1512. Benjamin)
  1513. - make vips8 cache smaller
  1514. - more accurate progress reporting
  1515. 13/3/12 started 7.28.2
  1516. - xres/yres tiffsave args were broken
  1517. 13/3/12 started 7.28.1
  1518. - add ICC profile read/write for png files
  1519. 30/1/12 started 7.28.0
  1520. - version bump
  1521. - added vips_foreign_find_save_options()/vips_foreign_find_load_options()
  1522. - delayed write to foreign via a "w" image was not working
  1523. - support operations with many returns in Python
  1524. - sequential read mode
  1525. - better im_shrink()
  1526. - added vips_sequential()
  1527. - new vips_sink_memory() keeps read ordering
  1528. - tiff, jpeg, png readers support sequential read
  1529. - max/min avoid NaN
  1530. - oop, histnorm was broken by the new vipsstats
  1531. - never use IM ping to get a header, fixes BMP load
  1532. - set @filename for non-vips formats in vips7 compat layer
  1533. - make Xres/Yres double
  1534. - completely disable debug by default in production builds
  1535. 20/8/11 started 7.27.0
  1536. - version bump for new dev cycle
  1537. - im_subtract(), im_avg(), im_min(), im_minpos(), im_copy(), im_embed(),
  1538. im_flophor(), im_flipver(), im_insert(), im_insert_noexpand(), im_lrjoin(),
  1539. im_tbjoin(), im_extract_area(), im_extract_bands(), im_extract_areabands(),
  1540. im_replicate(), im_clip2fmt(), im_gbandjoin(), im_bandjoin(), im_invert(),
  1541. im_lintra(), im_lintra_vec(), im_black(), im_rot90, im_rot180(), im_rot270()
  1542. im_sintra(), im_costra(), im_tantra(), im_asintra(), im_acostra(),
  1543. im_atantra(), im_exptra(), im_exp10tra(), im_logtra(), im_log10tra(),
  1544. im_abs(), im_sign(), im_max(), im_maxpos(), im_deviate(), im_divide(),
  1545. im_multiply(), im_stats(), im_measure(), im_recomb(), im_floor(), im_ceil(),
  1546. im_rint(), im_equal*(), im_notequal*(), im_less*(), im_lesseq*(), im_more*(),
  1547. im_moreeq*(), im_remainder*(), im_and*(), im_or*(), im_eor*(), im_shift*(),
  1548. im_pow*(), im_exp*(), im_ifthenelse(), im_blend(), im_c2amph(), im_c2rect(),
  1549. im_bandmean(), im_c2real(), im_c2imag(), im_ri2c(), im_jpeg*2vips(),
  1550. im_vips2jpeg*(), im_tiff2vips(), im_vips2tiff(), im_exr2vips(),
  1551. im_fits2vips(), im_vips2fits(), im_analyze2vips(), im_raw2vips(),
  1552. im_vips2raw(), im_magick2vips(), im_png2vips(), im_png2*(), im_ppm2vips(),
  1553. im_vips2ppm(), im_mat2vips(), im_rad2vips(), im_vips2rad()
  1554. redone as classes
  1555. - added argument priorities to help control arg ordering
  1556. - generate has a 'stop' param to signal successful early termination
  1557. - added optional output args, eg. x/y for min
  1558. - CLI supports optional output args
  1559. - in im_vips2tiff, enable YCbCr compression for jpeg write
  1560. - VipsMin stops search early if it can
  1561. - C API supports optional output args
  1562. - switch back to int-valued operations
  1563. - add the operation cache, various --vips-cache-* flags
  1564. - fallback vips_init()
  1565. - vips_tracked_malloc() tracks allocation size and can report total mem usage
  1566. - cache limits, drop, init, flush plus command-line controls
  1567. - remove dmalloc support, was never used and valgrind is better
  1568. - im_csv2vips() allows quoted strings, including escaped quotes
  1569. - added vips_shutdown()
  1570. - added --vips-leak flag
  1571. - more VipsImage props
  1572. - added vips_image_write(), old one becomes vips_image_write_to_file()
  1573. - added vips_region_paint_pel()
  1574. - added VipsArea as a public struct
  1575. - added array members and arguments
  1576. - added nary
  1577. - remove VipsPool, vips_object_local_array() is much better
  1578. - cache.c now drops if you have too many open files
  1579. - CLI args to change max files
  1580. - new format for handling exif tags
  1581. - switch SMALLTILE to 128, 512 was just too big
  1582. - oop mode "rd" was not always being used for images
  1583. - added ARRAY interpretation for images
  1584. - VipsStats tracks minpos/maxpos as well
  1585. - moved mask/ to deprecated
  1586. - use atexit() to call vips_shutdown()
  1587. - set _O_TEMPORARY on delete-on-close temp images if possible
  1588. - unlink temps on rewind on *nix, less likely to leave temps on a crash
  1589. - added complex conj as a basic operation
  1590. - rect/polar/conj work on any format, not just complex
  1591. - new VipsFile system for load/save in image formats
  1592. - options now introspectable, try "vips jpegsave"
  1593. - copy swap uses glib byteswap macros, about 2x faster
  1594. - edvips can change vips header byte ordering
  1595. - "header" is terse by default
  1596. - "header" outputs filenames if working on many files
  1597. - added openslide support (Benjamin Gilbert)
  1598. - allow new-style load/save options in filenames to
  1599. vips_image_new_from_file() etc.
  1600. - VipsFormat is deprecated
  1601. - remove outchecks from documented API
  1602. - support gobject-introspection
  1603. - new Python binding based on gobject-introspection
  1604. - only spot options at the end of arg strings
  1605. - add vips_cache() as a vips8 operator
  1606. - remove the old fft fallback
  1607. - remove fftw2 support
  1608. - much faster im_draw_smudge()
  1609. 14/1/12 started 7.26.8
  1610. - interpolate CLI args were broken (thanks speckins)
  1611. 5/12/11 started 7.26.7
  1612. - lazy read from tiled tiff from layers other than 0 was broken
  1613. - optional args to vips_call*() do not work, disabled (fixed correctly in
  1614. master)
  1615. - address calculations in files over 4gb were broken on 32-bit platforms
  1616. (broken since March 2011, oops)
  1617. 12/10/11 started 7.26.6
  1618. - NOCACHE was not being set correctly on OS X causing performance
  1619. problems with large files
  1620. - update Orientation exif tag on jpeg write
  1621. 12/10/11 started 7.26.5
  1622. - jpeg read/write copies over XMP data
  1623. - handle offset correctly in separable convolutions (thanks Nicolas)
  1624. - macros for class arg boilerplate
  1625. - class arg order set by new 'priority' param
  1626. - VipsExtend, VipsDirection enums added
  1627. 12/9/11 started 7.26.4
  1628. - fallback vips_init()
  1629. - im_openout() compat stub was wrong, breaking ruby-vips
  1630. - vips_class_map_concrete_all() needed a compat macro too
  1631. - vips_class_map_all() was broken
  1632. 10/8/11 started 7.26.3
  1633. - don't use G_VALUE_COLLECT_INIT(), many platforms do not have a glib this
  1634. recent
  1635. - don't leave image->kill set when we detect termination
  1636. - test for a working C++ compiler, disable C++ parts of none found
  1637. 10/8/11 started 7.26.2
  1638. - oops, im_benchmark.c had some stuff turned off
  1639. - configure option --without-cfitsio was broken (thanks Mike)
  1640. 26/7/11 started 7.26.1
  1641. - doc fixups
  1642. - oops, ==0 missing from a strcmp() in vips7compat
  1643. - fixed a race in im_XYZ2Lab() table build
  1644. - added im_concurrency_get() to operation db
  1645. - better benchmarkn.sh runs for the correct number of CPUs automatically, runs
  1646. three times for each one, and just reports the fastest
  1647. 26/7/11 started 7.26.0
  1648. - version bunp for 7.26
  1649. - various fixes to get win32 and OS X building
  1650. 6/12/10 started 7.25.0
  1651. - attach the jpeg thumbnail and multiscan fields (thanks Mike)
  1652. - faster tiff read for some common cases
  1653. - faster im_tile_cache()
  1654. - if we use C++ in libvips, add -lstdc++ to vips-7.xx.pc
  1655. - im_vips2png() / im_png2vips() set / get png resolution (thanks Zhiyu Wu)
  1656. - updated README
  1657. - don't use tables for bilinear on float data for a small speedup (thanks
  1658. Nicolas Robidoux)
  1659. - no tables for uchar either, about a 15% speedup (thanks Nicolas)
  1660. - dmask write was broken
  1661. - lr/tbmerge() cast images to match, like im_insert()
  1662. - lr/tbmosaic() work for any mix of image formats / bands
  1663. - removed ancient balance stuff from im_lr/tbmosaic()
  1664. - gtk-doc for mosaicing
  1665. - add im_fits2vips() to the operation database
  1666. - im_fits2vips() is lazy and much faster
  1667. - im__file_open_write() / _read() has a flag for text_mode, get rid of all the
  1668. remaining fopen()s
  1669. - move cooc_* and glds_* to deprecated
  1670. - move im_dif_std() to almostdeprecated
  1671. - move im_simcontr() to almostdeprecated
  1672. - add im_sines() to operation db
  1673. - move im_spatres() to almostdeprecated
  1674. - done gtk-doc for other
  1675. - --vips-progress tells you about nthreads, tile size, nlines
  1676. - gtk-doc for interpolate
  1677. - move im_stretch3() to deprecated
  1678. - move im_clamp() to deprecated
  1679. - gtk-doc for video ... all operators done! amazing argh
  1680. - set MAP_NOCACHE on OS X, otherwise performance dives off a cliff with
  1681. files larger than memory
  1682. - removed man pages, we are all gtk-doc now
  1683. - im_jpeg2vips() ignores weird APP1 chunks
  1684. - im_add() for int/uint was broken
  1685. - im_ri2c() was broken
  1686. - added VIPS_FORMAT_BIGENDIAN format flag
  1687. - moved IMAGE and REGION to VipsImage and VipsRegion, classes over VipsObject
  1688. - Rect -> VipsRect
  1689. - libpng-1.5 supported
  1690. - better png read for 1-bit and palette images
  1691. - fits write
  1692. - better fits metadata support
  1693. - renamed all header fields, old names still supported, hopefully
  1694. - all of iofuncs moved to vips_ namespace
  1695. - lots of old iofuncs API moved to deprecated
  1696. - added VipsOperation, an abstract base class for all vips operations
  1697. - added VipsAdd, the first operation object
  1698. - im_tiff2vips() int/uint mixup for rows_per_strip, thanks Bubba
  1699. - removed the links feature, won't work with vips8
  1700. - got rid of the tools/ subdirs
  1701. - added im_bufjpeg2vips()
  1702. - tiff reader can do 1, 2, 4, 8 bit palette images
  1703. - tiff palette read can do mono images
  1704. - im_bufjpeg2vips() has a "header_only" parameter
  1705. - added vips_image_get_data()
  1706. - updated German translation (thanks Chris)
  1707. - fixed typo in im_conv() overflow estimation which could cause errors
  1708. - vips.c has new action syntax, knows about vips8 operations
  1709. - add now has sizealike
  1710. - vips7 binops all do sizealike too, also gbandjoin and ifthenelse
  1711. - new API is now functional
  1712. - vips.c generates GOption flags for vips8 operations
  1713. - added im_gauss_dmask_sep()
  1714. - laplacian generator lost -ve lobes for large sigma
  1715. - added im_aconv(), approximate convolution
  1716. - bumped smalltile to 512x512 for testing
  1717. - added VipsPool, got rid of floating refs again, argh
  1718. - VIPS_EXEEXT is now part of the exported API
  1719. - im_blend() also does sizealike, oops
  1720. - jpeg write was not inverting CMYK, thanks Ole
  1721. - im_falsecolour() converts to mono 8-bit for you
  1722. - im_icc_import*/export*() cast inputs for you
  1723. - im_vips2tiff() uses im__temp_name() for intermediates
  1724. - added vips_wrap7 ... wrap up vips7 operations as vips8 classes
  1725. - man pages are back for commands
  1726. 30/11/10 started 7.24.0
  1727. - bump for new stable
  1728. - added im_dmask2imask(), im_imask2dmask()
  1729. - im_rotate_*mask90() can do masks of any size (thanks Adam Turcotte)
  1730. 18/7/10 started 7.23.0
  1731. - im_vips2bufjpeg() writes to a linked list, so it will work for any size
  1732. image and header
  1733. - added im_vips2bufpng()
  1734. - use GetTempPath() to pick a temp dir on Windows
  1735. - added "rd" mode to im_open()
  1736. - vipsthumbnail and vips use "rd"
  1737. - im_divide spots /0
  1738. - remove liboil dependency, we will use Orc instead
  1739. - various small cleanups (thanks Tim)
  1740. - add lcms2 support
  1741. - VImage(filename) defaults to "rd" mode
  1742. - revise window_offset / window_size, again
  1743. - fix a mixup with ANY hints that caused performance problems on the main
  1744. benchmark
  1745. - rewritten im_circle as im_draw_circle, im_circle moved to almostdeprecated
  1746. - added IM_TYPE_RW args for inplace ops --- nip2 uses this to wrap inplace ops
  1747. automatically
  1748. - special-case 3x3 masks in im_conv() for a 20% speedup
  1749. - add IM_TYPE_RW flag for im__rw_image, helps nip2 auto-wrap inplace ops
  1750. - im_insertplace() casts and bandalikes
  1751. - copy iconv.m4 and friends in bootstrap, thanks Mike
  1752. - moved the stupid _copy() versions of the inplace ops to deprecated, since
  1753. nip2 can call inplace ops directly now
  1754. - added im_draw_rect(), moved im_paintrect() to deprecated
  1755. - added im_draw_image(), moved im_insertplace() to deprecated
  1756. - added im_draw_line(), now clips, moved im_fastline() to deprecated
  1757. - added im_draw_line_user(), now clips, moved im_fastlineuser() to deprecated
  1758. - added im_draw_mask(), now wrappable, moved im_plotmask() to deprecated
  1759. - added im_draw_point(), moved im_plotpoint() to deprecated
  1760. - added im_read_point(), now partial, moved im_readpoint() to deprecated
  1761. - added im_draw_smudge(), moved im_smudge() / im_smear() to deprecated
  1762. - convolution functions support complex images
  1763. - im_blend() can have any format condition image and it's converted to uchar
  1764. - security fix for vips-7.23 wrapper script (thanks Jay)
  1765. - im_affine() has a larger safety margin
  1766. - fix gtk-doc warnings
  1767. - small mask load/save improvements
  1768. - mask gtk-doc done
  1769. - add cfitsio dependency
  1770. - add FITS reader
  1771. - land the vector branch and the orc dependency ... we have SSE
  1772. erode/dilate/add/conv
  1773. - add IM_SWAP
  1774. - dilate/erode do (!=0) on non-uchar images
  1775. - add multipass Orc to im_conv(), 3.5x faster for 5x5 mask
  1776. - im_profile() works for any image format, any number of bands
  1777. - im_rank_image() works for mix of formats, bands
  1778. - morph gtk-doc done
  1779. - oops, missing braces in debug.h and util.h, thanks Laurence
  1780. - update C++/Python binding
  1781. - oop, bool constants are always (int) now, so (^-1) works for unsigned types,
  1782. thanks Nicolas Robidoux
  1783. - much lower memuse for im_cache() in complex pipelines
  1784. - im_scale_dmask() normalises to 20, not 100 ... we hit the fast
  1785. conv path more often
  1786. 12/5/10 started 7.22.2
  1787. - the conditional image of ifthenelse can be any format, a (!=0) is added if
  1788. necessary
  1789. - oops vipsthumbnail sharpening was turning off for integer shrinks,
  1790. thanks Nicolas Robidoux
  1791. - im_vips2jpeg() could fail for very small images (thanks Tim)
  1792. - threadpool wasn't stopping on allocate errors (thanks Tim)
  1793. - vips_sink_disc() could block if allocate failed (thanks Tim)
  1794. 12/5/10 started 7.22.1
  1795. - fix a problem with tiff pyramid write and >1cpu, thanks Ruven
  1796. - constant ops clip to target range
  1797. - oops, moreconst and moreeqconst were the same
  1798. - better buffer handling in sinkdisc for single-line images
  1799. - less chatty errors from "vips"
  1800. - oops, don't rename "copy_set" as "copy_", thanks Ole
  1801. 12/5/10 started 7.22.0
  1802. - bump and rename
  1803. - vipsthumbnail has a manualpage and sharpens correctly
  1804. - more interpolator work
  1805. - fixes to --disable-cxx mode (thanks Mike)
  1806. - added German translation, thanks Chris Leick
  1807. - fixed typos in some messages, thanks Chris Leick
  1808. - fix gettext startup
  1809. - all "colour" in messages changed to "color", have a proper en_GB
  1810. translation file
  1811. - vipsthumbnail delete profile failed if there was a profile
  1812. - interpolate cli unref was broken
  1813. - more accurate, slightly faster bilinear and bicubic (thanks Nicolas Robidoux)
  1814. 21/3/10 started 7.21.3
  1815. - added progress feedback to threadpool
  1816. - --vips-wbuffer2 switch does all wbuffer use now
  1817. - im_wbuffer2() renamed as vips_discsink(), some cleanups
  1818. - im_gammacorrect() can do 16-bit images too
  1819. - im_histplot() could fail for signed int histograms
  1820. - im_fwfft() and im_invfft() could free their output image too early
  1821. - added im_local_imask(), im_local_dmask()
  1822. - added im_mpercent_hist()
  1823. - im_maplut() casts the index image to one of the uint types
  1824. - fixed a couple of /0 problems with scale == 0 masks
  1825. - set G_LOG_DOMAIN to VIPS so we can use g_warning etc.
  1826. - added VIPS_DEBUG_MSG() macro
  1827. - --vips-wbuffer2 turns on threadpool for im_iterate as well
  1828. - im_vips2tiff() uses vips_sink() instead of threadgroup
  1829. - strip out threadgroup
  1830. - add --enable-debug=xxx flag
  1831. - im_iterate() -> vips_sink()
  1832. - better number-of-bands detection for im_magick2vips()
  1833. - added im_get_argv0()
  1834. - added PFM read / write
  1835. 16/1/10 started 7.21.2
  1836. - "invalidate" is careful to keep images alive, so invalidate callbacks can do
  1837. im_close()
  1838. - flood_blob could loop if start point == ink
  1839. - added im_meta_remove()
  1840. - added remove profile option to vipsthumbnail
  1841. - added vips_bandfmt_iscomplex() and friends, im_iscomplex() and friends
  1842. deprecated
  1843. - im_bandjoin()/im_gbandjoin() work with images of varying formats
  1844. - added im_copy_native(), deprecated im_copy_from() and friends
  1845. - im_check*() name rationalisation
  1846. - finally removed old flood stuff
  1847. - im_insert*() bandalike and formatalike
  1848. - im_*join() bandalike and formatalike
  1849. - im_ri2c() bandalike
  1850. - im_vips2png() saves 16-bit PNGs, if necessary
  1851. - vipsthumbnail has selectable interpolators, optional sharpen
  1852. - moved a lot of stuff (eg. im_iscomplex()) from deprecated to
  1853. almostdeprecated to avoid breakage
  1854. - im_csv2vips(): allow lines that end with EOF rather than \n
  1855. - im_vips2tiff has a bigtiff option
  1856. - oops, im_lineset() needs to ask for WIO of mask and ink
  1857. - move cache invalidation to REGION, fixes a race
  1858. - don't im_invalidate() after paint, it can cause horrible performance
  1859. problems ... for example, im_plotmask() used as the action operator for
  1860. im_fastlineuser() is terrible
  1861. - instead, users of the inplace operations need to call im_invalidate() at the
  1862. end of a set of paint actions to trigger an update
  1863. - parent/child renamed as upstream/downstream in DAG
  1864. - set VIPS_ICC_DIR in configure
  1865. - ICC profiles are looked for in VIPS_ICC_DIR as a fallback
  1866. - im_render() mask image generation no longer triggers image calc
  1867. - threadgroups scale output buffers with number of threads for smalltile ...
  1868. improves SMP scaling for narrow images on many-way machines
  1869. - default to max number of processors (--vips-concurrency and IM_CONCURRENCY
  1870. set >0 can override) on linux and win32
  1871. - better nprocs guesser
  1872. - im_render() fixes to help the paintbox, some speedups too
  1873. - added im_wbuffer2(), a new distributed threading system, and --vips-wbuffer2
  1874. to enable it, thank you Christian
  1875. 15/1/10 started 7.21.1
  1876. - added "written" callbacks, used to implement write to non-vips formats
  1877. 26/11/09 started 7.21.0
  1878. - branch for new dev cycle
  1879. - argh, missing init from colour.c (thanks Peter)
  1880. - argh, im_measure() was not looping over bands correctly (thanks Peter)
  1881. - removed mmap_limit, we now always use windows ... reduces VM use hugely,
  1882. because mmap windows are freed when their regions are freed, while images
  1883. are only unmapped when they are closed
  1884. - have a min bytes for mmap windows as well, so we don't make too many tiny
  1885. windows
  1886. - im_disp2Lab() was broken
  1887. - deprecated.h is now defined in terms of current functionality, rather than
  1888. repeating stuff
  1889. - im_flood() and friends rewritten, typically 4x faster
  1890. - removed --with-cimg option, added --disable-cxx
  1891. - added im_system_image() (thanks Roland)
  1892. - added postclose callbacks
  1893. - added vipsthumbnail
  1894. - oops, generate C++/Python wrappers for deprecated operations by default
  1895. - read TIFF images strip-wise, not scanline-wise
  1896. - better TIFF YCbCr reading (thanks Ole)
  1897. - isanalyze generates fewer silly error messages
  1898. 26/11/09 started 7.20.3
  1899. - updated en_GB.po translation
  1900. - file_length is gint64 to avoid win32 breakage
  1901. 23/11/09 started 7.20.2
  1902. - GETTEXT_PACKAGE now includes lib version number (thanks Jay)
  1903. 11/11/09 started 7.20.1
  1904. - oop, im_clip2fmt() was missing PTOP flag, should get a small speedup
  1905. - im_conv() / im_convf() didn't like all-zero masks
  1906. - small updates to im_convf() from im_conv()
  1907. - im_read_imask() produced an incorrect error message if passed a doublemask
  1908. - rename im_convf(), im_convsepf() as _f()
  1909. - vips.c drops _f suffix when overloading
  1910. - regenerate C++ binding, don't make deprecated package
  1911. 9/11/09 started 7.20.0
  1912. - removed vips-7.x.spec.in, shouldn't really have this in SVN
  1913. - bumped version to 7.20
  1914. - fixes to get "make dist" working again
  1915. 3/4/09 started 7.19.0
  1916. - version bump
  1917. - tiny conv speedup
  1918. - catch lcms error messages
  1919. - fix includes for gtk+-3.0
  1920. - report virtual memory too in im__print_all()
  1921. - cosmetic changes to nohalo
  1922. - im_magick2vips() needs to invert alpha
  1923. - now (more or less) passes -Wextra
  1924. - added "fail" option to im_jpeg2vips: fail with an error on any warning
  1925. (thank you Ole)
  1926. - started gtk-doc changes
  1927. - renamed im_meta_get_type() and im_header_get_type() as
  1928. im_meta_get_typeof() and im_header_get_typeof() to prevent confusion with
  1929. GObject type definers (was breaking gtkdoc object scan)
  1930. - revised more names, limited documented API
  1931. - im_buildlut() could segv for non-zero based tables (thanks Jack)
  1932. - VIPS_BUF_STATIC() does not take length arg
  1933. - check for SetImageOption() so we work with GraphicsMagick too
  1934. - "header" sets a non-zero exit code if anything failed
  1935. - add and use im_check_uncoded() and friends
  1936. - matlab load handles column-major and plane-separated images (thanks Mikhail)
  1937. - JPEG save allows "none" for profile, meaning don't attach a profile
  1938. - saner, simpler, faster typecasting for im_add(), im_subtract(),
  1939. im_multiply(), im_divide(), im_remainder()
  1940. - im_remainder() has a float result for float types
  1941. - im_measure() allows sel == NULL, meaning all patches
  1942. - added "deprecated" package
  1943. - faster, simpler, better im_max(), im_min, im_avg(), im_deviate()
  1944. - im_max() returns true modulus, not square of modulus, for complex images
  1945. - im_avg() works for complex, returning average modulus
  1946. - im_system() fix (thanks Roland)
  1947. - im_system() rewrite
  1948. - im_maxpos()/im_minpos() are partial and work for complex
  1949. - im_max()/im_min() are now convenience functions
  1950. - im_maxpos_avg() handles complex and multi-band images
  1951. - added im_point(), rewrite im_point_bilinear() in terms of this
  1952. - close callbacks now happen *after* images have closed resources (such as
  1953. open files) ... this lets them delete temps and stuff. Expect breakage :(
  1954. - added vips_interpolate_get_window_offset()
  1955. - boolean revised: smaller, more general, faster
  1956. - im_remainderconst_vec() renamed to im_remainder_vec() for consistency
  1957. - added im_shift*_vec()
  1958. - renamed im_eor_vec() as im_eorimage_vec() for consistency, also and, or
  1959. - renamed im_eorconst() as im_eorimage_const() for consistency, also and, or
  1960. - relational revised: smaller, more general, faster
  1961. - im_blend()/im_ifthenelse() allows many-band conditional, 1-band then/else
  1962. - im_blend()/im_ifthenelse() allows band and format to differ between then
  1963. and else parts
  1964. - better im_check() functions
  1965. - added im_flood_other() as start of simple segmentation operator
  1966. - added im_label_regions()
  1967. - im_printlines(), im_debugim() deprecated (use im_vips2csv() instead)
  1968. - meta, header, callback, error, region, check, generate, memory gtkdocs
  1969. - removed printlines tool, vips2csv is much better
  1970. - removed other useless tools as well: debugim, binfile
  1971. - fix up addr calcs on 64-bit machines with >2gb images and inplace ops
  1972. (thanks Christoph)
  1973. - im_generate() checks that im_demand_hint() has been called for this image
  1974. - im_jpeg2vips.c, set scale_num on shrink (thanks Guido)
  1975. - heh argh reading history always stopped after the first line (thanks Haida)
  1976. - added im_histindexed
  1977. - new im_iterate() calls start and stop functions from workers so resources
  1978. they make are owned by the worker thread ... this makes it possible to have
  1979. start functions which create multiple regions and therefore allows
  1980. im_iterate() to scan more than one image at once
  1981. - threadgroup no longer has any default action, you must attach a work
  1982. function
  1983. - added im_copy_file()
  1984. - added im_insertset()
  1985. - im_insertplace() allows small to be outside big
  1986. - added im__colour_difference(), colour ops now work on any image format
  1987. - added im_col_display_get_table(), so display tables are now shared by name
  1988. - added im__colour_unary()
  1989. - drop "set" postfix from names, so "insert" can now take a vector of positions
  1990. - deprecate all the "_raw" variants, not really necessary now
  1991. - removed "contrib", not very useful anymore
  1992. - added im_header_as_string()
  1993. - im_malloc()/im_free() now call g_try_malloc()/g_free() ... removes confusion
  1994. over whether to use im_free() or g_free() for things like im_header_string()
  1995. - added im_history_get(), im_getexp(), im_printdesc() as wrapped functions ...
  1996. so you no longer need the "header" program
  1997. - image vectors from Python work, woo
  1998. 25/3/09 started 7.18.0
  1999. - revised version numbers
  2000. - updated vipsmanual
  2001. - revised manpages
  2002. - removed name and "changed" from vipsobject since we don't use them yet
  2003. - explicitly link with stdc++ for nohalo etc. stuff
  2004. - wrap im_gauss_imask_sep in C++/Python
  2005. 6/3/09 started 7.17.3
  2006. - revised nohalo
  2007. - remove fading stuff from im_render() -- cleaner and simpler
  2008. - configure spots support for "restrict"
  2009. - reset dcm:display-range on magick read to help DICOM
  2010. - saner im_buildlut() behaviour
  2011. - added im_gauss_imask_sep()
  2012. - allow open and view of truncated images (thanks Joe & Rachel)
  2013. - revising rounding on im_affine*() coordinate transforms to make them more
  2014. stable
  2015. - added Radiance write
  2016. - added im_float2rad()
  2017. - added IM_CODING_RAD, support where it makes sense (extract, flip, rotate,
  2018. etc.)
  2019. - IM_PROGRESS env var
  2020. - docs for rad2float and IM_CODING_RAD
  2021. 3/3/09 started 7.17.2
  2022. - im_magick2vips.c: allow funky bit depths, like 14 (thanks Mikkel)
  2023. - isradiance was returning TRUE too often
  2024. - radiance loader now loads packed RGBE/XYZE instead of unpacking to float
  2025. - added im_rad2float()
  2026. 11/10/08 started 7.17.0
  2027. - merge vips-7.16 branch back into trunk
  2028. - bumped version number to 7.17.0
  2029. - re-added type.[hc]
  2030. - added vipsinterpolate and im_affinei
  2031. - added yafrsmooth interpolation
  2032. - added yafrtest
  2033. - added yafrnohalo
  2034. - ubuntu 8.10 changes
  2035. - interpolators get an output pointer, not region
  2036. - tuning for bicubic
  2037. - revised transform / clip code, we now do corner not centre
  2038. - yafr-smooth reworked along the lines of bicubic
  2039. - cleanups after yafr hacking
  2040. - added affinei_all
  2041. - don't set im_error() on failed callback
  2042. - moved im_format_t to VipsFormat, now sits over VipsObject
  2043. - IM_FORMAT_FLAG_PARTIAL -> VIPS_FORMAT_PARTIAL
  2044. - updated docs
  2045. - interpolators use type introspection
  2046. - added vips --list classes, does formats too
  2047. - include sys/param.h to get PATH_MAX in more places
  2048. - added vips_format_get_flags()
  2049. - oop, forgot to check for cancel during tiled tiff write
  2050. - don't use mmap for tiff read: no performance advantage, chews up VM
  2051. - VIPS_INTERPOLATE_SHIFT bumped to 12, we need the extra precision for u16 gel
  2052. data
  2053. - added string->double transform for cmdline args
  2054. - merged class-params branch back into trunk
  2055. - IM_FREE() can do "const char*" variables
  2056. - im_buf_t renamed as VipsBuf
  2057. - added vips_object_to_string()
  2058. - added "nickname" and "description" properties to VipsObject
  2059. - shift/and/or/eor ops were broken for non-int types
  2060. - added nohalo interpolator
  2061. - updated format docs
  2062. - IM_INPUT_INTERPOLATE() now used by affinei and affinei_all
  2063. - added vips_object_new
  2064. - resamplers/interpolators now in a resample package
  2065. - removed yafrnohalo.c
  2066. - added matio as a dependency
  2067. - added Matlab save file read
  2068. - added Radiance file read
  2069. - better file-not-found messages
  2070. 11/9/08 started 7.16.3
  2071. - oop typo in manpage for im_project()
  2072. - doc fixes
  2073. - returning non-zero from eval callbacks was not always stopping computation
  2074. 11/9/08 started 7.16.2
  2075. - added --without-v4l option
  2076. - added -no-undefined to libsrcCC build, so we get a libvipsCC.dll
  2077. - removed the swig dependency: we include the generated bindings in the
  2078. distribution tarball
  2079. 6/9/08 started 7.16.1
  2080. - trigger eval callbacks on tiled tiff write
  2081. - added vips as an im_format_t
  2082. - added im_format_write()/_read() convenience functions
  2083. - more cleanups for the format API, argh
  2084. - removed win32/ directory now mingw finally makes DLLs correctly
  2085. - removed the windowed spcor for now, it has some edge effects
  2086. 24/8/08 branch for 7.16
  2087. - renames and version numbers
  2088. - load plgs from libdir as well as libdir/vips-x.x for compat
  2089. - complex -> complex conversion was broken
  2090. - refstring <-> gstring transforms
  2091. - better behaviour with Magick non-presence
  2092. - added --enable-links switch to configure ... we no longer make the bin/im_*
  2093. links by default
  2094. - started a 'format' section in the docs
  2095. - configure fails if no gettext found
  2096. - revised po/
  2097. - released as 7.16.0!
  2098. 25/5/08 fork for loadable image format branch
  2099. - image load/save in non-vips format code moved to own dir
  2100. - simple format searching added
  2101. - some cleanups for vips load
  2102. - im_open() simplified
  2103. - add im_format_flags
  2104. - only consider formats with a save method in im_format_for_name()
  2105. - oops, format sort order was reversed
  2106. - im_filename_suffix() includes "." in suffix
  2107. - merge back into trunk for 7.15.1
  2108. - remove im_ispng(), im_png2vips_header() etc. & friends
  2109. - add "vips --list formats"
  2110. - rename VBuf as im_buf_t for consistency
  2111. - add type.[hc], start of new type system
  2112. - removed man pages for IM_MIN, MAX and RINT to avoid case confusion on
  2113. OS X / win
  2114. 7/3/08 started 7.15.0
  2115. - MAGIC constants should be tagged as unsigned
  2116. - write MAGIC correctly on sparc/powerpc machines (thanks Joe)
  2117. - oop, we were still making fade threads even when not fading
  2118. - tiny cond jump fixes for valgrind in colour.c
  2119. - remove -lstdc++ from libs, except on windows
  2120. - push Magick cflags earlier in the include order to make it easier to pick
  2121. GraphicsMagick over ImageMagick (thanks Mikhail)
  2122. - fix the en_GB translation
  2123. - use meta to preserve resunit between tiff load and save
  2124. - small doc improvements
  2125. - read and write CMYKA tiff (thanks Doron)
  2126. - performance improvements for morphology ops, esp. when zooming out
  2127. - oop, im_render() was broken for mask == NULL
  2128. - better support for multiple Python installs (thanks Jay)
  2129. - better IM_SETSTR() stops some warnings
  2130. - im_histcum() works for signed histograms
  2131. - better rounding for im_conv(), im_convsep()
  2132. - tiny speedup for im_conv()
  2133. - better /0 test for remainderconst
  2134. - revise i18n configure, get rid of intltool
  2135. - command-line IMAGVEC input could segv with non-vips image output
  2136. - added .tobuffer()/.frombuffer(), .tostring()/.fromstring() to Python binding
  2137. - add PIL_mode_from_vips () and vips_from_PIL_mode () utility functions
  2138. - update docs for new Python stuff
  2139. - FIND_ macros no longer search for stuff, you have to specify prefixes if the
  2140. packages are not on the default path (or in $prefix). This avoids some
  2141. accidents on some platforms
  2142. - configure prints a summary of optional packages found at the end
  2143. - im_lhisteq() checks for window too small
  2144. - added invalidate callbacks
  2145. - now tests for MagickWand before ImageMagick (thanks Adam Turcotte)
  2146. - added "-rotate" option to vips2dj
  2147. - added man page for im_resize_linear
  2148. - better jpeg-in-tiff YCbCr read (thanks Ole)
  2149. - oops, invalidatefns were not being freed on im__close()
  2150. - VMask() can init from std::vector, so Python can init from []
  2151. - added IM_LIBDIR, im_guess_libdir()
  2152. - load plugins from libdir/vips-x.x on startup
  2153. - added meta get/set int/double/string/area/blob/GValue to C++ API
  2154. - include time_t in vips.h, thanks Nicolas Robidoux
  2155. - lock global image list (thanks lee)
  2156. 25/1/08 started 7.14.0
  2157. - bump all version numbers for new stable
  2158. - better CMYK JPEG read (thanks Ole)
  2159. - add __str__ to VError in Python (thanks Ole)
  2160. - revert the dynamic wrapping for Python :-( next version!
  2161. - added VImage::convert2disc (thanks Ole)
  2162. - you can now set the jpeg quality factor for tiff pyramids (thanks Joe)
  2163. - you can now shrink jpegs during read, see "man im_jpeg2vips"
  2164. - added CMYK JPEG write
  2165. - optionally use GraphicsMagick (thanks Bob Friesenhahn)
  2166. - look for MAGICKCORE_HDRI_SUPPORT (thanks Marcel)
  2167. - set icc profiles in tiff pyramids explicitly (thanks Joe)
  2168. - add --without-cimg configure option
  2169. - add im_maxpos_subpel
  2170. - make im_abs compile without liboil
  2171. - add im_align_bands
  2172. - fix type overflow in complex division
  2173. - fix im_cross_phase and im_addgnoise (Tom)
  2174. - updated docs, C++ and python
  2175. - header no longer stops on error
  2176. - C++ dummy2.cpp helps OS X linking
  2177. 12/12/07 started 7.13.3
  2178. - added "include <cstring>" to VImage.cc to help gcc 4.3
  2179. - started moving the python binding to dynamic wrapping
  2180. - added im_wrap(), im_wraptwo(), im_phasecor_fft(), im_cross_phase() (Tom)
  2181. - memleak plugged in im_save_string_setf()
  2182. - bugfix in and docs for im_gradcor() (Tom)
  2183. - use Glib macros to make im_msb work on big-endian platforms (Tom)
  2184. - use Glib macros to get rid of needless compile warnings (Tom)
  2185. - fix type overflow in im_c2ps/im_abs (Tom)
  2186. 31/10/07 started 7.13.2
  2187. - build cimg on windows fixes
  2188. - various include cleanups, updated man pages
  2189. - break im_wbuffer() out to a separate API
  2190. - use im_wbuffer() to make im_vips2jpeg() compress in the background
  2191. - also im_vips2png(), im_vips2tiff(), im_vips2ppm()
  2192. - revised evaluation progress system
  2193. - new evalstart/evalend/preclose callbacks fix over/underflow reporting
  2194. - but the meaning of evalend has changed in a non-backwards-compatible way :(
  2195. use preclose instead ito get the old behaviour
  2196. - added "--vips-progress" flag to turn on a simple eval progress tracker
  2197. - make im_spcor[12] static, im_spcor is wrapper (Tom)
  2198. 28/9/07 started 7.13.1
  2199. - vips2dj can print RGB images
  2200. - oop, include <stdexcept> missing
  2201. - add protos for generate/iterate function args, fix warnings
  2202. - add cimg package, we now have C++ source inside VIPS, sigh
  2203. - added OUTPUT_DOUBLEVEC and OUTPUT_INTVEC, use for im_maxpos_vec() and friends
  2204. 29/8/07 started 7.13.0
  2205. - we now have a trunk and the version is 7.13.x, woo!
  2206. - move manpages into a separate man/ dir ... speeds up builds a lot on windows
  2207. - don't install malkovich
  2208. - don't fail on unknown args for python (thanks Simon)
  2209. 1/8/07 started 7.12.5
  2210. - im_embed() is more general ... x and y can be negative
  2211. - predicate.c is smaller and cleaner
  2212. - libsrcCC link improvement from Pablo
  2213. - support 32/64-bit ImageMagick as well (thanks Marcel)
  2214. - better im_magick2vips() for Q8 ImageMagick
  2215. - split repository to trunk/branches ready for a stable 7.12.x branch
  2216. 27/7/07 started 7.12.4
  2217. - proto.h had vars called small, breaking on win32
  2218. - more python fixing, we now have working matrices too
  2219. 17/7/07 started 7.12.3
  2220. - fix to VImage.i for gcc 4.2 (thanks Damir)
  2221. - eek, off by 1 for more than 1 band hists
  2222. - needed a slightly larger worst-case buffer in im__b64_encode()
  2223. - tiny cleanup for make_hI() prevents cond jump on ui in valgrind
  2224. - --disable-threads was broken again
  2225. - remove .svn dirs from dist
  2226. - now passes distcheck again
  2227. 17/7/07 started 7.12.2
  2228. - added im_bandmean()
  2229. - added support for TIFFTAG_PREDICTOR (Andrey Kiselev)
  2230. - fix TIFFOpen() mode snafu (Andrey Kiselev)
  2231. 11/5/07 started 7.12.1
  2232. - memory.c abort()s with DEBUG
  2233. - oops, im_bits_of_fmt() manpage was not being installed
  2234. - im_histcum() can do all image types
  2235. - updated NEWS
  2236. - added im_csv2vips_header()
  2237. - command-line csv read was broken (thanks Tom)
  2238. - removed length limit on argument vectors (Tom)
  2239. - added IM_PREFIX, configure-time install prefix
  2240. - oop, turned off memory.c DEBUG
  2241. - fix some bogus gcc 4.1 warnings with im_open_local_array()
  2242. - better vips usage message
  2243. - oops, IM_ANY missing from im_demand_hint() manpage (thanks Shahid)
  2244. - just warn if plugins fail to load in im_init_world()
  2245. - expose Vargv and make refblock public rather than private so that
  2246. subclasses of VImage can add vips-style member operations (thanks Pablo)
  2247. - oops, im_initdesc() needed to have bbits set correctly (thanks Shahid)
  2248. - make VError derive from std::exception more officially
  2249. - woo, got exceptions working in SWIG
  2250. - soname version bumped to 12.x.x
  2251. - oops, added vector ops to Python
  2252. - check for overflow of int in return of strtol in dispatch system (Tom)
  2253. - add im_[di]mask_[xy]size to dispatch system (Tom)
  2254. - add im_gradcor(), im_grad_[xy] (Tom)
  2255. 26/3/07 started 7.11.21
  2256. - ooo, added %include "std_except.i" & friends to VError.i, VImage.i
  2257. - im_init_world() is more lenient about recursive invocation
  2258. - im_gbandjoin() falls back to im_copy() for 1 input image
  2259. - race condition fixed in im_render.c (thanks Simon)
  2260. - bump for 7.12!!!
  2261. 26/1/07 started 7.11.20
  2262. - another fix to im_region_image() (thanks Mikkel)
  2263. - tiny speed up to im_rect_includesrect()
  2264. - avoid recursive invocation in im_init_world() (thanks Christian)
  2265. - fix to extract_prefix (thanks Christian)
  2266. - buffer cache is now per thread
  2267. - combine buffer unref and ref in a single operation to reduce malloc/free
  2268. cycles
  2269. - new internal API for passing regions between threads means we can remove
  2270. buffer locks
  2271. - more buffer/region sanity checks, plus a memory barrier
  2272. - lock around error buffer changes
  2273. - im_vips2mask() was wrong for nx1 m-band images
  2274. - liboil back to "test"
  2275. - add buffer_cache_list to avoid GHashTable _insert()s
  2276. - oop, --vips-concurrency was broken
  2277. - renamed (in dispatch layer) im_and/or/eor_const -> im_and/or/eorimageconst
  2278. for consistency
  2279. - C++ API wraps IMAGEVEC, DOUBLEVEC, INTVEC arguments
  2280. - oop, IMAGE % vector<double> was broken
  2281. 21/12/06 started 7.11.19
  2282. - added im_linreg() (Tom)
  2283. - various C++ API polishes, plus a bugfix (Dennis Lubert)
  2284. - vips.spec split to devel and python too (Dennis Lubert)
  2285. - be more explicit about sizeof(magic)
  2286. - init magic to native order by default (thanks Dennis)
  2287. - Hist becomes im_history_get()
  2288. - new history mechanism is faster, uses much less memory, and removes
  2289. duplicate lines
  2290. - added im_get_option_group()
  2291. - added official im_concurrency_set()/_get()()
  2292. - don't read bbits from vips files ... set ourselves from bandfmt
  2293. - oops add RGB16 and GREY16 to C++ header
  2294. - --list packages option to vips.c
  2295. - updated docs to 7.12
  2296. - oops, im_region_image() snafu was causing a lot of recomputation
  2297. - make im_mpercent() suck a little less
  2298. - EXIF save was a bit bOrked ... cause of mac crashes?
  2299. - im_histgr(), im_heq(), im_hist() all number bands from zero now
  2300. - fix stride in liboil calls
  2301. - set RGB16 on 16-bit RGB ICC export
  2302. 29/11/06 started 7.11.18
  2303. - added im_buffer_t so regions can share calculated pixels: 2-3x speedup on
  2304. the benchmark
  2305. - im_region_local() -> im_region_buffer()
  2306. - im_sharpen() order change to help sharing
  2307. - im_invalidate() clears buffer caches
  2308. - add sentinel attributes
  2309. - add some missing im_demand_hint()s
  2310. - paint ops invalidate the output image
  2311. - fix nothread eval
  2312. - raise threads limit to 1024 (thanks Christian)
  2313. - manual redone
  2314. - vipsCC python init() hooks
  2315. - add liboil dependency
  2316. - use liboil for im_abs(), im_add(), im_divide(), im_floor(), im_multiply(),
  2317. im_subtract(), im_lintra(), im_avg(),im_deviate()
  2318. - quiet libtoolize test (thanks Tom)
  2319. - im_benchmarkn now regrows image each time
  2320. - strip meta from sample2.v ... saves a lot of mem (esp. Hist)
  2321. - added im_isscalar() (Tom)
  2322. - added IM_REGION_ADDR_TOPLEFT() (Tom)
  2323. - reduce size of im_rightshift_size.c to help compile (Tom)
  2324. - make im_stop_many(NULL) safe (Tom)
  2325. 24/11/06 started 7.11.17
  2326. 1;5Q
  2327. - better benchmark script makes graphing easier
  2328. - double-buffer image file writes
  2329. - reuse write threads
  2330. - clean up threadgroup / iterate / generate
  2331. - added im_benchmarkn to make it easier to make a CPU-bound op on large
  2332. machines
  2333. - im_cache() failed for cpus > 1
  2334. 1/11/06 started 7.11.16
  2335. - moved im__convert_saveable() into im_copy() (thanks Christian)
  2336. - missing gobject dependency (thanks Christian)
  2337. - --enable-threads was broken (thanks Christian)
  2338. - eval without theads was broken (thanks Christian)
  2339. - LIBADD libvips.la to libvipsCC.la (thanks Simon)
  2340. - benchmark.sh is now plain sh, not bash
  2341. - set ORIENTATION_TOPLEFT in im_vips2tiff (thanks Josef)
  2342. - oops, im_vips2csv() output separator was broken
  2343. - added im_benchmark2
  2344. - move XYZ2Lab LUT build outside the eval thread
  2345. 30/10/06 started 7.11.15
  2346. - print leaked windows
  2347. - oops, race condition in im_window_unref()
  2348. - integrated im_region_window() into im_region_image(), tiny speed up
  2349. 6/10/06 started 7.11.14
  2350. - ifthenelse and affine dhints revised
  2351. - buildlut no longer outputs x cods
  2352. - configure asks for glib >= 2.6 (we need GOption)
  2353. - configure uses AC_TOOL_CHECK to find tool names to help cross-compiling.
  2354. - better configure test for libexif
  2355. - add </libexif/ prefix if required
  2356. - test for glibtoolize during bootstrap to help OS X
  2357. - add --version to vips main prog
  2358. - don't set Type in im_scale, want to be able to scale hists, for example
  2359. - im_vips2mask() allows multiband hists as well
  2360. - im_vips2csv() lets you specify an output separator
  2361. - vips.c cleanups in arg handling
  2362. - removed python binding to C layer, too hard to get it working right
  2363. - leak test python test program
  2364. - added throw() decls to C++ to help SWIG
  2365. - no longer derive VError from std::exception, can't get it to work with SWIG
  2366. - added mmap window manager to share windows between regions ... big reduction
  2367. in VM use for large workspaces and for SMP
  2368. - add im_spcor2 (with sliding window) (Tom)
  2369. 15/9/06 started 7.11.12
  2370. - python vips wrapper hooks into init to start vips
  2371. - oop, python detect was broken again
  2372. - im_file_length() error return was wrong (thanks Christian)
  2373. - im_csv2vips() isnored last column if there was no trailing
  2374. whitespace/quoting
  2375. - test for NULL filename/mode, common if you forget to check argc
  2376. (thanks Bruno)
  2377. - im_break_token() returns NULL on trailing whitespace ... helps read_dmask
  2378. work with trailing whitespace on matrix headers
  2379. - added im_buildlut(3)
  2380. - removed extra im_free() in im_copy() fallback in im_msb()
  2381. - added GValue input/output args
  2382. - various C++ binding improvements (thanks Dennis): namespace support,
  2383. VError inherits from std::exception, small fixups
  2384. - remove im_msb() warning on fallback to copy for uchar ... not very serious,
  2385. happens a lot in nip2
  2386. - added <vips/vips> C++ include ... include in a namespace
  2387. - added im_benchmark / SMP benchmark script
  2388. - add im_maxpos_avg() and im_point_bilinear() (Tom)
  2389. - make im_region_free(NULL) safe (Tom)
  2390. - link in manpages for im_contrast_surface (Tom)
  2391. 8/9/06 started 7.11.11
  2392. - add im_norm_dmask()
  2393. - removed old code for gradient and lindetect
  2394. - internal decls split from proto.h to help SWIG
  2395. - test for python and SWIG during configure
  2396. - added python dir for the binding
  2397. - python binding done!
  2398. - oops, --without-python was broken (thanks Tom)
  2399. - added python/test
  2400. - add im_lu_decomp() im_lu_solve(), rewrite NR type functions in terms of these (Tom)
  2401. 23/6/06 started 7.11.10
  2402. - still more im_affine() rounding/clipping tweaks
  2403. - ignore "--" arguments to vips.c
  2404. - im_init_world() also sets g_*_prgname() and loads plugins
  2405. - add manpage for im_init_world() (oops)
  2406. - error_exit() prints prgname
  2407. - various cygwin fixes
  2408. - fix cache thread assert failure (thanks Joe)
  2409. - "header" now uses GOption, slightly different args, will loop over args
  2410. - fixed assert() overenthusiasm in im_prepare()
  2411. - im_csv2vips() now has separate whitespace / separator tables
  2412. - add im_rightshift_size() (Tom)
  2413. - add im_maxpos_vec(), im_minpos_vec() (Tom)
  2414. - add im_norm_dmask() (Tom)
  2415. - make im_free_[di]mask(NULL) safe (Tom)
  2416. 23/6/06 started 7.11.9
  2417. - back on sourceforge CVS again
  2418. - require openexr 1.2.2 or greater
  2419. - range check xy on im_insert*() for sanity
  2420. - VMask::invertlut decl removed (thanks Jean)
  2421. - added \"all\" option to vips.c
  2422. 17/5/06 started 7.11.8
  2423. - debrokened openexr read
  2424. - added im_tile_cache()
  2425. - added tiled read to im_exr2vips()
  2426. - im_tiff2vips() now uses im_tile_cache() rather than its own cache ...
  2427. faster in some cases, less RAM use in some cases, saves 200+ lines
  2428. - removed 'broken' read option from im_tiff2vips()
  2429. - read/write doubles with g_ascii_strtod() and friends where appropriate
  2430. - add a "thread" member to region to help sanity check region ownership
  2431. - saner threadgroup fixes a race problem on gcc 4.0.3 / amd64
  2432. - added im_vips2csv()
  2433. - im_open() now does CSV read/write too
  2434. - oops, broke vips main prog for function name in argv1 case
  2435. 22/4/06 started 7.11.7
  2436. - split vips_png.c to im_vips2png.c and im_png2vips.c
  2437. - added OpenEXR dependency
  2438. - added im_exr2vips(), im_exr2vips_header()
  2439. - added im_isexr(), im_open() knows about OpenEXR
  2440. - added im_contrast_surface(), im_contrast_surface_raw() (Tom)
  2441. - added im_msb(), im_msb_band() (Tom)
  2442. - im_scale() sets Type on output
  2443. - added RGB16, GREY16 types
  2444. - im_*2vips() set these types if appropriate
  2445. - configure fixes for mac
  2446. - vips main prog uses GOption
  2447. - im_icc_* locks around calls to cmsDoTransform() to avoid corruption on SMP
  2448. machines
  2449. - add im_prepare_many() (Tom)
  2450. 10/3/06 started 7.11.6
  2451. - typo in manpage and header for im_rect_dup() (Tom)
  2452. - don't abort image load if XML read fails
  2453. - added im_video_test() ... test video source
  2454. - oops, lcms .pc finder was not working
  2455. - clipping problem in im_affine() fixed (thanks Clare)
  2456. - test for attr support in libmagick
  2457. - im_text() returns an error for empty string
  2458. - im_falsecolour() scale reversed
  2459. - im_remosaic() could crash on bad mosaics
  2460. - configure changes to fix --without-magick, lcms and fftw (but sadly we now
  2461. require .pc files for these libs)
  2462. - im_vips2jpeg() automatically converts to 1 or 3 band sRGB uchar for write
  2463. - also im_vips2png()
  2464. - added im_project()
  2465. 20/2/06 started 7.11.5
  2466. - added im_csv2vips()
  2467. - commas in filename options can be escaped with a '\'
  2468. - raise tile buffer limit (thanks Ruven)
  2469. - im_spcor() and im_fastcor() have prettier borders
  2470. - im_fastcor() returns sum of squares of differences, not sum of abs of
  2471. differences
  2472. 18/11/05 started 7.11.4
  2473. - small win32 fixes, thanks Juan
  2474. - added im_flood_blob_copy() ... a temporary hack
  2475. - much faster im_histplot()
  2476. - read RGBA palette-ized PNG images more robustly (thanks Tom)
  2477. - turn on -ms-bitfields automatically for mingw
  2478. 26/9/05 started 7.11.3
  2479. - better error recovery for im_binfile() file too large
  2480. - all raw files now use mmap windows, so (eg.) ppm and analyze reads can go
  2481. >2GB
  2482. - remove DISABLE_COMPAT ... you now have to define IM_ENABLE_DEPRECATED to get
  2483. broken #defines
  2484. - fix to build without exif, thanks Chas
  2485. - use native win32 API for seek()/truncate() to work with large files
  2486. - use attribute to check printf-style args with gcc
  2487. - fix gcc4 warnings
  2488. - removed ebuild, since it's in gentoo now
  2489. - im_magick2vips() sets meta from attributes (good for dicom)
  2490. - im_magick2vips() writes many-frame images as tall thin VIPS images
  2491. - im_histcum() was broken for vertical histograms
  2492. - im_histnorm() is neater
  2493. - simpler and faster inner loop for im_conv() and im_convf() avoids gcc4 bug
  2494. - appendc() was reading past the end of the buffer on MSB machines
  2495. 13/6/05 started 7.11.2
  2496. - im_copy_set() was messed up in 7.11.1
  2497. - put into CVS, phew
  2498. - fixed a rounding bug in im_affine() ... should no longer get black edges on
  2499. image resize
  2500. - if TIFF open fails in im_open(), try going through libmagick
  2501. - merge requires all bands == 0 for transparency (used to just check 1st
  2502. band)
  2503. - 16 bit LAB TIFF read/write was wrong
  2504. - new GType for refstring makes it visible from im_header_map()
  2505. - jpeg loader attaches exif data (and human-readable meta fields)
  2506. - jpeg saver writes any exif data
  2507. - meta not wiped by im_*incheck() in a "w" image
  2508. - meta keeps traverse order
  2509. - now require glib >= 2.4
  2510. - require libxml-2.0 for meta save and new history mechanism
  2511. - no more .desc files, history saved in XML after pixel data
  2512. - i/s/d meta fields saved there too
  2513. - added base64 encode/decode
  2514. - added blob header write
  2515. - added a save string type: types which define transforms to and from the
  2516. save format get serialized
  2517. - GValue meta API now exposed, since we can serialise anything
  2518. - jpeg loader loads ICC profiles
  2519. - jpeg saver saves ICC profiles from the VIPS header
  2520. - src/header.c knows about meta system
  2521. - added im_analyze2vips(), im_grid(), im_raw2vips()
  2522. - extract/grid/replicate/zoom were not setting TRANSFORM flag
  2523. - better falsecolour LUT
  2524. - less stupid + more portable read/write of VIPS header
  2525. - better im_updatehist()
  2526. - jpeg load sets vips xres/yres from exif, if possible
  2527. - jpeg save sets exif xres/yres from vips, if possible
  2528. - icc_export and icc_transform attach profiles and intents to output images
  2529. - added im_icc_import_embedded() to import with an embedded profile
  2530. - split vips_jpeg.c into two, it was getting too big
  2531. - added im_cp_descv(), im_cp_desc_array(), funcs use them
  2532. - removed im_append_Hist() from API
  2533. - fixed meta copy bug
  2534. - better history copy, removed nonsense about 1st line of Hist being special
  2535. - tiff read/write now reads/writes ICC profile from meta
  2536. - edvips rewritten to remove stupidness, and can now set xml
  2537. - header can now print xml extension block
  2538. - IM_ prefix for colour temp names
  2539. 1/6/05 started 7.11
  2540. - added im_copy_morph()
  2541. - im_region_region() allows Bands and BandFmt to differ, provided
  2542. sizeof( pel ) is the same ... makes im_copy_morph() work
  2543. - added im_meta*() functions (MW)
  2544. - im_header_*() rewritten for meta
  2545. - added im_header_exists(), im_header_map()
  2546. - use pkg-config to find libpng and ImageMagick
  2547. - added im_lineset()
  2548. - added im_extract_areabands() (JF)
  2549. - added im_copy_from() (JF)
  2550. 15/4/05 started 7.10.12
  2551. - im_ifthenelse just evals left/right for region all zero/all one
  2552. - also im_blend
  2553. - swap g_setenv() back to plain setenv() so we work with glib 2.2
  2554. 9/4/05 JC started 7.10.11
  2555. - docs no longer have broken links
  2556. - fixed memleak in im_text()
  2557. 8/4/05
  2558. - one bit tiff read was sometimes reading a byte too far in each scanline
  2559. 14/1/05 started 7.10.9
  2560. - im_filename_split() will now usually work for filenames containing ':'
  2561. characters
  2562. - added im_render_fade() for fancier nip2 image repaint
  2563. - added "ccittfax4" as a TIFF compression option
  2564. - fix all 64-bit compiler warnings
  2565. - "," allowed as column separator in mask read
  2566. - better at spotting singular matrices
  2567. - small im_render() tidies
  2568. - glib dependency reduced to just 2.0, but untested ... helps people building
  2569. on older systems who aren't interested in nip2
  2570. - removing leading spaces from IMAGEVEC arguments
  2571. - load non-interlaced PNGs more efficiently
  2572. - 1 point mosaic functions work on more image types
  2573. - better memory allocation debugging info
  2574. - local memory on regions can shrink as well as grow
  2575. - shut down threadgroups on render if no dirty tiles
  2576. - limit number of simultaneous renders
  2577. - higher mmap window threshold
  2578. - allow max == -1 for unlimited render cache
  2579. - 'priority' marks non-suspendable renders
  2580. - im_embed() mode == 4 paints white pels
  2581. - im_tiff2vips() was broken with --disable-threads
  2582. - oops, im_errormsg() compat macros were GCC only
  2583. - larger default tile size and strip height
  2584. - tiff write sets PHOTOMETRIC_CIELAB for vips TYPE_LAB images ... so we can
  2585. write float LAB as well as float RGB (thanks Ruven)
  2586. - also 16 bit LAB TIFF write
  2587. - im_render() rewritten
  2588. 20/11/04 started 7.10.8
  2589. - im_sharpen() is ~15% faster
  2590. - more quoting for MAGICK finder
  2591. - im_XYZ2Lab() uses a LUT rather than cbrt(), 5x faster
  2592. - --disable-threads removes gthread dependency completely (thanks Simon)
  2593. - intercept TIFF warnings as well as errors ... stops occasional libMagick
  2594. exceptions
  2595. - add im_init_world() to im_init() as well to help backwards compat (thanks
  2596. Simon)
  2597. - im_icc_present() function description was broken, thanks Jay
  2598. - oops, libtool library versioning was wrong, thanks Jay
  2599. - can now make TIFF pyramids of any non-complex image type (was uchar and LAB
  2600. only), thanks Ruven
  2601. - 1st order mosaic code now works for LABQ too
  2602. - build system changes to make "make distcheck" work
  2603. - RPM .spec files fixed up and updated by configure (thanks Simon)
  2604. - tiny cleanups for vdump
  2605. - use g_setenv()/g_getenv()
  2606. - tiny improvements to IM_FREE*()
  2607. - tiny VImage debug print fixes (thanks Jay)
  2608. - swap off_t for gint64 to fix LARGEFILE support on win32
  2609. - computation feedback now uses gint64 for number of pels, so we give feedback
  2610. correctly on images with >2**31 pels
  2611. - other small fixes for >2**31 pels in an image
  2612. 10/11/04 started 7.10.7
  2613. - im_histnD() was not checking BandFmt (thanks Kirk)
  2614. - improvements to threading system speed up non-vips output in some cases
  2615. - use cbrt(x) where we can ... 10x faster than pow(x,1.0/3) on win32
  2616. - typeo in im_text() when built without PANGOFT2 (thanks Stefan)
  2617. 1/11/04 styarted 7.10.6
  2618. - tiny doc fixes
  2619. - scripts now only depend on 'vips' program
  2620. - im_open( "r" ) is now lazier ... for non-VIPS formats, we delay read until
  2621. the first ->generate()
  2622. - so im_open_header() now deprecated since im_open("r") is identical
  2623. - now looks for fftw3 as well as fftw2 ... slightly faster ffts
  2624. 19/10/04 started 7.10.5
  2625. - fix to light_correct (thanks Jay)
  2626. - edvips knows about xoffset/yoffset
  2627. - better vips enum<->char conversions
  2628. 4/10/04 started 7.10.4
  2629. - man page fixes (thanks Jay)
  2630. - removed last csh scripts (thanks Jay)
  2631. - scripts default VIPSHOME to $prefix (thanks Jay)
  2632. - doc build system tidies
  2633. - im_rank() edge padding was wrong
  2634. - im_vips2tiff() can now embed ICC profiles
  2635. 22/9/04 started 7.10.3
  2636. - mildly better im_vips2tiff()
  2637. - *, -, +, /, % between two images now work for mixed number of bands
  2638. - im_free() was missing a man page
  2639. - revised documentation
  2640. 1/9/04 started 7.10.2
  2641. - C++ .pc files were still set for 7.9, grr
  2642. - im_insertplace() didn't check compatibility of images (thanks Matt)
  2643. 27/7/04 started 7.10.1
  2644. - set default stack size explicitly to help platforms with a very low default
  2645. - 16 bit RGB tiff read was broken (bug introduced in 7.9.5, thanks Haida)
  2646. - !pangoft2 was broken, thanks Kenneth
  2647. - win32 build fixes
  2648. 12/7/04 renamed as 7.10.0
  2649. - added NOCACHE function flag ... stops nip memoising video & paint ops
  2650. - added im_extract_bands() ... takes out many bands from an image
  2651. - im_vips2tiff() scanline write speed up for area pipelines
  2652. 10/6/04 started 7.9.6
  2653. - tiny polishing of im_ppm2vips()
  2654. - im_blend() can now work on labq
  2655. - boolean ops all work on float/complex images (by casting to int)
  2656. - im_maplut() was broken for 1 band image + many band lut + >8 bit output
  2657. - im_lintra_vec() now handles 1 band image and many band vector to make many
  2658. band image
  2659. - oops, im_lintra_vec() was missing a man page
  2660. - im_measure() can work on labq
  2661. - im_lhisteq() uses new embed mode, _raw() version is one pixel smaller, sets
  2662. Xoffset/Yoffset for new origin scheme
  2663. - generalised im_tone_build() to any image type to make im_tone_build_range()
  2664. 20/5/04 started 7.9.5
  2665. - tiff output res can be a single number too
  2666. - added im_text() to make a bitmap from a string with pango
  2667. - im_tiff2vips() does 16 bit RGBA
  2668. - im_binfile() was broken since 7.9.2 due to im_mapfile() change
  2669. - im_ppm2vips() now works for 16 bit images
  2670. - added im_copy_swap() ... copies, reversing byte order
  2671. - im_resize_linear() was broken for some images, thanks Javi
  2672. 8/3/04 started 7.9.4
  2673. - oops, config.h include missing in a few places
  2674. - im_vips2tiff() can now write 1 bit images
  2675. - im__find_lr/tboverlap() now exported to nip
  2676. - better edge tile handling for tiff read/write (thanks Ruven)
  2677. - added extend-pixels-from-edge mode to im_embed()
  2678. - im_conv*(), im_rank(), im_stdif(), im_dilate(), im_erode() all use it to
  2679. expand their input, so their output now has guess borders, not black borders
  2680. - im_fastcor() now does an im_embed( 1 ) on the output ... the zero borders
  2681. were very annoying before, since you would usually be searching for the
  2682. minimum point
  2683. - no change to im_spcor(), since you will usually be searching for the maximum
  2684. - better im_render() cache behaviour under heavy loads
  2685. - im_affine() revised
  2686. * clip, resample and transform is now pixel-perfect for all
  2687. inputs (I hope)
  2688. * uses the new embed to make sure there are no black borders
  2689. from edge interpolation
  2690. * about 20 - 30% faster
  2691. - policy change: Xoffset and Yoffset are now set by all operations to record
  2692. the position of the input origin in the output
  2693. - im_replicate() is much faster for some cases
  2694. - added tile and mirror flags to im_embed()
  2695. - added im_cache() convenience function
  2696. - better ETA for image calculation
  2697. - im_tiff2vips() now has a "broken" option so it can read tiled tiffs made
  2698. with earlier versions of vips
  2699. - on convert float to int format, now does floor() not rint() ... more
  2700. 'mathematical'
  2701. - added im_rint()
  2702. - im_sharpen() now uses a gaussian mask
  2703. - im_convsep() more resistant to int overflow problems
  2704. - added im_make_xy(), avoids rounding problems with the old float-based thing
  2705. - im_profile() now makes vertical images for a vertical profile
  2706. - added im_vips2tiff() option to set the resolution in inches not cm (thanks
  2707. Andrey)
  2708. - im_binfile() is now exported
  2709. 6/2/04 started 7.9.3
  2710. - added an im_init_world() to im_open(), to help old progs
  2711. - renamed VSemaphore as im_semaphore_t
  2712. - started using libtool library versioning
  2713. - now uses g_module_*() in place of dlopen()
  2714. - now uses pkg-config instead of vips-config (thanks Simon)
  2715. - fixes to vips.h for _ADDR() with DEBUG on (thanks Konrad)
  2716. 10/12/03 started 7.9.2
  2717. - patches for freebsd, thanks Lev Serebryakov
  2718. - vips2dj knows about my colour laser printer
  2719. - added i18n support, glib/gmodule/gthread dependency
  2720. - im_error*() API revised to be more i18n friendly
  2721. - List type removed, now uses g_slist
  2722. - VBuf added, some more utility funcs pushed down from nip
  2723. - im_thread stuff removed, now uses g_thread
  2724. - im_lock stuff removed, now uses g_mutex
  2725. - im_semaphore_t renamed to VSemaphore, not sure this is a good idea
  2726. - build with --disable-threads to turn off threaded render
  2727. - #include <vips/vips.h> now pulls in most of the public API, you shouldn't
  2728. need other vips includes very often
  2729. - im_close() is better at cleaning up if there's an error
  2730. - inverse FFTs could fail for wider-than-high images with fftw
  2731. - better im_icc_transform error messages
  2732. - bug fix in im_render with large caches
  2733. - im_binfile() now has an offset parameter
  2734. - im_mapfile()/im_unmapfile() now work on IMAGE and record the length of the
  2735. file they mapped ... this lets VIPS successfully unmap a file if it changes
  2736. size while it's open
  2737. 20/10/03 started 7.9.1
  2738. - threadgroups now have their own kill flag
  2739. - im_plotmask() now does anti-aliasing
  2740. - im_iterate() fix for operations on mmap window images (thanks Clare)
  2741. - im_writeline() stops on kill
  2742. - fix for im_fwfft() segv for wider-than-high real images (thanks Andrey)
  2743. - fix for im_fwfft() to work for non-square real images (thanks Andrey)
  2744. - can now read and write 32-bit IEEE float TIFF (Andrey Kiselev)
  2745. - clean-ups for colour.c (Andrey Kiselev)
  2746. - no longer lets you make an image with width|height|bands == 0 (thanks Joe)
  2747. - im_vips2tiff(), im_vips2*jpeg*(), im_vips2png(), im_vips2ppm() could
  2748. sometimes fail for mmap window input images (thanks David)
  2749. - added IM_RECT_HCENTRE(), IM_RECT_VCENTRE() macros
  2750. 20/8/03 JC
  2751. - started 7.9.0
  2752. - added im_rank_image() ... im_maxvalue() a special case of this
  2753. - im_subtract() goes up to int earlier for better value preserving, thanks
  2754. Haida
  2755. - im_rank() much faster for large windows, correct result on all platforms
  2756. (dratted memcpy() was causing problems before)
  2757. - fixed problem with libMagick config if installed somewhere strange
  2758. - fixed problem with include order in library compile
  2759. - added --without-magick configure option
  2760. - added im_render(), threaded background image paint
  2761. - added im_replicate(), replicate an image horizontally and vertically
  2762. 31/5/03 JC
  2763. - started 7.8.11
  2764. - fixed a problem with relational operators and some combinations of input
  2765. types (bug introduced in 7.8.9), thanks Haida
  2766. - vips-7.8 script overrides VIPSHOME environment variable
  2767. - better im_guess_prefix
  2768. - stupid light_correct script no longer uses /pics/tmp
  2769. - added batch_crop script
  2770. 22/5/03
  2771. - started 7.8.10
  2772. - the JPEG writer can embed ICC profiles in output images ... although I've
  2773. yet to see it make any difference :-( test this carefully at some point
  2774. - fixed a possible coredumper in jpeg write
  2775. - jpeg read now spots truncated files
  2776. - im_invertlut() now makes an image, not a mask ... sorry :-(
  2777. - im_histnD() makes an n-dimensional histogram from an n-band image
  2778. - im_col_pythagoras() patch
  2779. - IM_NUMBER() now returns int not size_t
  2780. - new win32 build system from Juan and friends, based on tmake
  2781. - sample project files for MSVC added, thanks Juan
  2782. - win32/ subdir now has the win32 build systems
  2783. - spec/ subdir now has the spec files for building RPMs
  2784. - dist now includes formatted documentation
  2785. - license change: VIPS is now LGPL, nip stays GPL ... this means proprietary
  2786. programs can link against the vips library
  2787. - had a report of a working VIPS build on a 64 bit system (!)
  2788. - im_log_dmask() now includes all of the negative lobe, thanks matt
  2789. - vips-7.8 start script now auto-relocates
  2790. - im_spcor_raw(), im_fastcor_raw() now exported
  2791. 29/4/03
  2792. - started 7.8.9
  2793. - changes to build to help MSVC
  2794. - oops, makedef.pl missed out function names with an initial cap, and
  2795. error_exit()
  2796. - im_min() and im_max() gave random wrong results for >1 thread on >1 CPU
  2797. machines (bug introduced in 7.7.20), thanks Joe
  2798. - vips.c no longer generates C++ wrappers for functions with no image argument
  2799. (thanks Haida)
  2800. - im_invertlut() now wrapped by hand in VMask.cc
  2801. - C++ docs updated
  2802. - added im_open_header(), returns an IMAGE with just width/height/etc and no
  2803. data
  2804. - ... so now "header" will print useful stuff even on truncated files
  2805. - tiff writer knows about alpha (thanks Jenny)
  2806. 7/2/03
  2807. - started 7.8.8
  2808. - build failed with lcms turned off
  2809. - im_spcor() could segv for 16bit images (thanks Joe)
  2810. - im_tiff2vips() read resolution expressed as pixels/cm incorrectly
  2811. - im_vips2tiff() tries not to write mad resolutions
  2812. - header and im_open file type tests reordered for slight speedup
  2813. - im_copy_set() had a broken dispatch function for xres/yres
  2814. - im_fwfft() exploits libfftw real -> complex transform if possible for a 2x
  2815. speed-up (thanks Matt)
  2816. - im_invfftr() added for complex -> real inverse transform for 2x speed-up
  2817. (thanks Matt)
  2818. - im_freqflt() now uses im_invfftr() for real result and speedup
  2819. - im_flipver() could segv on some inputs, thanks Clare
  2820. - relational operators now work on complex
  2821. - relational rewritten ... now fractionally slower, but 1/3 the size
  2822. - vips2dj -1:1 produced incorrect height
  2823. - better overlap-too-small detection in mosaicing code
  2824. - im_system() can have NULL output
  2825. - global balance ignores overlaps with only transparent pixels
  2826. 3/1/03
  2827. - started 7.8.7
  2828. - worked in patch from Hans Breuer (thanks!)
  2829. - png read/write with im_png2vips(), im_png2vips_header(),
  2830. im_vips2png(), im_ispng()
  2831. - im_errorstring() and im_col_displays() are now functions not externs
  2832. (helps DLLs)
  2833. - many include fixes to help native win32 build
  2834. - added libMagick support, 78 file formats now loadable with
  2835. im_magick2vips(), im_magick2vips_header() and im_ismagick(), w00t
  2836. - now installs vips.m4 to $prefix/share/aclocal
  2837. - added im_icc_export_depth() ... export to device space with a specified bit
  2838. depth (8 or 16)
  2839. - vips.def now rebuilt with custom rule in libsrc/Makefile.am
  2840. - removed externs im_Type, im_BandFmt, im_Coding, im_Compression to simplify
  2841. DLL build
  2842. - im_mmap() -> im__mmap(), since it's supposed to be an internal function
  2843. - new vips-7.8.x/proj directory holds unsupported sample makefiles and
  2844. config.h for building with the MSC toolchain
  2845. - new scripts batch_image_convert and batch_rubber_sheet (thanks Joe)
  2846. - added the RPM .spec files to the main distribution
  2847. - InitializeMagic() now passed "" rather than NULL to avoid assert() problems
  2848. on some libMagic versions
  2849. 2/12/02
  2850. - started 7.8.6
  2851. - now reads 8-bit RGBA tiff
  2852. - C++ build guide fixes (thanks fsicre)
  2853. - im_Type2char array text slightly messed up
  2854. - global_balance is safer for complex mixed mosaics
  2855. - removed im_lintra() fallback to im_copy() for scale == 1, offset == 0 ...
  2856. too confusing
  2857. - im_tiff2vips() now reads 16-bit LAB
  2858. - added im_Lab2LabS() and im_LabS2Lab()
  2859. 5/11/02
  2860. - started 7.8.5
  2861. - fix for mmap window of local region ... caused im_iterate() to break
  2862. sometimes for large images, in turn occasionally breaking
  2863. im_max()/im_min()/etc. (thanks Joe)
  2864. - tiny speed up for im_rot90()/270()
  2865. - on install on win32, add .exe suffix for links
  2866. - vips.c knows to remove .exe suffix for linked commands
  2867. - added im_errormsg_system() ... decode win32 error codes too
  2868. - pagesize calcs for roving mmap windows were messed up on win32 (thanks Kirk)
  2869. - some TODO cleanups
  2870. - global balance broke horribly if you had filenames with spaces in (thanks
  2871. Clare)
  2872. 31/10/02
  2873. - started 7.8.4
  2874. - im_unmapfile() includes mixed up on mac os x
  2875. - libtool patched for mac os x
  2876. - vips.c sets numeric locale to "C"
  2877. 27/10/02
  2878. - started 7.8.3
  2879. - configure fixes help mac os x
  2880. - im_guess_prefix() adds ".exe" suffix on w32 if not there
  2881. - changed im_measure() error messages to number bands from 1
  2882. - added func descriptor for im_read_dmask() to help nip, updated C++ API, docs
  2883. 21/10/02 JC
  2884. - started 7.8.2
  2885. - tries rand() if random() is not available
  2886. - tries mktemp() if mkstemp() is not available
  2887. - turns off realpath() if not available
  2888. - added IM_DIR_SEP/IM_DIR_SEP_STR directory separator character/string
  2889. - added IM_PATH_SEP/IM_PATH_SEP_STR path separator character/string
  2890. - added im_path_is_absolute()
  2891. - vips.c knows to link to vips.exe on win32
  2892. - spot mingw* and set BINARY_OPEN
  2893. - open images in binary too (since we now read() the header)
  2894. 10/10/02 JC
  2895. - im_lintra() and im_lintra_vec() were broken for complex images :-( thanks
  2896. matt
  2897. - renamed im_and() as im_andimage(), im_eor() as im_eorimage() and im_or() as
  2898. im_orimage() ... avoids breakage in the C++ layer
  2899. - added im_dE00_fromLab()
  2900. - limited release as vips-7.8.0
  2901. 2/10/02
  2902. - renamed as vips-7.8, woohoo
  2903. - revised documentation
  2904. 19/9/02 JC
  2905. - started sorting out VIPS #defines ... there are now a sensible set of new
  2906. names (eg. NOCODING becomes IM_CODING_NONE, LAB becomes IM_TYPE_LAB)
  2907. - define IM_NO_VIPS7_COMPAT to turn off the old names
  2908. - added im_mmap()/im_munmap() layer for windows portability
  2909. - removed the contents of history.h .. obsolete
  2910. - added IM_IMAGE_ADDR() macro
  2911. 10/9/02 JC
  2912. - handle errors from TIFF lib correctly
  2913. - configure fixes for cygwin
  2914. - CMYK TIFF write fixed
  2915. - configure fixes for mingw
  2916. 5/9/02 JC
  2917. - im_cp_desc() now copies Xoffset/Yoffset
  2918. 21/8/02 JC
  2919. - started 7.7.24
  2920. - reads CMYK TIFF
  2921. - reads dpi from TIFFs
  2922. - better float Xres/Yres
  2923. 14/8/02 JC
  2924. - new header fields Xoffset and Yoffset ... used by functions to hint
  2925. the position of the origin in output images
  2926. - support added to c++ api and to header
  2927. - im__lrmerge(), im__tbmerge(), im__affine(), im_insert(),
  2928. set Xoffset/Yoffset
  2929. - now uses <lcms.h>, not <lcms/lcms.h> for better suse w0rkage
  2930. - better configure for fftw (uses libdfftw name if libfftw not found)
  2931. 8/8/02 JC
  2932. - large file support with mmap() windows ... had to change
  2933. im_prepare_inplace() to im_prepare_to()
  2934. benchmark:
  2935. - system
  2936. hardware: 2 x 2.5GHz P4, 1GB RAM, 15k SCSI, ReiserFS
  2937. os: suse 8 (kernel 2.4.18)
  2938. compiler: gcc 2.95.3, -O2, threads turned on
  2939. images: fred.v, fred2.v; both 4k by 4k LABPACK (64MB)
  2940. images: jim.v, jim2.v; both 15k by 15k LABPACK (900MB)
  2941. time: smallest real of 5 runs, system idle
  2942. vips: 7.7.23, debug on in im_openin.c, window limit set with an
  2943. environment variable
  2944. - benchmarks
  2945. cpu-bound: im_sharpen fred.v fred3.v 11 1.5 20 50 1 2
  2946. io-bound: im_insert fred.v fred2.v fred3.v 4000 0
  2947. worst-case: im_rot90 fred.v fred3.v
  2948. - results
  2949. desktop:
  2950. no mmap windows mmap windows
  2951. cpu-bound real 0m3.712s real 0m3.970s
  2952. user 0m6.010s user 0m6.390s
  2953. sys 0m0.900s sys 0m1.110s
  2954. io-bound real 0m1.813s real 0m1.865s
  2955. user 0m0.900s user 0m0.990s
  2956. sys 0m1.720s sys 0m1.520s
  2957. worst-case real 0m1.344s real 0m3.039s
  2958. user 0m1.270s user 0m2.230s
  2959. sys 0m0.850s sys 0m3.050s
  2960. not quite sure why sharpen is a little slower (4%?) ... IO speed is about
  2961. the same though ... worst-case is having to constantly move windows about
  2962. (500,000 page faults, vs 10,000 for no windows)
  2963. again, with an image larger than RAM
  2964. no mmap windows mmap windows
  2965. io-bound real 2m52.759s real 2m11.172s
  2966. user 0m14.940s user 0m14.890s
  2967. sys 0m29.940s sys 0m26.560s
  2968. worst-case real 3m35.391s real 3m50.760s
  2969. user 0m19.850s user 0m26.600s
  2970. sys 0m12.650s sys 0m43.130s
  2971. mmap windows actually slightly faster in this case ... plus they stress the
  2972. OS less
  2973. 31/7/02 JC
  2974. - added -lm for better lcms detect
  2975. - README notes for fftw on suse8
  2976. - im_profile() sets HISTOGRAM for output image
  2977. - im_copy()/im_copy_set() function descriptor no longer sets PTOP ... helps
  2978. avoid LUT problems
  2979. - im_subsample()/im_zoom() fall back to im_copy() for shrink/grow == 1
  2980. - im_lintra() falls back to im_copy() for scale == 1, offset == 0
  2981. - no longer use Type == LUT ... all just Type == HISTOGRAM now
  2982. - im_blend() was messed up for > 1 band images :(
  2983. 16/7/02 JC
  2984. - started 7.7.23
  2985. - im_XYZ2sRGB() wasn't setting Type = sRGB
  2986. - im_icc_import() was broken for rgb
  2987. - im_header_string() had wrong return type in function database
  2988. 13/7/02 JC
  2989. - added im_flood_blob()
  2990. - added im_open_local_array() ... C API convenience function
  2991. - oop, im_flood() was missing a man page
  2992. - Type == FOURIER added to help visualisation
  2993. - released as 7.7.22
  2994. 30/6/02 JC
  2995. - JPEG, TIFF and PPM import all now set sRGB Type for RGB import
  2996. - im_header_int(), im_header_double() and im_header_string() added to aid
  2997. UIs
  2998. - now uses gettimeofday(), not time()
  2999. - for consistency with other trig functions, im_c2amph() now returns degrees
  3000. not radians (ouch)
  3001. - added im_c2rect() ... turn (amp, phase) to rectangular
  3002. - added im_sign() ... unit vector in direction of value
  3003. - better im_scaleps() ... old code was terrible
  3004. - rewritten im_rotquad() ... now partial
  3005. - im_icc_export()/_import() now do ABSOLUTE correctly
  3006. - added im_icc_ac2rc() ... converts absolute to relative colorimetry
  3007. 25/6/02 JC
  3008. - added im_copy_set(3) ... like im_copy(), but set informational header fields
  3009. 20/6/02 JC
  3010. - added im_ceil(), im_floor()
  3011. - im_Lab2LabQ was not clipping a/b range correctly
  3012. - im_icc_export(), own ABSOLUTE mode
  3013. - released as 7.7.21
  3014. 28/5/02 JC
  3015. - im_remainderconst_vec broken for float/double
  3016. - added Yxy colourspace
  3017. 16/05/02 JC
  3018. - auug, libtool was all messed up ... redone all the autotools stuff
  3019. - uses libtool convenience libraries to build vips in sections
  3020. - uses config subdir for temp files and .m4 things
  3021. - patched stupid suse config.guess
  3022. - vips2dj patched for better raw cmyk
  3023. - released as 7.7.20
  3024. 12/5/02 JC
  3025. - im_vips2jpeg*() and im_vips2ppm() now both partial
  3026. - started updating the C++ guide
  3027. - had to change the location of the C++ headers :-( all C++ progs should now
  3028. have:
  3029. #include <vips/vipscpp.h>
  3030. this is so things can work on systems which do not have case sensitive
  3031. file systems
  3032. - changes for Mac OS X
  3033. * im_system() TRUE/FALSE removed
  3034. * searches /*/[lib|include] to get fink libs for tiff and jpeg
  3035. 30/4/02 JC
  3036. - several functions were missing IM_FN_PIO in their descriptor ... this was
  3037. harmless for nip/ip/C, but broke the ref counting in the C++ layer
  3038. - im_system() now defaults "/tmp" for temp files
  3039. - STRING input and output args were broken for C++ :-(
  3040. - threads exit more quickly on error
  3041. - im_min()/im_max() now partial (at last)
  3042. - im_remainderconst()/im_remainderconst_vec() added
  3043. - --with-dmalloc configure switch
  3044. - vips2dj does CMYK and mono too
  3045. - im_vips2tiff() allows any number of bands (but not the right way to
  3046. write CMYK, see TODO)
  3047. 26/4/02 JC
  3048. - old ICC profile reader removed
  3049. - little cms wrapped ... configure spots it, im_icc_transform() uses it to map
  3050. between two images
  3051. - also im_icc_import() and im_icc_export() so you can see PCS images
  3052. - im_icc_present() to test for existence of lib
  3053. - README fixes
  3054. 4/4/02 JC
  3055. - TODO changes
  3056. - oops, DEBUG left on in im_invertlut()
  3057. 2/4/02 JC
  3058. - im_fwfft.c/im_invfft.c now use libfftw if available ... about 5x speed up
  3059. and double precision
  3060. - added FIND_FFTW autoconf macro
  3061. - include/vips/proto.h changes
  3062. 26/3/02 JC
  3063. - started 7.7.19
  3064. 25/3/02 JC
  3065. - im_log_dmask() was broken (thanks matt)
  3066. - casts between VDMask and VIMask were broken (thanks matt)
  3067. - various error msgs improvements and tiny man page fixes
  3068. 13/3/02 JC
  3069. - tb/lr merge first/last cache moved to per-call state for better sharing
  3070. - im_remosaic() bails out faster on error and makes better error messages
  3071. 13/3/02 ruven
  3072. - im_vips2tiff() pyramids stop at tilesize, not 64x64
  3073. 25/02/02 JC
  3074. - im_remosaic() is smarter, and works better with im_global_balance()
  3075. - im_affine() 2x faster
  3076. 14/2/02 JC
  3077. - started 7.7.18
  3078. - vips.m4 and libsrc/Makefile.am fixes for IRIX
  3079. 11/02/02 JC
  3080. - vips/thread.h and vips/threadgroup.h were missing extern "C" for C++
  3081. - VImage::write() now tracks dependencies, so you can write() to a partial
  3082. safely ... although it's not a very useful thing to do (thanks Mike)
  3083. - new VImage::print() function for debugging
  3084. - added im_print()
  3085. 22/01/02 JC
  3086. - started 7.7.17
  3087. 15/01/02 JC
  3088. - im_rect_unionrect() and im_rect_intersectrect() safer for repeated args
  3089. - im_video_v4l() no longer perror()s on ioctl fail for less spam
  3090. 03/01/02 JC
  3091. - started 7.7.16
  3092. - im_version_string() really does return the date as well now
  3093. 12/12/01 JC
  3094. - im_guess_prefix() extra smartness for relative path names
  3095. - VImage() no longer uses tmpnam() (thanks Paul)
  3096. 11/12/01 JC
  3097. - renamed im_fexists() as im_existsf()
  3098. 7/12/01 JC
  3099. - ppm man pages added (doh)
  3100. 28/11/01 JC
  3101. - warnings on g++ 2.96 fixed
  3102. 22/11/01 JC
  3103. - started 7.7.15
  3104. - im_video_v4l() failed to compile on non-linux platforms
  3105. 7/11/01 JC
  3106. - im_remosaic() added
  3107. - im_*merge() are more intelligent about transparency in bizarre overlaps
  3108. - grr! putenv() semantics change on more recent clibs ... should be safer
  3109. now
  3110. 19/10/01 JC
  3111. - VDisplay( "display name" ) segved on unknown display :-( thanks mike
  3112. 26/9/01 JC
  3113. - contrib tools get data files from share/vips/xxx area now
  3114. - im_vipshome() renamed as im_guess_prefix(), reworked for new package layout
  3115. - doc/ build sorted out
  3116. - ... but of course, docs still need updating for 7.8
  3117. 20/9/01 JC
  3118. - fix to im_vipshome()
  3119. - ip2 renamed as nip
  3120. - split to library only ... separate ip and nip packages
  3121. - new VIPS_VERSION_* macros set from configure.in in vips/version.h.in
  3122. - vips.m4 VIPS finder
  3123. - reworked README, doc/README and TODO
  3124. - now installs to /usr/local/ by default
  3125. - fmask4th.c was including varargs.h ... d'oh
  3126. - include area reorganised: everything inside <vips/..> now ... hopefully the
  3127. only user-visible change is that all plain C progs need to change:
  3128. #include <vips.h>
  3129. to:
  3130. #include <vips/vips.h>
  3131. the C++ API should be unaltered
  3132. 21/8/01 ruven
  3133. - im_setupout() was missing some #includes
  3134. 20/8/01 JC
  3135. - started 7.7.14
  3136. 15/8/01 JC
  3137. - added libxml dependency for ip2
  3138. 27/7/01 JC
  3139. - im_conv(), im_convf(), im_convsep(), im_convsepf() now reject masks with
  3140. scale == 0
  3141. 26/7/01 JC
  3142. - started 7.7.12
  3143. 25/7/01 JC
  3144. - started 7.7.11
  3145. - oop, im_histeq() and im_tonemap() also missed
  3146. - better error messages from im_run_command()
  3147. 23/7/01 JC
  3148. - started 7.7.10
  3149. - im_sharpen() failed due to change in im_band_extract() offset
  3150. 20/7/01 JC
  3151. - started 7.7.9
  3152. 4/7/01 JC
  3153. - im_open(,"w") open() delayed until im_setupout(), very slightly safer
  3154. - updated im_open() man page
  3155. - im_tiff2vips() now embeds index in filename ... and it's page number (from
  3156. 0), not subsample factor
  3157. - finally bit the bullet ... im_extract()/im_extract_band() now number from
  3158. zero (sorry!)
  3159. - and im_lrmosaic()/im_tbmosaic() bandno param too
  3160. 29/6/01 JC
  3161. - im_region_free() now frees immediately
  3162. 27/6/01 JC
  3163. - im_vips2tiff() man page updated for deflate, 2 years late
  3164. 22/6/01 JC
  3165. - oops, limit wrong on im_rank()
  3166. 21/6/01 JC
  3167. - better post_install for --prefix outside VIPS's tree
  3168. - -ltiff needs -lm in acinclude.m4 ... fixes configure on redhat 7.x
  3169. 13/6/01 JC
  3170. - started 7.7.8
  3171. 6/6/01 JC
  3172. - im_invertlut() added
  3173. 31/5/01 JC
  3174. - im_colour_temperature, im_XYZ2Lab_temp, im_Lab2XYZ_temp added
  3175. - ... colour temp stuff needs sorting out properly
  3176. 25/5/01 JC
  3177. - added vips-config script, cf. gtk-config
  3178. - --without-threads option added
  3179. - did a bit of work on the C++ API docs
  3180. 24/5/01 JC
  3181. - added im_tiff2vips_header(), im_jpeg2vips_header() and im_ppm2vips_header()
  3182. - header uses these to print fields quickly
  3183. - switched to config.h
  3184. - configure.in rewritten ... much nicer, fewer options, more automatic
  3185. 17/5/01 JC
  3186. - im_matinv() didn't free stuff correctly on singular matrix
  3187. 16/5/01 JC
  3188. - vips2dj now knows about 5000ps printers
  3189. - allow RW mode for non-native VIPS image files, for 8 bit images
  3190. 2/5/01 JC
  3191. - started 7.7.7
  3192. 1/5/01 JC
  3193. - im_addgnoise() did not work for >1 band images
  3194. 23/4/01 JC
  3195. - configure options to remove support for JPEG and TIFF ... helpful for a no-
  3196. dependencies build
  3197. 20/4/01 JC
  3198. - im_(v)snprintf() added
  3199. - all sprintf()s removed
  3200. 15/4/01 JC
  3201. - im_affine() had a rounding problem
  3202. 11/4/01 JC
  3203. - tiny mosaicing bug fixed in im__lrcalcon
  3204. - started 7.7.6
  3205. 21/3/01 JC
  3206. - new iblend code in im_tbmerge() was typo-d
  3207. - mosaic1 was broken by affine too
  3208. 20/3/01 JC
  3209. - im_image() failed for FMTUCHAR
  3210. 12/3/01 JC
  3211. - started 7.7.5
  3212. - im_sharpen() uses separable convolution for big speed up
  3213. - new "Print" menu
  3214. 11/3/01 JC
  3215. - REALVEC renamed as DOUBLEVEC
  3216. - added IMAGEVEC
  3217. - added IM_INPUT_IMAGEVEC
  3218. - gbandjoin now has function description
  3219. - new function im_maxvalue()
  3220. - im_compass()/im_lindetect() reimplemented with im_conv()/im_maxvalue(),
  3221. about 15% faster, works for any type, partial
  3222. - im_gradient() reimplemented with im_conv()/im_abs()/im_add(), about 30%
  3223. slower, works for any type, partial
  3224. 10/3/01 JC
  3225. - new function, im_clip2fmt() converts between any image formats ...
  3226. slightly faster than the old im_clip()
  3227. - legacy im_clip2us() etc. functions now just call this
  3228. 9/3/01 JC
  3229. - im_conv() rewritten, simpler, about 10% faster
  3230. - im_convsep() rewritten, now does any non-complex type, partial, 20% faster
  3231. - new functions: im_convf(), im_convsepf() for DOUBLEMASK
  3232. - raw versions of each
  3233. - legacy convolvers (eg. im_convbi()) removed
  3234. 8/3/01 JC
  3235. - new function im_blend()
  3236. - new function im_lab_morph()
  3237. - speed up to im_ifthenelse()
  3238. - speed up to im_*merge() (uses integer arithmetic for integer blends)
  3239. 4/3/01 JC
  3240. - tiny speed ups to im_histgr()
  3241. - speed ups to im_maplut()
  3242. 3/3/01 JC
  3243. - new functions: im_histnorm(), im_histcum()
  3244. - im_histeq() more general
  3245. - im_vipshome() --- better behaviour for relative paths
  3246. 2/3/01 JC
  3247. - new video package
  3248. - im_video_v4l1() (video for linux) added
  3249. - configure.in switches to turn v4l1 on and off
  3250. 1/3/01 JC
  3251. - new im_histspec() implementation ... more general, bugs removed
  3252. 14/2/01 JC
  3253. - better vips2dj usage message
  3254. 13/2/01 JC
  3255. - im_image_sanity() added, called in various places in iofuncs
  3256. 9/2/01 JC
  3257. - added 'check' and 'name' class member stuff to ip from ip_gtk2
  3258. - new "Plot" menu
  3259. - new "Overlay" menu
  3260. - more stuff in _stdenv/_list ... curried forms of head/tail etc.
  3261. 7/2/01 JC
  3262. - started 7.7.4
  3263. - vips2dj and vdump now use im_vipshome()
  3264. 5/2/01 JC
  3265. - new im_vipshome() function
  3266. - min()/max() macros renamed as MIN()/MAX()
  3267. - new im_load_plugins() function
  3268. - vips.exe and ip now load $VIPSHOME/lib plugins at startup
  3269. 2/2/01 JC
  3270. - mosaicing functions now have an extra max blend width parameter
  3271. 30/1/01 JC
  3272. - fixed tbmerge no overlap detect
  3273. 13/12/00 JC
  3274. - started 7.7.3
  3275. 30/12/00 JC
  3276. - vips.h fixes for cygwin/wingdi conflict
  3277. 27/11/00 JC
  3278. - added im_vips2ppm(), im_open() imports and exports it
  3279. - fixed nasty implicit output conversion problem for PIO dispatch() calls
  3280. 21/11/00 JC
  3281. - added im_ppm2vips()
  3282. 16/11/00 JC
  3283. - configure.in fixes ... jpeg found correctly now
  3284. - searches for libz as well
  3285. 16/11/00 JC
  3286. - started 7.7.2
  3287. 5/11/00 JC
  3288. - speed up to lab2labq
  3289. 19/10/00 JC
  3290. - started 7.7.1
  3291. 13/1/00 JC
  3292. - oops, im_open() was missing an 'else' in jpeg/tiff load
  3293. 5/8/00 JC
  3294. - im_vips2tiff() now has mode string embedded in output filename
  3295. - im_vips2jpeg() now has qfac in output filename
  3296. - im_open() understands this
  3297. 11/7/00 JC
  3298. - new im_image() function ... wraps a VIPS image around a memory buffer
  3299. - C++ layer changes:
  3300. * now use #include <vips/Vips.h>
  3301. * error renamed as VError
  3302. * new VMask() constructors
  3303. * new VImage() constructor
  3304. * new VImage::data() access member
  3305. * more operator equivalences: <, >, <=, >=, ==, !=, &, |, ^, %
  3306. 17/6/00 JC
  3307. - more consts added to vips protos
  3308. 10/5/00 JC
  3309. - minor configure.in changes to help solaris
  3310. - removed _TIFFmalloc() and _TIFFfree() calls
  3311. 9/3/00 JC
  3312. - fixed rounding problem in generate grid
  3313. 8/3/00 JC
  3314. - fixup to im_system() temp dir
  3315. 7/3/00 JC
  3316. - added im_system()
  3317. - small tidies
  3318. 1/3/00 JC
  3319. - better plugin test in configure.in
  3320. 26/2/00 JC
  3321. - fixes to Makefile.am in ip/src* and configure.in, to help ip find the right
  3322. gtk includes on systems with more than one gtk-xxx installed
  3323. 21/2/00 JC
  3324. - now builds ip and ip_gtk2
  3325. 16/2/00 JC
  3326. - configure.in fixes for xil and some TIFF/JPEG strangeness
  3327. 15/2/00 JC
  3328. - im_global_balancef() was broken! d'oh
  3329. - note in README about enabling video cards
  3330. 10/2/00 JC
  3331. - configure now searches for xil ... FIND_XIL macro
  3332. - im_zoom() spots integer overflow
  3333. - better shape set on region drag end in ip
  3334. - better zoom-too-far handling in ip
  3335. 13/1/00 JC
  3336. - fixes to configure etc. to help cygwin
  3337. - jpeg is now searched for too ... FIND_JPEG macro
  3338. 10/1/00 JC
  3339. - global_balance() now uses new affine() atuff
  3340. 27/12/99 JC
  3341. - mosaic1 stuff now uses new affine() funcs
  3342. 21/12/99 JC
  3343. - added Joe's docs
  3344. - im_LabS2LabQ() rounding on a/b slightly broken for a/b == 0
  3345. 20/12/99 JC
  3346. - new function: im_affine()
  3347. - similarity*() now in terms of affine()
  3348. - tests for error return in reduce.c from maplut
  3349. - small clean-ups
  3350. 15/12/99
  3351. - im_version() added, new iofuncs package for it
  3352. - ip did not call zero-input-arg vips functions
  3353. - vips.c did not like zero-input-arg functions
  3354. 6/12/99 JC
  3355. - Sobel filter was a bit broken
  3356. 3/12/99 JC
  3357. - menu reorganisation
  3358. - generate gauss mask dialog
  3359. 2/12/99 JC
  3360. - reworked text file IO, better error messages
  3361. 1/12/99 JC
  3362. - reworked .iprc filename stuff, cleaner
  3363. 30/11/99 JC
  3364. - better menu set switcher in calc preferences
  3365. - ip now thinks it's 7.7
  3366. - did a spellcheck on the ip guide
  3367. 29/11/99 JC
  3368. - 7.7 started!
  3369. - srgb D65->D50 converter
  3370. - Negate added to arith
  3371. - find similar pixel value dialog
  3372. - find similar colour dialog
  3373. - paste into background dialog
  3374. 19/11/99 JC
  3375. - adjust labq was missing
  3376. - shrink image defaulted to /2 not /1
  3377. - sharpdropshadow broken
  3378. - Rotate.* broken
  3379. - vips-7.6.3 release
  3380. 18/11/99 JC
  3381. - ip didn't report space free on >2GB filesystems correctly
  3382. - ip did not link statically against libXpm on solaris7
  3383. 17/11/99 JC
  3384. - im_histplot() failed for all 0's histogram
  3385. - new profile_image dialog
  3386. - man pages for im_sRGB2XYZ/im_XYZ2sRGB were broken
  3387. - new colourize image dialog
  3388. - new shrink image image dialog
  3389. - new expand image image dialog
  3390. - better doc Makefiles
  3391. 16/11/99 JC
  3392. - more menu reorganising
  3393. - new image_to_mask/mask_to_image buttons
  3394. - new match_two_images dialog
  3395. - new measure_colour_chart dialog
  3396. 15/11/99 JC
  3397. - new custom LABQ sharpen in Image menu
  3398. - configure support for SGI video (thanks Ruven)
  3399. - menu fiddling in ip
  3400. - new "resize canvas" menu item
  3401. - im_insert_noexpand() added, no docs tho'
  3402. 11/11/99 JC
  3403. - new ip menu item: Image=>Adjust white/black/saturation of LabQ
  3404. - fixed bug in decompose complex number
  3405. - browse-icons now ignores errors
  3406. - better error msg for "12 12" etc cases
  3407. 10/11/99 JC
  3408. - open hi-res gives proper error msg if no file found
  3409. - made file-select boxes a bit more compact and clearer
  3410. - updated configure.in for vips-examples-7.6
  3411. 9/11/99 JC
  3412. - new column start point moved
  3413. - vdump now defaults to subsample 1, portrait
  3414. - navigation boxes were broken
  3415. - no longer shrink-to-fit if loading as high res
  3416. - better positioning of zoom windows
  3417. - removed some old cruft
  3418. 8/11/99 JC
  3419. - ooops, im_remainder() got lost somehow
  3420. - refguide converted to latex and updated
  3421. - cppguide updated
  3422. 5/11/99 JC
  3423. - libguide converted to latex and updated
  3424. 4/11/99 JC
  3425. - ip guide now latex2htmls cleanly ... still needs updating tho'
  3426. - cpp/app guide latex2html redone
  3427. 2/11/99 JC
  3428. - configure no longer adds -32 to IRIX builds for you
  3429. - some more stuff in README
  3430. - simple DEBUGM malloc tracking, made libsrc/iofuncs/memory.c
  3431. - changed im_malloc() to return void *
  3432. - removed duplicate im_malloc() proto from util.h
  3433. - changed all malloc/free to go through im_malloc()/im_free()
  3434. 23/10/99 JC
  3435. - double-click on error image now pops a load browser and an error dialog
  3436. - add-new-column no longer scrolls to right edge of workspace
  3437. - better scroll-to-bottom on item add
  3438. - load ws twice does not cause 'already open' errors
  3439. - memorise directory button in fsb
  3440. 18/10/99 JC
  3441. - new FIND_TIFF/FIND_MOTIF macros for acinclude.m4
  3442. - new ./configure switches, see ./configure --help
  3443. - enabled static libs
  3444. 8/10/99
  3445. - broke action_proc_bop() into smaller functions, stops bad code gen on
  3446. gcc2.95.1 (and others, prolly)
  3447. - restored old Makefiles in doc/src/ipguide
  3448. - vips7.6 script renamed as vips-7.6
  3449. 5/10/99
  3450. - replace image was broken
  3451. - some menu reorganisation
  3452. - 'reload all menus' button
  3453. 4/10/99
  3454. - computed regions in ip were broken
  3455. - updated system.iprc defaults
  3456. - new menu item: adjust white/black points
  3457. 2/10/99
  3458. - browse icons was broken
  3459. - greyscale 16-bit tiled tiff was broken
  3460. - extra mutex locks for TIFF*() in im_tiff2vips()
  3461. 1/10/99
  3462. - some automake probs fixed
  3463. - squished two ip bugs
  3464. 30/9/99
  3465. - fixed problem with pthreads, now works on suse6.2 as well
  3466. - new API stuff for threaded evaluation with im_threadgroup_t
  3467. - new public interface provide platform independent threads/locks/semaphores
  3468. - no error box if you zoom out too far now
  3469. 26/9/99
  3470. - lr/tb merge blend was not quite right ... should be smoother now
  3471. - histplot broken for float images
  3472. 24/9/99
  3473. - better mono->labq converter
  3474. - more portable ispoweroftwo detect for freq filter stuff
  3475. 23/9/99
  3476. - better graphics expose handling
  3477. 17/9/99
  3478. - >/< stuff in ip was a bit mixed up
  3479. - ink preview fixed for mono images
  3480. - help popup fixed
  3481. 15/9/99
  3482. - linedetect and sobel filters for ip, thnx Kirk
  3483. 14/9/99
  3484. - Find_histogram was broken
  3485. - im_profile() man pages was broken
  3486. - ooops, ip had old set of macros
  3487. 10/9/99
  3488. - im_and/im_or/im_eor now work for any integer type
  3489. Summer hols: (2nd half August '99)
  3490. - initial heap block larger to avoid start gcs
  3491. - def slicer fixed
  3492. - larger max heap
  3493. - toolkits with initial '_' hidden by default
  3494. - custom recomb
  3495. - dialog.def removed
  3496. - ... other menu fixes
  3497. - generate grid menu
  3498. - im_remainder() added
  3499. - new cursor change code, hglass rotates during comp!
  3500. - dialog.c handles cursor changes better
  3501. - rubber band in paintbox displays
  3502. - mag widget stays on right!
  3503. - undo/redo single pixel paint ops
  3504. - heap size control from prefs
  3505. - cancel for reductions as well as for image calc
  3506. - browse stuff reworked, no more .icon.v files
  3507. - save stops you overwriting open .v files
  3508. - better animate_countdown() handling
  3509. - better resize behaviour for bars added to images
  3510. - better code generation, bug fixed in state tracking
  3511. - auto recover from crash