| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939 |
- 4/10/24 8.15.5
- - version bump, revise C++ soname
- 3/10/24 8.15.4
- - fix an off-by-one error in vips__token_get()
- - heifsave: fix crash when passing an invalid bitdepth [kleisauke]
- - webpsave: fix memory leak on error [dloebl]
- - heifsave: ensure NCLX profile is freed in lossless mode [kleisauke]
- - threadpool: fix a race condition in error handling [kleisauke]
- - disable GLib cast checks and asserts for plain builds [kleisauke]
- - fix jpeg in tiff for high Q [nahilsobh]
- - threadset: fix a race condition during thread exit [kleisauke]
- - fix compatibility with MSVC [Julianiolo]
- 11/8/24 8.15.3
- - fix dzsave of >8-bit images to JPEG
- - jpegsave: fix chrominance subsampling mode with jpegli [kleisauke]
- - pngload: disable ADLER32/CRC checking in non-fail mode [kleisauke]
- - improve target_clones support check [kleisauke]
- - fix pipe read limit
- - fix a rare crash on Windows in highly threaded applications [Julianiolo]
- - vipssave: fix infinite loop on Windows with large images [pdbourke]
- - conva: fix a crash with {u,}{short,int} images [erdmann]
- - fix vips_image_get_string
- - heifsave: fix lossless mode [kleisauke]
- - composite: fix dest-atop blend mode [kleisauke]
- - fix vips_source_map for zero-length sources [kleisauke]
- 12/3/24 8.15.2
- - fix deflate compression of tiff pyramids [manthey]
- - thumbnail always writes 8-bit thumbnails [turtletowerz]
- - lower min scale factor to 0.0 in svgload and pdfload [lovell]
- - heifload: don't warn on images with nclx profiles [kleisauke]
- - ppmload: ensure multi-line comments are skipped [lovell]
- - fix arrayjoin with some pipelines [TheEssem]
- - fix high Q mono JPEG TIFF write with mozjpeg [cavenel]
- - tiffsave: ensure large file support (>2GB) on MSVC [kleisauke]
- - check linker for target_clones support [lovell]
- 18/12/23 8.15.1
- - reduceh: fix Highway path on SSE2 [DarthSim]
- - fix JPEG in TIFF colourspace for Q >= 90 [heman1-test]
- - fix build with upcoming libjxl 0.9 [kleisauke]
- - jxlsave: lower min effort value to 1 [DarthSim]
- - fix build without libjpeg [ionenwks]
- - fix vips7 plugin load [jcupitt]
- - allow ".jfif" as a suffix for jpegsave [casperbrike]
- - don't let the magick sniffer hijack TIFF [kleisauke]
- - ignore BLOCKED classes in foreign map [jcupitt]
- - add locks to fftw3 calls [akash-akya]
- 11/11/23 8.15.0
- - add support for target_clones attribute [lovell]
- * use with (un)premultiply for ~10% perf gain on AVX CPUs
- * use with XYZ to LAB colourspace conversion for ~10% perf gain on AVX CPUs
- - add fast path to extract_band and bandjoin for uchar images [lovell]
- - reduce `vips_sharpen` max `sigma` to 10 [lovell]
- - inline scRGB to XYZ colourspace conversion, ~2x faster [lovell]
- - set "interlaced=1" for interlaced GIF images [kleisauke]
- - add @line_art to find_trim [miltoncandelero]
- - improve C++ binding [MathemanFlo]
- * add `inplace()` / `VImage::new_from_memory_copy()`
- * add overloads for `draw_*()` / `VImage::thumbnail_buffer()`
- - allow negative line spacing in text [donghuikugou]
- - add VIPS_META_BITS_PER_SAMPLE metadata, deprecate the
- "palette-bit-depth" and "heif-bitdepth" meta fields [MathemanFlo]
- - add "revalidate" to foreign loaders [jcupitt]
- - add `premultiplied` option to smartcrop [lovell]
- - add "prewitt" and "scharr" edge detectors, "sobel" is more accurate for
- non-uchar formats [jcupitt]
- - add support for forms in pdfium loader [kleisauke]
- - swap built-in profiles with ICC v4 variants [kleisauke]
- - remove libgsf dependency in favor of libarchive [kleisauke]
- - better chunking for small shrinks [jcupitt]
- - use alpha range of 0.0 - 1.0 for scRGB images [DarthSim]
- - add support for 16-bit float TIFFs [DarthSim]
- - add direct mode to dzsave [jcupitt]
- - require C++11 as a minimum standard [kleisauke]
- - add support for SIMD via Highway [kleisauke]
- - threaded write in tiffsave for tiled JPEG and JPEG2000 [jcupitt]
- - add vips_thread_execute() to the public API [jcupitt]
- - add "keep" flag to foreign savers, deprecate "strip" [a3mar]
- - improve scRGB handling [jcupitt]
- 18/9/23 8.14.5
- - fix a crash with alpha plus icc_import and icc_export [jcupitt]
- - fix a crash in jxlsave [jcupitt]
- 15/8/23 8.14.4
- - fix null-pointer dereference during svgload [kleisauke]
- - heif{load,save}: guard against NULL strings [kleisauke]
- - pdfiumload: fix rendering of pages with different sizes [DarthSim]
- 20/7/23 8.14.3
- - fix ICC handling of greyscale images with a incompatible profile [kleisauke]
- - fix use-after-free during tiff pyramid save [kleisauke]
- - fix vips7 PNG load and save when using libspng [jcupitt]
- - tiffload: slightly relax tile size sanity check [lovell]
- - heifsave: limit dimensions to a maximum edge of 16384 [lovell]
- - colourspace: ensure CMYK conversion uses the embedded ICC profile [kleisauke]
- - ensure chromatic adaptation during icc_{im,ex}port() [kleisauke]
- - improve ICC compatibility check for CMYK images [kleisauke]
- 21/3/23 8.14.2
- - use a private fontmap in vips_text() [jcupitt]
- - increase sanity checks on TIFF tile dimensions [lovell]
- - ensure compatibility with libheif > 1.14.2 [kleisauke]
- - minor doc fixes [jcupitt]
- - sanitise dimensions in JPEG-compressed TIFF images [lovell]
- - fix target pnm write [ewelot]
- - dedupe FITS header write [ewelot]
- - fix `strip` parameter in webpsave [jcupitt]
- - earlier abort of webpsave on kill [dloebl]
- - fix thumbnail of CMYK images with an embedded ICC profile [kleisauke]
- - fix ICC handling of RGB images with a monochrome profile [kleisauke]
- - ensure ICC transforms keep all precision [kleisauke]
- - fix openslideload associated=XXX load [jcupitt]
- - fix compatibility with MSVC [SpaceIm]
- 9/1/23 8.14.1
- - add vips_thread_isworker() compatibility function [remicollet]
- - add vips_semaphore_down_timeout() [kleisauke]
- - idle threads are removed after 15s [kleisauke]
- - fix version number in gtk-doc index [kleisauke]
- - save mono fits images as NAXIS=2 [ewelot]
- - fix jpeg `autorotate` for orientation 3 [zhifengzhuang]
- 22/12/22 8.14.0
- - remove autotools
- - remove various obsolete scripts
- - remove benchmark
- - `jp2ksave` defaults to chroma subsample off, and jp2 write
- - don't minimise `vips_sink_screen()` input after expose ... improves
- caching during interactive use
- - require libjxl 0.6+
- - add `interlace` option to GIF save [dloebl]
- - magick load sets `magick-format` metadata [aksdb]
- - add `.pnm` save [ewelot]
- - threaded tiff jp2k and jpeg decompress
- - improve speed and efficiency of animated WebP write [dloebl]
- - add `rgb` mode to openslideload
- - new thread recycler
- - threadpools size dynamically with load
- - operations can hint threadpool size
- - faster `dzsave`
- - support for N-colour ICC profiles
- - add bash completions for `vips`
- - fits load and allows many more bands
- - fits write doesn't duplicate header fields
- - add `wrap` to `vips_text()`
- - GIF load supports truncated frames [tlsa]
- - EXIF support for PNG load and save
- - expose location of interest when using attention based cropping [ejoebstl]
- - deprecate gifsave `reoptimise`, add `reuse`
- - add `encoder` to heifsave [dloebl]
- - add `cplusplus` meson build option [jcupitt]
- - make arrayjoin much faster with large arrays
- 9/11/22 started 8.13.4
- - missing include in mosaic_fuzzer [ServOKio]
- - emit "finish" at the end of targetcustom write [lucaskanashiro]
- 11/10/22 started 8.13.3
- - improve rules for 16-bit heifsave [johntrunc]
- - improve libspng palette write [kleisauke]
- - improve libspng palette sort [DarthSim]
- - ensure EXIF has prefix before parsing [lovell]
- - fix low bit depth palette spng save [DarthSim]
- - fix thumbnail of non-sRGB images with an export profile [kleisauke]
- 5/9/22 started 8.13.2
- - in dzsave, add add missing include directive for errno/EEXIST [kleisauke]
- - fix 8 bit palette PNG save [lovell]
- - fix null string in buffer print [pclewis]
- - revise caching of seq mode loaders [jcupitt]
- - reduce latency on dzsave kill [kleisauke]
- - improve text too large check [kleisauke]
- - fix subifd writing for small images [ruven]
- - name ICC profiles in spngsave [lovell]
- 24/7/22 started 8.13.1
- - fix im7 feature detection in meson
- - add a summary table at the end of configure in meson
- - fix libpng fallback when spng is disabled in meson
- - add "unlimited" to jpegload
- - better 0 detection in unpremultiply
- - fix low bitdepth spng save [jeffska]
- - fix PNG low bitdepth save of high bitdepth images
- - add support for libjxl 0.7 [kleisauke]
- - improve compatibility with older libgsf versions [kleisauke]
- 21/11/21 started 8.13
- - configure fails for requested but unmet dependencies [remicollet]
- - add support for another quantiser [DarthSim]
- - add "extend", "background" and "premultiplied" to vips_mapim() to fix edge
- antialiasing [GavinJoyce]
- - add support for HDR HEIC and AVIF images
- - add vips_spngsave()
- - jpeg2000 load left-justifies bitdepth
- - add "password" option to pdfload, fix byte ordering of "background"
- - add vips_operation_block_set(), vips_block_untrusted_set()
- - improve the pixel rng
- - new meson build system [tintou]
- - improve introspection annotations [tintou]
- - add "unlimited" to heifload [lovell]
- - add support for regions in C++ API [shado23]
- - add "maxerror" to gifsave [dloebl]
- - update libnsgif API [tlsa]
- - deprecate "properties" option to dzsave (now always on)
- - add vips_dzsave_buffer()
- - always set the min stack size for pthreads, if we can
- - add "fail-on" to thumbnail
- - add "gap" option to vips_reduce[hv]() and vips_resize() [kleisauke]
- - add "ceil" option to vips_shrink() [kleisauke]
- - quality improvements for image resizing [kleisauke]
- - add vips_source_new_from_target()
- - add vips_target_seek(), vips_target_read(), vips_target_new_temp()
- - add vips_tiffsave_target()
- - add vips_target_end(), deprecate vips_target_finish()
- - add "mixed" to webpsave [dloebl]
- - add support for ICC profiles and linear encoding to JXL load and save [f1ac]
- - add "reoptimise" to gifsave [dloebl]
- - add "bitdepth" to magicksave [dloebl]
- - change default PNG filter to "none" [lovell]
- 26/11/21 started 8.12.3
- - better arg checking for vips_hist_find_ndim() [travisbell]
- - fix thumbnail with CMYK output [AdamGaskins]
- - fix size_t / ssize_t confusion [flga]
- - fix jxl compatibility break [lovell]
- 26/11/21 started 8.12.2
- - make exif resuint optional and default to inch
- - win: don't set create time on inappropriate file descriptors [lovell]
- - fall back to magicksave for gif if cgif is not present [erik-frontify]
- - fix a crash with 0 length vectors
- - change default frame delay for GIFs from 1s to 0.1s
- - remove stray trailing comma from iiif3 dirnames [whalehub]
- - fix TTF load [chregu]
- - revise GIF save alpha threshold [jfcalvo]
- - raise libpng pixel size limit from 1m to 10m pixels [jskrzypek]
- - fix gif save change detector [TheEssem]
- - fix load from pipe with variable size reads
- 21/11/21 started 8.12.1
- - fix insert [chregu]
- 14/6/21 started 8.12
- - all tools support `--version`
- - add vips_svgload_string() convenience function
- - fix thumbnail with small image plus crop plus no upsize [Andrewsville]
- - rename speed / reduction-effort / etc. params as "effort"
- - add gifsave [lovell]
- - arrayjoin minimises inputs during sequential processing, saving a lot of
- memory and file descriptors
- - add vips_image_get_format_max()
- - flatten handles out of range alpha and max_alpha correctly
- - don't use atexit for cleanup, it's too unreliable
- - tiff writer loops for the whole image rather than per page [LionelArn2]
- - fix VipsSource with named pipes [vibbix]
- - added restart_interval option to jpegsave [manthey]
- - add IIIF3 support to dzsave [martimpassos]
- - add atan2 to math2 [indus]
- - improve buffer and target save file format selection
- - added VipsForeignPpmFormat, format arg to ppm savers
- - add fail-on to give better control over loader error sensitivity
- - add hyperbolic functions sinh, cosh, tanh, asinh, acosh, atanh [hroskes]
- - add untiled jp2k load
- - "insert" will minimise in seq mode
- - better EXIF string handling [lovell]
- 16/8/21 started 8.11.4
- - fix off-by-one error in new rank fast path
- - add "unlimited" flag to png load [joshuamsager]
- - improve filtering of .v enums [lovell]
- - better logic to prevent shrink to nothing in thumbnail [kleisauke]
- 14/7/21 started 8.11.3
- - build threadpool later [kleisauke]
- - add jxlsave prototypes [adil-benameur]
- - limit text chunks in PNGs [randy408]
- 15/6/20 started 8.11.2
- - better libdir guessing [remi]
- - fix tiff pyramid creation with jp2k compression (was broken by 8.11.1)
- - don't load modules if we're built without modules
- 18/6/21 started 8.11.1
- - add more example code to C docs
- - update libtool support in configure.ac
- - more startup info if VIPS_INFO is set
- - command-line programs set glib prgname (no longer set for you by VIPS_INIT)
- - enable strip chopping for TIFF read [DavidStorm]
- - disable modules by default for static builds [kleisauke]
- - fix jpeg tiff pyramid save
- 14/8/20 started 8.11
- - add vips_jpegload_source() and vips_svgload_source() to public C API
- - integrate doxygen in build system to generate C++ API docs
- - improve C++ API doc comments
- - add VipsInterpolate and guint64 support to C++ API
- - add VImage::new_from_memory_steal [Zeranoe]
- - vipsthumbnail supports stdin / stdout thumbnailing
- - have a lock just for pdfium [DarthSim]
- - get pdfium load building again [Projkt-James]
- - add _source load support for pdfium
- - add "seed" param to perlin, worley and gaussnoise
- - add vips_source_g_input_stream_new() to load images from a GInputStream
- - add openslideload_source(), vipsload_source(), vipssave_target()
- - add hist path to rank for large windows on uchar images
- - better 8/16-bit choice for pngsave
- - avoid NaN in mapim [afontenot]
- - hist_find outputs a double histogram for large images [erdmann]
- - fix ref leaks in mosaicing package
- - run libvips leak test in CI
- - add vips_fitsload_source(), vips_niftiload_source()
- - png and gif load note background colour as metadata [781545872]
- - add vips_image_[set|get]_array_double()
- - add GIF load with libnsgif
- - add jp2kload, jp2ksave
- - add jp2k compression to tiff load and save
- - add JPEG-XL load and save
- - add black_point_compensation flag for icc transforms
- - add "rgba" flag to vips_text() to enable full colour text rendering
- - move openslide, libheif, poppler and magick to loadable modules [kleisauke]
- - better detection of invalid ICC profiles, better fallback paths
- - add "premultiply" flag to tiffsave
- - new threading model has a single threadpool shared by all
- pipelines [kleisauke]
- 30/4/21 start 8.10.7
- - better vips7 PNG load compatibility [SkyDiverCool]
- - fix load of large PPM images from a pipe [ewelot]
- 22/12/20 start 8.10.6
- - don't seek on bad file descriptors [kleisauke]
- - check for null memory sources [kleisauke]
- - improve ppmload, fixing a couple of small bugs
- - improve EOF detection in jpegload [bozaro]
- - improve error detection in spngload [randy408]
- - fix includes of glib headers in C++ [lovell]
- - fix build with more modern librsvg [lovell]
- - fix a possible segv with very wide images [f1ac]
- - fix issue thumbnailing RGBA images in linear mode [jjonesrs]
- - improve vipsthumbnail profile handling
- - fix tiff deflate predictor setting [Adios]
- - fix vector path for composite on i386 [kleisauke]
- 18/12/20 started 8.10.5
- - fix potential /0 in animated webp load [lovell]
- 14/12/20 started 8.10.4
- - fix spng detection
- 18/10/20 started 8.10.3
- - relax heic is_a rules [hisham]
- - fix vips7 webp load [barryspearce]
- - fix out of bounds exif read in heifload
- - fix out of bounds read in tiffload
- - fix tiffsave region shrink mode [imgifty]
- - add missing flushes on write to target [harukizaemon]
- - hide info messages you could get with some older glibs [kleisauke]
- - fix --no-strip on dzsave with icc-profiles [altert]
- - better GraphicsMagick image write [bfriesen]
- - add missing read loops to spng, heif, giflib and ppm load [kleisauke]
- - block zero width or height images from imagemagick load [Koen1999]
- - check for overflow in gifload height [lovell]
- - fix msb_first default in ppm load and save [ewelot]
- - force binary mode on win for connection read / write [Alreiber]
- - better testing for output to target [barryspearce]
- - ppmload_source was missing is_a [ewelot]
- - improve webpload rounding and blending behaviour [lovell]
- - fix range clip in int32 -> unsigned casts [ewelot]
- - fix precision error in clip of float -> int casts [ewelot]
- - fix load of HEIC images with 0 length metadata [ddennedy-gpsw]
- - revise rounding in reduce [kleisauke]
- 6/9/20 started 8.10.2
- - update magicksave/load profile handling [kelilevi]
- - better demand hint rules [kaas3000]
- - fix tiff thumbnail from buffer and source [vansante]
- - in jpegsave, don't set JFIF resolution if we set EXIF resolution
- - bump minimum libheif version to 1.3 [lovell]
- - dzsave in iiif mode could set info.json dimensions off by one [Linden6]
- - pdfload allows dpi and scale to both be set [le0daniel]
- - allow gaussblur sigma zero, meaning no blur
- - better heif signature detection [lovell]
- - fix vips_fractsurf() typo [kleisauke]
- - better heif EOF detection [lovell]
- - fix gir build with g-o-i 1.66+ [László]
- - improve seek behaviour on pipes
- - add "speed" param to heifsave [lovell]
- - fix regression in C path for dilate / erode [kleisauke]
- - fix build with libheif save but no load [estepnv]
- 9/8/20 started 8.10.1
- - fix markdown -> xml conversion in doc generation
- - remove typedef redefinitions to please old gccs
- - fix regression in tiff pyramid thumbnailing [tand826]
- - stop 0-length buffer being passed to imagemagick [lovell]
- - convert no-profile CMYK to RGB on save [augustocdias]
- - ensure SVG loader skips input with chars outside x09-x7F range [lovell]
- - better mask sizing in gaussmat [johntrunc]
- - fix tiffsave "squash" handling [barryspearce]
- - fix jpegload autorotate [chregu]
- - only start the background render thread on first use
- 24/1/20 started 8.10.0
- - more conformat IIIF output from dzsave [regisrob]
- - add @id to dzsave to set IIIF id property [regisrob]
- - add max and min to region shrink [rgluskin]
- - allow \ as an escape character in vips_break_token() [akemrir]
- - tiffsave has a "depth" param to set max pyr depth
- - libtiff LOGLUV images load and save as libvips XYZ
- - add gifload_source, csvload_source, csvsave_target, matrixload_source,
- matrixsave_source, pdfload_source, heifload_source, heifsave_target,
- ppmload_source, ppmsave_target
- - revise vipsthumbnail flags
- - add VIPS_LEAK env var
- - add vips_pipe_read_limit_set(), --vips-pipe-read-limit,
- VIPS_PIPE_READ_LIMIT
- - revise gifload to fix BACKGROUND and PREVIOUS dispose [alon-ne]
- - add subsample_mode, deprecate no_subsample in jpegsave [Elad-Laufer]
- - add vips_isdirf()
- - add PAGENUMBER support to tiff write [jclavoie-jive]
- - add "all" mode to smartcrop
- - flood fill could stop half-way for some very complex shapes
- - better handling of unaligned reads in multipage tiffs [petoor]
- - mark old --delete option to vipsthumbnail as deprecated [UweOhse]
- - png save with a bad ICC profile just gives a warning
- - add "premultipled" option to vips_affine(), clarified vips_resize()
- behaviour with alpha channels
- - improve bioformats support with read and write of tiff subifd pyramids
- - thumbnail exploits subifd pyramids
- - handle all EXIF orientation cases, deprecate
- vips_autorot_get_angle() [Elad-Laufer]
- - load PNGs with libspng, if possible
- - deprecate heifload autorotate -- it's now always on
- - revised resize improves accuracy [kleisauke]
- - add --vips-config flag to show configuration info
- - add "bitdepth" param to tiff save, deprecate "squash" [MathemanFlo]
- - tiff load and save now supports 2 and 4 bit data [MathemanFlo]
- - pngsave @bitdepth parameter lets you write 1, 2 and 4 bit PNGs
- - ppmsave also uses "bitdepth" now, for consistency
- - reduce operation cache max to 100
- - rework the final bits of vips7 for vips8 [kleisauke]
- - --disable-deprecated now works [kleisauke]
- - vipsheader allows "stdin" as a filename
- - gifload allows gifs with images outside the canvas
- - wasm compatibility patches [kleisauke]
- - webpsave has a @profile param
- 24/4/20 started 8.9.3
- - better iiif tile naming [IllyaMoskvin]
- 31/1/19 started 8.9.2
- - fix a deadlock with --vips-leak [DarthSim]
- - better gifload behaviour for DISPOSAL_UNSPECIFIED [DarthSim]
- - ban ppm max_value < 0
- - add fuzz corpus to dist
- - detect read errors correctly in source_sniff
- - fix regression in autorot [malomalo]
- - thumbnail on HEIC images could select the thumbnail incorrectly under some
- size modes [ZorinArsenij]
- 20/6/19 started 8.9.1
- - don't use the new source loaders for new_from_file or new_from_buffer, it
- will break the loader priority system
- - fix thumbnail autorot [janko]
- - fix a warning with magicksave with no delay array [chregu]
- - fix a race in tiled tiff load [kleisauke]
- - better imagemagick init [LebronCurry]
- - lock for metadata changes [jcupitt]
- 20/6/19 started 8.9.0
- - add vips_image_get/set_array_int()
- - disable webp alpha output if all frame fill the canvas and are solid
- - support arrays of delays for animated images [deftomat]
- - add "unlimited" flag to svgload
- - disable webp alpha output if all frames fill the canvas and are solid
- - add "compression" option to heifsave [lovell]
- - support webp and zstd compression in tiff
- - loaders use "minimise" to close input files earlier
- - integrate support for oss-fuzz [omira-sch]
- - add vips_switch() / vips_case() ... fast many-way ifthenelse
- - better const handling for arithmetic operators fixes comparisons against out
- of range values
- - sharpen restores input colourspace
- - handle alpha in heifload / heifsave [meyermarcel]
- - add @interpretation and @format to rawload
- - nifti load/save uses double for all floating point metadata
- - add vips_error_buffer_copy()
- - add VipsSource and VipsTarget: a universal IO class for loaders and savers
- - jpeg, png, tiff (though not tiffsave), rad, svg, ppm and webp use the
- new IO class
- - rewritten ppm load/save is faster and uses less memory
- - add @no_strip option to dzsave [kalozka1]
- - add iiif layout to dzsave
- - fix use of resolution-unit metadata on tiff save [kayarre]
- - support TIFF CIELAB images with alpha [angelmixu]
- - support TIFF with premultiplied alpha in any band
- - block metadata changes on shared images [pvdz]
- - RGB and sRGB are synonmous
- 17/9/19 started 8.8.4
- - improve compatibility with older imagemagick versions
- - remove realpath, since it can fail on systems with grsec
- 31/8/19 started 8.8.3
- - revert sharpen restoring the input colourspace
- - xres/yres tiffsave params were in pixels/cm [f--f]
- 9/7/19 started 8.8.2
- - better early shutdown in readers
- - don't attempt to save large XMP to jpeg [tnextday]
- - always fetch HEIC metadata from the main image [zhoux2016]
- - fix loop in malformed ppm [Kyle-Kyle]
- - better support for PNGs with long comment names
- - fix build with GM
- - add locks for pdfium load
- - fix build with MSVC
- - fix a problem with shinkv tail processing [angelmixu]
- - fix a read one byte beyond buffer bug in jpegload
- - make GIF parsing less strict
- - better feof() handling in GIF load
- - clip coding and interpretation on vips image read
- - check image bounds for GIF load
- - prevent over-pre-shrink in thumbnail [kleisauke]
- - fix sharpen with sigma 0.5 [2h4dl]
- - sharpen restores input colourspace
- - verify bands/format for coded images
- - improve data_length handling for jpeg metadata
- 24/5/19 started 8.8.1
- - improve realpath() use on older libc
- - better magickload error messages
- - more consistent behaviour for page-height metadata
- - fix for composite with many small images and some combinations of blend modes
- - fix memleak in tiff pyr save to memory [scossu]
- - istiff attempts to read the first directory rather than just testing the
- magic number [przemyslawpluta]
- - much faster ismagick() [jcupitt]
- - better behaviour for vips_region_fetch() if request lies partly outside image
- - remove 256 band limit in arithmetic.c [erdmann]
- - disable Orc if building with CET [lovell]
- - fix vipsthumbnail with pyr tiff [kleisauke]
- - text autofit could occasionally terminate early [levmorozov]
- - fewer warnings on tiffload [chregu]
- - vips_resize() breaks aspect ratio and limits shrink to prevent <1px
- dimensions [lovell]
- 21/9/18 started 8.8.0
- - much faster smartcrop [lovell]
- - add low/high to smartcrop [jcupitt]
- - add XMP support to png read/write [jcupitt]
- - deprecate thumbnail auto_rotate, add no_rotate [jcupitt]
- - implement thumbnail shrink-on-load for openslide images [jcupitt]
- - add animated webp support [jcupitt]
- - revise vips_cast() to improve behaviour with uint images [erdmann]
- - add bandand()/or()/eor() to cplusplus binding [clcaalu]
- - implement shrink-on-load for tiff pyramids [jcupitt]
- - added vips_image_set_blob_copy() [jcupitt]
- - don't stop composite on first non-transparent image [felixbuenemann, GDmac]
- - add vips_rect_overlapsrect()
- - composite is much faster at positioning subimages
- - stop tiff pyr layers if width or height drop to 1 [gvincke]
- - dzsave has a new skip_blanks option
- - add vips_CMYK2XYZ() and vips_XYZ2CMYK(), plus associated routes
- - include cmyk and srgb fallback profiles
- - add vips_profile_load() and use it everywhere
- - fix race in temp filename creation [lhecker]
- - add @reduction_effort param to webpsave [lovell]
- - add @option_string param to thumbnail_buffer [kleisauke]
- - add XMP, IPCT, ICC, EXIF etc. support to magickload/magicksave
- - much lower memuse for gifload
- - tilecache speedups
- - add vips_heifload(), vips_heifsave()
- - add heif thumbnail support to vips_thumbnail()
- - free threadpool earlier, reducing mem growth for some long-running
- processes [jtorresfabra]
- - add vips_region_fetch() / _width() / _height() for language bindings
- - vips_text() supports justification
- - move vips_image_set_kill() and iskilled() to the public API
- - dzsave to szi sets suffix correctly [martinweihrauch]
- - dzsave szi writes "scan-properties.xml"
- - add vips_image_(get|set)_image()
- - add openslideload option to attach all associated images as metadata
- - dzsave to szi will write all associated images
- - remove old c++ and python interfaces
- - vipsthumbnail can thumbnail animated and multipage images
- - deprecate webpload @shrink, use @scale instead
- 31/3/19 started 8.7.5
- - better buffer sizing in tiff reader [omira-sch]
- 4/1/19 started 8.7.4
- - magickload with magick6 API did not chain exceptions correctly causing a
- memory leak under some conditions [kleisauke]
- - zero memory on allocate to prevent write of uninitialized memory under some
- error conditions [Balint Varga-Perke]
- 21/11/18 started 8.7.3
- - fix infinite loop for autofit with non-scaleable font
- - mapim was not offsetting by window offset [erdmann]
- - better rounding for scale [kleisauke]
- - fix a memleak in magick6load [kleisauke]
- 21/11/18 started 8.7.2
- - more info output for temp files to help diagnose problems
- - vips_text() could set the wrong DPI
- - vips_text() leaked in autofit mode
- 23/9/18 started 8.7.1
- - update function list in docs [janko-m]
- - test for g_str_to_ascii() [jcupitt]
- - fix temp file open on Windows and fallback on linux [lovell]
- 23/12/17 started 8.7.0
- - add magicksave, save image with libMagick [dlemstra]
- - remove jpeg thumbnail from EXIF if "jpeg-thumbnail-data" has been removed by
- user
- - hough_line scales width to 0 - 180, not 0 - 360
- - hough_line is 4x faster
- - hough_circle is 2x faster
- - add vips_sobel() and vips_canny() edge detectors
- - add vips_rotate() ... a convenience method for vips_similarity()
- - svgload was missing is_a [lovell]
- - better header sniffing for small files
- - drop incompatible ICC profiles before save
- - better hasalpha rules
- - create funcs always make MULTIBAND (ie. no alpha)
- - use O_TMPFILE, if available [Alexander--]
- - set "interlaced=1" for interlaced JPG and PNG images
- - add PDFium PDF loader
- - jpegload adds a jpeg-chroma-subsample field with eg. 4:4:4 for no
- chrominance subsampling.
- - tiffload, pdfload, magickload set VIPS_META_N_PAGES "n-pages" metadata item
- - add fontfile option to vips_text() [fangqiao]
- - add vips_transpose3d() -- swap major dimensions in a volumetric image
- - remove vips7 stuff from default API ... you must now #include it explicitly
- - added vips_argument_get_id() to fix derived classes on win32 [angelmixu]
- - fix compile with MSVC 2017 [angelmixu]
- - pdfload has a option for background
- - vips7 C++ interface defaults off
- - make members, getters and operators "const" in cpp API
- - composite has params for x/y position of sub-images [medakk]
- - add Mitchell kernel
- - pyramid builders have a choice of 2x2 shrinkers [harukizaemon]
- - add `palette` option to pngsave [felixbuenemann]
- - add basic nifti load/save support
- - support writing string-valued fields via libexif
- - paste in the test suite from pyvips
- - get EXIF tag names from tag plus ifd [@Nan619]
- - escape ASCII control characters in XML
- - magickload now sniffs some file types itself
- - update radiance load from upstream
- - add region_shrink to tiffsave
- - mapim could fail for float index images with coordinates out of int range
- - scale openexr alpha to 0 - 255
- - close input earlier, when we can [kleisauke]
- - add vips_object_get_args() for language bindings [kleisauke]
- 12/3/18 started 8.6.4
- - better fitting of fonts with overhanging edges [Adrià]
- - revise C++ example [fangqiao]
- - strict round down on jpeg shrink on load [davidwood]
- - configure test for g++ 7.2 and composite.cpp
- - don't Ping in magickload, too unreliable
- - ensure WebP can add metadata when compiled with libwebpmux [lovell]
- - improve accuracy of vector path convolution [felixbuenemann]
- 12/2/18 started 8.6.3
- - use pkg-config to find libjpeg, if we can
- - better clean of output image in vips_image_write() fixes a crash
- writing twice to memory
- - better rounding behaviour in convolution means we hit the vector path more
- often
- - fix a crash if a delayed load failed [gsharpsh00ter]
- - icc_import attaches the fallback profile if it used it
- 5/1/18 started 8.6.2
- - vips_sink_screen() keeps a ref to the input image ... stops a rare race
- - fix a minor accidental ABI break in 8.6.0 -> 8.6.1 [remicollet]
- - fix read of plane-separate TIFFs with large strips [remicollet]
- - fix a C++ warning in composite.cpp [lovell]
- - remove number of images limit in composite
- - composite allows 1 mode ... reused for all joins
- - fix race in vips_sink() for seq read
- 10/12/17 started 8.6.1
- - fix mmap window new/free cycling
- - fix some compiler warnings
- - remove the 64-image limit on bandary operations
- - better version date [bmwiedemann]
- - bump wrapper script version [bgilbert]
- - fix a memleak on error during jpeg buffer write [lovell]
- - fix misspelling of IPTC as IPCT [lovell]
- - seq could be set on small images opened in random-access mode [aferrero2707]
- - fix small memleak in dzsave [lovell]
- - small speedup for rgb->g [lovell]
- 15/4/17 started 8.6.0
- - supports fits images with leading non-image HDUs, thanks benepo
- - add vips_image_new_from_image() and vips_image_new_from_image1() ... make a
- constant image
- - add new_from_image() to Python as well
- - slight change to cpp new_from_image() to match py/C behaviour
- - vips_conv(), vips_compass(), vips_convsep() default to FLOAT precision
- - add FORCE resize mode to break aspect ratio
- - add vips_thumbnail_image()
- - better prefix guessing on Windows, thanks tumagonx
- - savers support a "page_height" option for multipage save
- - rename 'disc' as 'memory' and default off
- - add vips_find_trim(), search for non-background areas
- - remove lcms1 support, it had bitrotted
- - `join` tagged as seq
- - support tiffsave_buffer for pyramids, thanks bubba
- - thumbnail and vipsthumbnail have an option for rendering intent, thanks
- kleisauke
- - set file create time on Windows, thanks dlong500
- - remove python tests ... moved to pyvips test suite
- - vips7 and vips8 python bindings default to off ... use the new pyvips
- binding instead
- - better svgload: larger output, handle missing width/height, thanks lovell
- - add vips_gravity() ... embed, but with direction rather than position
- - vips_text() can autofit text to a box, thanks gargsms
- - add vips_composite() / vips_composite2(): merge a set of images with
- a set of blend modes
- - better gobject-introspection annotations, thanks astavale
- - vips_image_write() severs all links between images, when it can ... thanks
- Warren and Nakilon
- - vector path for convolution is more accurate and can handle larger masks
- - linear and cubic kernels for reduce are higher quality
- - added vips_value_set_blob_free()
- - "--size Nx" to vipsthumbnail was broken, thanks jrochkind
- - fix build with gcc 7
- - add vips_fill_nearest() ... fill pixels with nearest colour
- - add VIPS_COMBINE_MIN, a new combining mode for vips_compass()
- - vips_hist_find_indexed() now has a @combine parameter
- - vips_affine() and vips_similarity() have a "background" parameter
- - fix nasty jaggies on the edges of affine output, thanks chregu
- - add gif-delay, gif-comment and gif-loop metadata
- - add dispose handling to gifload
- - dzsave outputs extra right and bottom overlap-only tiles, for closer spec
- adherence
- - deprecate the "centre" option for vips_resize(): it's now always on
- - setting the EXIF data block automatically sets other image tags
- - add "extend" option to affine; resize uses it to stop black edges
- 29/8/17 started 8.5.9
- - make --fail stop jpeg read on any libjpeg warning, thanks @mceachen
- - don't build enumtypes so often, removing perl as a compile dependency
- - fix a crash with heavy use of draw operations from language bindings,
- thanks @Nakilon
- 2/8/17 started 8.5.8
- - fix transparency detection in merge, thanks Haida
- - define env var VIPS_WARNING to hide warning messages
- - shut down dzsave output earlier to help mark-sweep bindings
- - fix webp thumbnail upscale, thanks Kleis
- 9/6/17 started 8.5.7
- - better smartcrop
- - transform cmyk->rgb automatically on write if there's an embedded profile
- and the saver does not support cmyk
- - fix DPI mixup in svgload ... we were writing images about 20% too large,
- thanks Fosk
- 19/5/17 started 8.5.6
- - tiff read with start page > 0 could break edge tiles or strips
- - raise b64 limit to allow for huge profiles (thanks jaume)
- - fix error return in blob save (thanks jaume)
- - tag vipsprofile as py2 (thanks ioquatix)
- - don't cache thumbnail (thanks tomasc)
- 23/4/17 started 8.5.5
- - doc polishing
- - more improvements for truncated PNG files, thanks juyunsang
- - improve corrupted jpg handling, thanks juyunsang
- - fix small test suite issues on os x
- 23/4/17 started 8.5.4
- - don't depend on image width when setting n_lines, thanks kleisauke
- 7/4/17 started 8.5.3
- - more link fixing in docs
- - revise cache sizing again to help out of order errors under heavy load, thanks
- kleisauke
- 25/3/17 started 8.5.2
- - better behaviour for truncated PNG files, thanks Yury
- - missing proto for vips_tiffsave_buffer(), thanks greut
- - move some docs from the wiki and blog into core libvips docs
- - add support for markdown in docs
- 25/3/17 started 8.5.1
- - init more classes earlier, thanks David
- 13/10/16 started 8.5.0
- - rewritten buffer system is safer and frees memory earlier
- - added tiff save to buffer
- - added dzsave save to buffer (zip only)
- - revise header get/set functions
- - better vipsheader behaviour with complex field types
- - added vips_image_hasalpha()
- - added vips_thumbnail() / vips_thumbnail_buffer()
- - webpload/webpsave read and write icc, xmp, exif metadata
- - better >4gb detect for zip dzsave output [Felix Bünemann]
- - all loaders have a @fail option, meaning fail on first warning, though it
- only does anything for jpg and csv
- - add vips_image_get_fields() to help bindings
- - add tiff multi-page read/write
- - add VIPS_META_PAGE_HEIGHT metadata
- - IM6/IM7 magickload supports page/n/page-height, all_frames deprecated
- - gifload supports n/page-height
- - added #defines for VIPS_SONAME, VIPS_LIBRARY_CURRENT, VIPS_LIBRARY_REVISION,
- VIPS_LIBRARY_AGE
- - better support for bscale / bzero in fits images
- - deprecate vips_warn() / vips_info(); use g_warning() / g_info() instead
- - vipsthumbnail supports much fancier geometry strings, thanks tomasc
- - vips_thumbnail() has new @size option
- - fix --vips-cache-max etc.
- - add compute reordering, plus some new API to support it:
- vips_reorder_margin_hint() and vips_reorder_prepare_many(), thanks
- aferrero2707
- - kick load operations from cache on read error, thanks gaillard
- - fix return from C++ assignment operator overloads (+=, -= etc)
- - add @max_slope to vips_hist_local() to implement CLAHE, thanks hunter-87
- - vips_gaussnoise() pixels are reproducible on recalc, thanks MvGulik
- - max/min sort values by y and x coordinate
- - tiff read uses libtiff scanline API if rows-per-strip is large
- - vips_region_shrink() knows about alpha, helps dzsave and tiffsave
- - use expat, not libxml, for XML load ... removes a required dependency, since
- we get expat as part of glib
- - new sequential mode infrastructure is faster and more flexible
- - add vips_smartcrop(), based on sharp's smartcropper
- - vipsthumbnail has a --smartcrop option
- - added vips_rot90() etc. convenience functions
- - fix vips_resize() bug when hscale and vscale were very different
- 8/12/16 started 8.4.5
- - allow libgsf-1.14.26 to help centos, thanks tdiprima
- 11/11/16 started 8.4.4
- - fix crash in vips.exe arg parsing on Windows, thanks Yury
- 18/10/16 started 8.4.3
- - fix error detection in gif_close, thanks aaron42net
- - fix tiny threading memleak
- - improve compatibility with very old glib, see #548
- 27/9/16 started 8.4.2
- - small doc improvements
- - fix error message for metadata fetch type mismatch
- - resolve a race condition in thread shutdown, thanks Lovell
- 1/5/16 started 8.4
- - many more wepsave options [Felix Bünemann]
- - added quant_table option to wepsave [Felix Bünemann]
- - added @n option to pdfload, thanks andris
- - dzsave won't write empty tiles in google mode, thanks bverem, perog,
- felixbuenemann
- - allow nested [] in CLI args
- - restore BandFmt on unpremultiply in vipsthumbnail
- - better python detection and build [Felix Bünemann]
- - max-alpha defaults to 65535 for RGB16/GREY16
- - added radsave_buffer [Henri Chain]
- - support tiff orientation tag
- - autorotate option for tiff load
- - tiffsave converts for jpg if jpg compression is turned on
- - tiffsave supports --strip
- - conversions to GREY16 could lock
- - free pixel buffers on image close as well as thread exit ... stops main
- thread buffers clogging up the system
- - dzsave can write compressed zips [Felix Bünemann]
- - vips_image_write() only refs the input when it has to ... makes it easier to
- combine many images in bounded memory
- - VImage::write() implementation was missing
- - VImage::write() return value changed from void to VImage to help chaining
- - added C++ arithmetic assignment overloads, += etc.
- - VImage::ifthenelse() with double args was missing =0 on options
- - better accuracy for reducev with smarter multiplication
- - better quality for vips_resize() with linear/cubic kernels
- - pyvips8 can create new metadata
- - better upsizing with vips_resize()
- - add imagemagick v7 support, thanks sachinwalia2k8
- - added vips_worley(), vips_perlin() noise generators
- - added vips_convf(), vips_convi(), vips_convasep(), vips_conva() ...
- im_conv*() functions rewritten as classes
- - vips_convsep() calls vips_convasep() for the approximate case
- - new fixed-point vector path for convi is up to about 2x faster
- - gif loader can make 1, 2, 3, or 4 bands depending on file contents
- - support --strip for pngsave
- - add svgz support [Felix Bünemann]
- - rename bootstrap.sh -> autogen.sh to help snapcraft
- - support unicode filenames on Windows
- - added VIPS_ROUND as well as VIPS_RINT
- - resize/reduce*/shrink*/affine now round output size to nearest rather than
- rounding down, thanks ioquatix
- - better support for tile overlaps in google maps mode in dzsave
- - dzsave puts vips-properties.xml in the main dir for gm and zoomify layouts
- - resize and reduce have @centre option for centre convention downsampling
- - vipsthumbnail uses centre convention to better match imagemagick
- _ add vips_foreign_get_suffixes()
- 19/8/16 started 8.3.4
- - better transparency handling in gifload, thanks diegocsandrim
- 30/7/16 started 8.3.3
- - fix performance regression in 8.3.2, thanks Lovell
- - yet more robust vips file reading
- 18/5/16 started 8.3.2
- - more robust vips image reading
- - more robust tiff read [Matt Richards]
- 15/4/16 started 8.3.1
- - rename vips wrapper script, it was still vips-8.2, thanks Benjamin
- - export C++ operator overloads for MSVC linking [Lovell]
- - fix magickload @page with GraphicsMagick
- - add giflib5 support
- - allow resize >1 on one axis, <1 on the other
- - vips_resize has an optional @kernel argument
- - fix giflib4 detection [felixbuenemann]
- 29/1/16 started 8.3
- - add vips_reduce*() ... a fast path for affine downsize
- - vips_resize() uses vips_reduce() with lanczos3
- - bicubic is better on 32-bit int images
- - add pdfload, svgload, gifload for PDF, SVG and GIF rendering
- - vipsthumbnail knows about pdfload and svgload
- - added @page param to magickload
- - matload is more specific (thanks bithive)
- - lower mem use for progressive jpg decode
- - sharpen has a new @sigma param, @radius is deprecated
- - sharpen allows a much greater range of parameters
- - sharpen defaults now suitable for screen output
- - better handling of deprecated args in python
- - much better handling of arrayimage command-line args
- - faster hist_find (Lovell Fuller)
- - webpload has a @shrink parameter for shrink-on-load
- - vipsthumbnail knows about webp shrink-on-load
- - better behaviour for vips_cast() shift of non-int types (thanks apacheark)
- - python .bandrank() now works like .bandjoin()
- - vipsthumbnail --interpolator and --sharpen switches are deprecated
- - switches to disable PPM, Rad and Analyze support
- - added VIPS_COUNT_PIXELS(), overcomputation tracking
- - @out_format in vips_system() can contain [options]
- - webpsave_buffer no longer ignores @lossless, thanks aaron42net
- - float tiff tagged as scRGB to match photoshop convention, thanks Murat
- - better jpeg autorot, thanks otto
- 24/3/16 started 8.2.4
- - fix nohalo and vsqbs interpolators, thanks Rafael
- 27/1/16 started 8.2.3
- - fix a crash with SPARC byte-order labq vips images
- - fix parsing of filenames containing brackets, thanks shilpi230
- - fix hist_entropy (lovell)
- - small fixes to radiance load
- 12/1/16 started 8.2.2
- - changes to ease compiling C++ binding with MSVC [Lovell Fuller]
- - reorder file tests to put slow loaders last
- - ifthenelse needs less C stack during eval
- - better rounding in bilinear interpolator
- - fix to "make check" in non-C locales [felixbuenemann]
- - use compiler builtins isnan, isinf, fabs, fmin, fmax, ceil, floor when
- possible [Lovell Fuller]
- - tune vips_shrinkh(), 30% faster [Lovell Fuller]
- - remove SEQ hint from vips_subsample(), fixes cli performance [erdmann]
- - fix double free on attach ICC profile from file in tiff write [erdmann]
- - use g_assert_not_reached()
- - better vips-from-C docs
- - remove Duff from im_conv() / im_conv_f() for a 25% speedup [Lovell Fuller]
- 1/1/16 started 8.2.1
- - add a compat stub [Benjamin Gilbert]
- - python bandjoin is now just an instance function
- - small doc improvements
- - small vips7 C++ improvement
- - remove exception specifications from vips8 C++ interface [Lovell Fuller]
- - VImage::get_typeof() now returns GType
- 7/10/15 started 8.2.0
- - added im_bufmagick2vips(), a vips7 wrapper for magick load from buffer
- - fetch unset property now returns default value rather than warning
- - many more const declarations to help gobject-introspection
- - rewritten vips_shrink() is 2x faster, much lower memuse, now handles complex
- - only allow [] for filename options
- - add memory.h to Python API .. makes tracked highwater visible
- - added bandjoin_const to add constant bands to an image
- - better alpha handling for tiff write, thanks sadaqatullahn
- - better cache sizing for vips_resize()
- - sizealike / formatalike / bandsalike elide completely if they can for
- a x2 saving in C stack use in many cases
- - added vips_mapim() ... resample with an index image, plus test
- - try to improve vips_resize() quality a little more
- - vips_resize() can do non-square resizes
- - dzsave removes tile metadata by default, thanks Benjamin
- - jpeg strip option removes a little more, thanks Benjamin
- - added vips_image_new_from_memory_copy()
- - improve vips_sink_screen() stability under heavy load
- - added vips_arrayjoin()
- - Python x.bandjoin(y) is now x.ibandjoin(y), sorry
- - faster and lower-mem TIFF read
- - faster bilinear interpolator
- - TIFF loads and saves IMAGEDESCRIPTION
- - add --properties flag to tiffsave
- - dzsave defaults changed: now writes 256x256 jpegs for non-edge tiles, thanks
- Daniel
- 7/5/15 started 8.1.1
- - oop, vips-8.0 wrapper script should be vips-8.1, thanks Danilo
- - fix vips7 pathname parsing on windows, thanks Lovell
- 7/5/15 starteld 8.1.0
- - add vips_premultiply(), vips_unpremultiply()
- - change the alpha range rules for vips_flatten() to match vips_premultiply()
- - vipsthumbnail uses vips_resize() rather than its own code
- - vipsthumbnail uses vips_premultiply() for better alpha quality
- - added bandand() bandor() bandeor() convenience funcs to Python
- - oops, base64 encode could pad by up to two zero bytes
- - added VipsRefString as a thing that gi bindings can unpack
- - support "with Vips.Image as i:" in Python
- - try to support DOS CSV and PPM files on linux
- - add vips_byteswap(), remove byteswap option from vips_copy()
- - add vips_bandfold()/vips_bandunfold()
- - dzsave supports zip output > 4gb, thanks benjamin
- - add support for HSV colourspace [Jonas Øgaard]
- - skip oversized markers in jpeg write
- - jpeg exif tags saved as name rather than title
- - can now set any jpeg exif tag, not just modify existing tags
- - add vips_hist_entropy()
- - vips_log(), vips_log10() are zero-avoiding
- - better overlap handling for dzsave, thanks robclouth
- - add @spacing option to vips_text()
- - tiff loads and saves IPCT and Photoshop data
- 7/5/15 started 8.0.3
- - dzsave and tif pyr write could fail for some image dimensions, thanks Jonas
- 4/5/15 started 8.0.2
- - fix a refcount error in C++ wrapper, thanks huskier
- - better C++ api test
- - test suite improvements
- - remove a couple of stray header decls, thanks benjamin
- 25/4/15 started 8.0.1
- - fix some compiler warnings
- - work around a glib bug that can cause segv under load
- - add some notes on threading to the docs
- - better leak reporting
- 11/2/15 started 8.0
- - remove old doc stuff, lots of doc improvements
- - add fliphor(), flipver(), rot90(), rot180(), rot270(), median(), dilate(),
- erode() convenience methods to Python and C++
- - python: use [] to index and slice image bands, use () to get a point
- - c++: use [] to band index, () returns a vector<double>
- - add shift option to cast
- - sRGB2scRGB and scRGB2sRGB scale 16-bit alpha to and from 8-bit
- - add magickload_buffer() [mcuelenaere]
- - add vips_foreign_is_a_buffer() [mcuelenaere]
- - added test_foreign.py, plus more test images
- - added vips_region_shrink(), fast x2 shrinker
- - rewritten tiff writer is about 3 - 4x faster at making pyramids
- - jpg, magick, png, tiff readers now use only 1 fd per input image
- - added vips_info_set(), vips_progress_set(), vips_profile_set() ... bindings
- can now support all the vips command-line options if they wish
- - better conversion to greyscale, thanks bkw
- - add vips_image_copy_memory(), improves stability with heavy threading
- - jpegsave supports new mozjpeg features [lovell]
- - add vips_vipsload(), vips_vipssave() ... why not
- 26/3/15 started 7.42.4
- - im_maxpos_avg() avoids NaN
- - small tiffsave doc improvements
- - better thresholding for tiffsave "squash" mode
- - add @miniswhite mode to tiffsave
- 6/2/15 started 7.42.3
- - bump version for back-compat ABI change
- - added vips_image_memory(), an alias for vips_image_new_memory()
- - improvements to configure for python
- - remove --disable-cxx configure flag
- - python imageize preserves interpretation
- - fix dzsave as a target format
- 30/12/14 started 7.42.2
- - C++ required output params were broken, thanks Lovell
- - remove VImage::scale() to get scale from header, it clashed with the
- VipsScale operator, thanks Lovell
- - allow c++ set enum from string
- - display param default and range in usage
- - better docs
- - more tests
- - renamed VIPS_FOREIGN_DZ_DEPTH_1 as VIPS_FOREIGN_DZ_DEPTH_ONE etc. to help
- bindings
- - vipsthumbnail will return an error code if one or more conversions failed
- - disable chroma subsample in jpeg-tiff if Q >= 90
- - try to handle tiffs with old-style 8-bit colormaps
- - rename vipsthumbnail -o as -f, -o stays as a hidden flag
- - fix some small leaks
- - faster openslide load, thanks Benjamin
- - add VInterpolate class to cplusplus binding, thanks Lovell
- - add lower-level operation cache access
- - turn on leak testing in test suite
- - don't use isnormal() to test for crazy FP numbers, thanks Murat
- - much faster RGB16 -> sRGB path
- 24/12/14 started 7.42.1
- - add gobject-2.0 to Requires: in vips and vips-cpp .pc files
- - bump soname
- - fix VipsBlob read
- - remove "future" dependency, thanks bgilbert
- 4/11/14 started 7.42.0
- - better default resolution for png load
- - better pbm (one bit) load, better pfm (float) load/save
- - added pbm (one bit) save
- - changed vips_gaussblur() parameters, sorry
- - add .szi as a dzsave zip synonym
- - support tiff XMP metadata
- - support @density arg to magickload [Lovell]
- - support python3.4 and python2.7 in new python binding
- - vips_gaussmat() and vips_logmat() are now int by default, to match
- vips_conv(), and use @precision, not @integer
- - added --disable-pyvips8 switch to turn off new py binding
- - "vips thing" exit status can now be used to test for optional components
- 25/7/14 started 7.41.0
- - start working on --disable-deprecated
- - fix pngload with libpng >1.6.1
- - add vips_resize()
- - return of vips_init(), but just for bindings
- - revised type.c to make it more binding-friendly
- - add @background arg to save: the colour to flatten against
- - add VIPS_ARGUMENT_MODIFY flag ... used for draw_circle etc, meaning an op
- which modifies its argument
- - rename VIPS_OPERATION_RELATIONAL_NOTEQUAL as VIPS_OPERATION_RELATIONAL_NOTEQ
- for consistency
- - python vips8 binding
- - python vips8 test suite: test_arithmetic.py, test_colour.py,
- test_conversion.py
- - move zoomify ImageProperties file, now a better match to the official tool
- - rename VIPS_ANGLE_180 as VIPS_ANGLE_D180 etc. to help python
- - remove cimg support, we have a gmic plugin now instead
- - add support for vips8 plugins
- - added "autorotate" option to jpeg load
- - added autorot operator
- - added @filter option to pngsave (Lovell)
- - C++ vips8 binding
- 27/10/14 started 7.40.12
- - better tiff detection (Lovell)
- - fix memleak in sharpen (Lovell)
- - fix profile handling in XYZ2scRGB, thanks Lovell
- 8/10/14 started 7.40.11
- - rework extra band handling for colour functions
- - set interpretation of matlut output more carefully
- 8/9/14 started 7.40.10
- - icc_import and icc_transform checks the input profile for compatibility
- with the image, thanks James
- - try to make vips_thread_shutdown() optional
- 8/9/14 started 7.40.9
- - support jfif resunit "none"
- - support GRAY as an input and output ICC space
- - fix a read loop with setjmp() in png read, if the png file is broken
- - fix vipsthumbnail with both input cmyk and output rgb profiles specified
- - vipsthumbnail retries with specified input profile if embedded profile is
- broken
- - add @profile option to pngsave, matching tiff and jpeg
- - fix a race in the operation cache [Lovell]
- 8/9/14 started 7.40.8
- - fix configure on rhel6 [Lovell]
- - mono <-> rgb converters were not handling extra bands, thanks James
- - support jpeg resunit "none"
- 21/8/14 started 7.40.7
- - width and height were swapped in matlab load
- - set interpretation more carefully on matlab load
- - fix memleak in tilecache [Lovell]
- - fix memleak in VipsArray [Lovell]
- - fix memleak in webp load from buffer [Lovell]
- - fix memleak in png save to buffer [Lovell]
- - make out of order read in png and jpg a fatal error
- - add thread_shutdown() to C++ (and thereby to python)
- 12/8/14 started 7.40.6
- - more doc fixes
- - fix similarity rotate+scale, thanks Topochicho
- - fix 16-bit PNG save, thanks John
- - fix dzsave date on Windows, thanks John
- - fix vipsthumbnail on many-core systems, thanks James
- 25/7/14 started 7.40.5
- - fix a race in im_maxpos_avg()
- - limit n_thr on tiny images
- - don't exit() on memleak detected, just warn
- - add "autocrop" option to openslide load
- - argh fix affine, again, there were sometimes black bars with nohalo and the
- vips8 interface
- - pngsave in interlaced mode makes a copy of the image, so it's always seq
- - vipsthumbnail shrinks to 1/2 window_size
- - vipsthumbnail has an anti-alias filter between shrink and affine
- - vipsthumbnail defaults to bicubic
- - better rounding behaviour for fixed-point bicubic reduces noise
- - fix pngload with libpng >=1.6.11
- - fix colour for openslide read associated
- 4/7/14 started 7.40.4
- - fix vips_rawsave_fd(), thanks aferrero2707
- - fix im_point()
- - vips_scale() now does round to nearest to avoid rounding errors
- - improve im_openout() compat macro
- - more vips7 compatibility fixes, thanks steve
- - more robust vips_system()
- - add webp support to vips7
- 30/6/14 started 7.40.3
- - fix interlaced thumbnails in vipsthumbnail, thanks lovell
- - fix use of "header" in benchmark/, thanks David
- - fits save now caches the image before write, so it's top-to-bottom
- - add --properties argument to dzsave, thanks bgilbert, jhenriksen
- 25/6/14 started 7.40.2
- - dzsave write to zip stops at 4gb, thanks bgilbert
- - improve short option name handling, thanks bgilbert
- - added --enable-docs configure option to help freebsd
- - removed a bash-ism from configure to help freebsd
- - don't assume GType fits in an int to help freebsd
- 24/6/14 started 7.40.1
- - revise man.1 pages
- - fix vips_guess_prefix()
- 23/6/14 started 7.40.0
- - version bump
- - renamed "header" as "vipsheader" and "edvips" as "vipsedit"
- 21/1/14 started 7.39.0
- - auto-decode for (almost) all operations, see vips_image_decode()
- - background render thread cleans up and quits neatly
- - colourspace has a source_space option
- - operations can be tagged as "deprecated"
- - redo im_draw_circle(), im_draw_flood(), im_draw_line(), im_draw_mask(),
- im_draw_image(), im_draw_rect(), im_draw_point(), im_read_point(),
- im_draw_smudge(), im_label_regions() as classes
- - better rounding in vips_flatten()
- - VipsStatistic operations are sequential
- - vipsthumbnail has --rotate auto-rotate option
- - removed embedded thumbnail reader from vipsthumbnail: embedded thumbnails
- are too unlike the main image
- - fix to vipsthumbnail --crop, thanks Alessandro
- - add vips_sum()
- - add vips_hough base class and vips_hough_line()
- - add "mode" param to vips_draw_image()
- - add vips_hough_circle()
- - reduce default cache size to 1,000 operations
- - added "postbuild" signal
- - vips_system() now supports many input images and you can change image
- argument order
- - support 16-bit palette TIFFs, plus palette TIFFs can have an alpha
- - libgsf-1 is now an optional dependency
- - dzsave can directly write a ZIP file
- - add ".vips" as an alternative suffix for vips files
- - added vips_tiffload_buffer()
- - added vips_image_new_from_buffer(), vips_image_write_to_buffer()
- - added vips_object_set_from_string()
- - added @container option to dzsave
- - support 1/2/4 bit palette tiff images with alpha
- - vips_system() now uses g_spawn_command_line_sync()
- - added im_tile_cache_random() to help nip2
- - added hough_circle() to vips7 C++ API
- - added Travis CI config, thanks Lovell
- - im_*merge(), im_*mosaic(), im_match*(), im_global_balance*(), im_remosaic(),
- im_*mosaic1(), im_*merge1() redone as classes
- - better filename tracking for globalbalance
- - revised vips8 image load/save API, now simpler and more logical
- - operations emit "invalidate" if any of their input images invalidate
- - operation cache drops ops on invalidate
- - skipahead is back, thanks to a new threadpool tweak
- 6/3/14 started 7.38.6
- - grey ramp minimum was wrong
- - vipsthumbnail --crop could fail for very non-square images, thanks
- Alessandro
- - fix a crash in vips_rawsave(), thanks Andrea
- - updated German translation, thanks Chris
- - fix coordinate error in affine, thanks ferryfax
- 24/2/14 started 7.38.5
- - jpeg load from buffer could write to input, thanks Lovell
- - fix webpload from buffer, thanks Lovell
- - vips_sequential() could fail under heavy load
- - remove support for seq mode read for operations like extract
- 13/2/14 started 7.38.4
- - --sharpen=none option to vipsthumbnail was broken, thanks ferryfax
- - more locking on property create and lookup to help very-threaded systems,
- thanks Nick
- 22/1/14 started 7.38.3
- - undeprecate VIPS_MASK_IDEAL_HIGHPASS and friends, ruby-vips was using them,
- thanks ahacking
- 22/1/14 started 7.38.2
- - auto RAD decode for affine
- - falsecolour was not working for some image types
- - foreign memory buffer images did not have the right dhint, broke
- command-line falsecolour on sequential images
- - support many Radiance readers active at once
- - add secret "rgbjpeg" flag to vips_tiffsave() to help IIP
- 19/1/14 started 7.38.1
- - bump soname, thanks benjamin
- - better conversion to and from scrgb/xyz for rad (hdr)
- - fix --interpolate flag to vipsthumbnail, thanks Lovell
- 18/1/14 started 7.38.0
- - version bump
- 19/10/13 started 7.37.0
- - redone im_rotate_*mask45(), im_gauss_*mask*(), im_log_*mask(), im_dilate(),
- im_erode(), im_rank_image(), im_compass(), im_linedet(), im_gradient(),
- im_convsep(), im_convsep_f(), im_fastcor(), im_spcor(), im_sharpen()
- as classes
- - im_gradcor() deprecated
- - vips_init() now does some ABI compat checking, though this change requires
- an ABI break
- - add "interlace" option to vips_jpegsave()
- - remove vips_image_copy_fields() and vips_demand_hint() and add
- vips_image_pipeline() to do both jobs
- - vipsthumbnail allows non-square bounding boxes, thanks seth
- - add vips_matrixprint()
- - add @point subsample mode to vips_subsample()
- - im_contrast_surface() deprecated: it was slower than calling conv a few
- times
- - radiance load supports sequential read
- - rewritten radiance decode is much faster
- - add vips_crop(), a synonym for vips_extract_area()
- - rename vips_gammacorrect() as vips_gamma(), now takes 1 / exp
- - vips_gamma() works for any format
- - add --linear mode to vipsthumbnail
- - support XYZ as a PCS for vips_icc_import() and vips_icc_export()
- - add --strip option to jpegsave
- - added vips_gaussblur() convenience function
- - added --vips-profile, records and dumps thread timing and memory use info
- - added vipsprofile, visualises --vips-profile output
- - auto-vectorization-friendly inner loops
- - added vips::init() and vips::shutdown() to C++ API
- - reuse pixel buffers on sharing to reduce mem cycling
- - conv is SMALLTILE, huge mem use saving on wide images
- - vipsthumbnail has a --crop option
- - remove video4linux1 code, it was useless on all modern linuxes
- - redone freq filter builders as classes
- - redone im_fwfft(), im_invfft(), im_freqflt(), im_disp_ps(), im_fractsurf(),
- im_phasecor() as classes
- - vips_colourspace() allows B_W, GREY16, RGB16 as source / target
- - added vips_thread_shutdown(), thanks Lovell
- - vips_linear() has a uchar output mode
- - redone im_cntlines(), im_rank() as classes
- - move im_zerox() to deprecated, it wasm't very useful
- 9/1/14 started 7.36.6
- - fix some clang compiler warnings
- 20/11/13 started 7.36.5
- - better cache sizing in unbuffered sequential mode
- - allow larger tile_size in dzsave
- - remove use of PATH_MAX to help gnu hurd
- - fix vips_hist_match()
- 15/11/13 started 7.36.4
- - improve compat with im_init_world()
- 18/10/13 started 7.36.3
- - fix compiler warnings in ubuntu 13.10
- - reverse similarity rotation direction to match the convention used
- elsewhere in vips
- - fix blocked caching of sequential load operations
- - fix cache flags
- - fix --delete option to vipsthumbnail
- 10/10/13 started 7.36.2
- - better jpeg startup
- - rename jpeg bool type to reduce confusion between libraries
- 3/10/13 started 7.36.1
- - fix to help OS X build
- 3/10/13 started 7.36.0
- - version bump
- 1/7/13 started 7.35.0
- - added vips_matrixload() and vips_matrixsave(), load and save vips mat format
- - rename image arrays as image matrices ... INTERPRETATION_ARRAY ->
- INTERPRETATION_MATRIX etc.
- - rewrite im_buildlut(), im_identity*(), im_maplut(), im_falsecolour(),
- im_gammacorrect(), im_histgr(), im_histcum(), im_histnorm(), im_heq(),
- im_histnD(), im_histindexed(), im_histspec(), im_invertlut(), im_lhisteq(),
- im_stdif(), im_project(), im_profile(), im_tone_build*(), im_mpercent*(),
- im_ismonotonic() as classes
- - vips_hist_local(), vips_stdif() do any number of bands
- - thin vips8 wrapper for im_histplot()
- - added vips_error_freeze() / vips_error_thaw()
- - used freeze() / thaw() to stop file format sniffers logging spurious errors
- - vipsthumbnail uses embedded jpg thumbnails if it can
- - rename vips_diag() as vips_info(), add --vips-info flag
- - deprecate im_hsp()
- - added vips_webpload(), vips_webpload_buffer(), vips_webpsave(),
- vips_webpsave_buffer(), vips_webpsave_mime()
- - tiff reader allows separate planes for strip read
- - tiff reader and writer allow many more formats, eg. 32-bit int, complex, etc.
- - tiff reader and writer allow any number of bands
- - added vips_image_new_matrixv()
- - dzsave basename param now called filename, so you can use .dz as a
- destination (basename is still there but deprecated)
- - new _UNBUFFERED sequential mode saves memory in some important cases
- - vips_conv() is a simple wrapper over the old convolution functions
- - new optimize_coding param for jpeg write produces optimal Huffman tables,
- thanks Lovell
- - im_tone_map() and im_tone_analyse() deprecated
- - new --band arg to vips_maplut() replaces im_tone_map() functionality
- - added vips_similarity(), simple wrapper for vips_affine() that lets you
- give a scale and rotate
- 3/7/13 started 7.34.2
- - lower priority for Matlab load to reduce segvs from Mat_Open(), thanks
- Michael
- - null-terminate libexif strings, thanks Mike
- - openslide always outputs solid pixels
- 28/6/13 started 7.34.1
- - fix morphological operators on non-uchar images
- - remove any ICC profile when we use vips to go to srgb
- 7/6/13 started 7.34.0
- - version bump
- - oops, VImage.PIL_mode_from_vips() failed for CMYK, thanks Alessandro
- - fix no-pango build
- - add im_vips2dz(): run the deepzoom writer from vips7
- - vips_magickload() has an option to read all images in a sequence
- - redo im_make_xy(), im_*eye(), im_zone*(), im_sines() as classes
- - added vips_pngload_buffer()
- - faster --centre option to dzsave, thanks Kacey
- 12/3/13 started 7.33.0
- - vipsthumbnail lets you specify the sharpening mask
- - turn off caching for im_copy()/vips_copy(), we use copy to stop sharing, and
- it's cheap so caching doesn't help anyway
- - auto rshift down to 8 bits on save, if necessary
- - im_gaussnoise(), im_copy_file(), im_grid(), im_scale(), im_scaleps(),
- im_wrap(), im_rotquad(), im_zoom(), im_subsample(), im_msb(), im_text(),
- im_system(), im_system_image()
- redone as classes
- - add --angle option to dzsave
- - another vips_shrink() fix argh
- 14/5/13 started 7.32.4
- - icc import and export could segv on very wide images
- - fix centos 5 build, thanks re-boot
- 16/4/13 started 7.32.3
- - rename GETTEXT_PACKAGE as vips7.32 to help Debian (thanks Jay)
- - added "persistent" option to tilecache
- 12/3/13 started 7.32.2
- - removed some left-over debugging code from configure.ac
- - better handling of args without values, thanks Ruven
- - better error messages from vips.c
- - fix demand hints so "vips shrink" works again, thanks Jan
- - im_jpeg2vips.c builds without jpeglib.h, thanks Alessandro
- 6/2/13 started 7.32.1
- - fix --without-lcms, thanks speckins
- - updates to licence, thanks Benjamin
- - remove "fred" from dist
- - better bootstrap on OS X
- 22/1/13 started 7.32.0
- - tilecache in threaded mode could deadlock if the downstream pixel source
- raised an error (thanks Todd)
- - fix another dzsave corner-case (thanks Martin)
- - neater output for "header"
- - added VIPS_META_LOADER: record the loader name
- = header displays this loader hint
- - vipsthumbnail is better at cache sizing
- 31/8/12 started 7.31.0
- - redone im_Lab2XYZ(), im_XYZ2Lab(), im_Lab2LCh(), im_LCh2Lab(), im_UCS2LCh,
- im_LCh2UCS(), im_XYZ2Yxy(), im_Yxy2XYZ(), im_float2rad(), im_rad2float(),
- im_Lab2LabQ(), im_LabQ2Lab(), im_Lab2LabS(), im_LabS2Lab(), im_LabQ2LabS(),
- im_LabS2LabQ(), im_LabQ2disp(), im_XYZ2disp(), im_disp2XYZ(),
- im_icc_import*(), im_icc_export*(), im_icc_transform*(), im_dE_fromLab(),
- im_dECMC_fromLab(), im_dE00_from_Lab(), im_icc_ac2rc() as classes
- - added vips_colourspace(), vips_colourspace_issupported(), replaces all
- derived conversions
- - faster and more accurate sRGB <-> XYZ conversion
- - support 16-bit sRGB import and export
- - rename UCS colourspace as CMC
- - dzsave can write zoomify and google maps layout as well
- - tilecache supports threaded access, so openslide read now threads
- - openslide2vips gets underlying tile size from openslide
- - embed has 'background' option
- - dzsave --layout google has a @background option
- - dzsave has a --depth option
- - update for new glib threading API
- - remove no threads option, glib no longer support it
- - better --help output for vips driver prog
- - vipsthumbnail -o allows absolute file names
- - much better exif handling for jpg images (thanks Gary)
- - preserve jpeg app13 (photoshop ipct)
- - vips_max() / _min() track the top n maxima / minima
- - deprecate im_maxpos_avg(): too specialised to be worth maintaining
- - deprecate im_linreg(): easily done by combining other operators
- - deprecate im_point(): easily done by combining other operators
- - add binary complex operations, with cross_phase as the only one so far
- - added vips_bandbool(), with vips_bandand(), _bandor(), _bandeor() as
- convenience functions
- - added scRGB colourspace, linear light float space with sRGB primaries
- - all interpolators use corner convention ... we had round-to-nearest in
- several of them before, causing a range of annoying problems
- - redone im_affine*() as a class
- - added input space displacement to affine
- - VipsArea is threadsafe
- - dzsave has a --centre option
- 31/12/12 started 7.30.8
- - png icc profile write was broken
- 31/12/12 started 7.30.7
- - better option parsing for "vips", thanks Haida
- - small fixes to help OS X
- - backported threaded tile cache from next version, im_tile_cache() now
- uses it to prevent a deadlock, see comment there
- 14/11/12 started 7.30.6
- - capture tiff warnings earlier
- 14/11/12 started 7.30.5
- - fix libtool version mess up (thanks Benjamin)
- 2/10/12 started 7.30.4
- - remove options from format string in .dzi (thanks Martin)
- - vipsCC.pc required the wrong version of vips (thanks Alessandro)
- - larger max tile size for dzsave
- - linecache is 50% larger to leave some slop room
- 13/9/12 started 7.30.3
- - linecache sized itself too large
- - fix a compile failure if libtiff was not found (thanks Martin)
- - dzsave did not work for images with an odd number of scanlines
- (thanks Martin)
- 4/9/12 started 7.30.2
- - sequential stops all threads on error
- - sequential delays ahead threads rather than blocking them completely
- 6/8/12 started 7.30.1
- - fixes to dzsave: shrink down to a 1x1 pixel tile, round image size up on
- shrink, write a .dzi file with the pyramid params, default tile size and
- overlap now matches the openslide writer
- - wrap VipsInterpolate for C++
- - so affinei and affinei_all appear in Python
- - be more cautious enabling YCbCr mode in tiff write
- - add "DEPRECATED" flag to arguments
- - jpeg load/save note and use the preferred resolution unit
- - better error msgs for enum args
- - fix compiler warnings in production build (thanks Dmitry)
- - fix spurious warnings about exif updates
- - VipsSequential has an integrated cache and stalls out of order threads
- - add a line cache ... sizes up dynamically with request size
- - tilecache / linecache use a hash table not a linear list
- 20/7/12 started 7.30.0
- - support "rs" mode in vips7
- - add --vips-version cmdline arg
- - fix --without-tiff / exr / jpeg / png / magick
- - add --vips-fatal flag
- 19/3/12 started 7.29.0
- - sanity-check PNG read geometry
- - nearest-neighbor interpolation rounds coordinates to nearest instead of
- rounding down (thanks Nicolas)
- - add dzsave, save in deep zoom format
- - rework im_shrink() as a class
- - remove im_rightshift_size(), just a convenience function now
- - vipsthumbnail no longer removes profiles by default
- - much more gentle sharpening in thumbnails
- - added "minimise" signal, used by tilecache to drop
- - add :seq support to im_tiff2vips(), im_jpeg2vips() ... helps ruby-vips
- - better thread safety for vips8 operation dispatch
- - better thread safety for upstream / downstream image linking
- - added "rs" open mode, removed "rd"
- - added vips_operation_get_flags() ... system for attaching sets of flags to
- operations
- - added VIPS_OPERATION_SEQUENTIAL flag
- - vips8 command-line interface uses this to turn sequential mode on
- automatically when possible
- - better handling of input files in vips7 command-line interface
- - sequential can skip ahead, so extract / insert are now seq
- 16/7/12 started 7.28.10
- - wopconst was broken
- - vips_sign() was broken
- - png save compression range was wrong
- - more/moreeq was wrong
- - vips7 ppm save with options was broken
- - don't cache write operations
- 18/6/12 started 7.28.9
- - slightly more memory debugging output
- - remove references to the static bicubic interpolator from the docs
- - fix temp file handling on Windows --- was breaking for non-vips files
- over 100mb
- - better support for using images from multiple threads
- 18/6/12 started 7.28.8
- - fixes for centos5 portability
- 18/6/12 started 7.28.7
- - add vips_flatten() -- flatten RGBA to RGB
- - better alpha handling in PNG load
- - don't save RGBA PNG as CMYK JPG (thanks Tobsn)
- - fix a crash with malformed jpg files (thanks Grigoriy)
- - vipsthumbnail enables sequential mode more and caches lines better
- 19/4/12 started 7.28.6
- - better resolution unit handling in deprecated im_vips2tiff()
- - use TIFF_CFLAGS output from pkg-config (thanks Jay)
- - much faster vips_argument_map()
- - make jpeg pyramids work with tiff4
- - tiff loader always offers THINSTRIP (thanks Diuming)
- - add "nocache" operation flag, set for sequential load (thanks Diuming)
- - fix a crash in the tiff reader for huge values of RowsPerStrip (thanks
- Nicolas)
- - remove use of G_DEFINE_BOXED_TYPE() to help compat (thanks Jake)
- 19/4/12 started 7.28.5
- - ifthenelse blend mode was broken
- - small blend speedup
- - default to libtiff-4
- 17/4/12 started 7.28.4
- - up max buffer size for vipsbuf
- 6/4/12 started 7.28.3
- - vips_divide() failed for int arguments
- - fix warning for unused vips7 gvalue argument
- - fix openslide read: always return png-style rgba, im_argb2rgba() becomes a
- NOP
- - cast to unsigned int now removes <0 values
- - vips7 interface to openslide now supports :,level,associated options (thanks
- Benjamin)
- - make vips8 cache smaller
- - more accurate progress reporting
- 13/3/12 started 7.28.2
- - xres/yres tiffsave args were broken
- 13/3/12 started 7.28.1
- - add ICC profile read/write for png files
- 30/1/12 started 7.28.0
- - version bump
- - added vips_foreign_find_save_options()/vips_foreign_find_load_options()
- - delayed write to foreign via a "w" image was not working
- - support operations with many returns in Python
- - sequential read mode
- - better im_shrink()
- - added vips_sequential()
- - new vips_sink_memory() keeps read ordering
- - tiff, jpeg, png readers support sequential read
- - max/min avoid NaN
- - oop, histnorm was broken by the new vipsstats
- - never use IM ping to get a header, fixes BMP load
- - set @filename for non-vips formats in vips7 compat layer
- - make Xres/Yres double
- - completely disable debug by default in production builds
- 20/8/11 started 7.27.0
- - version bump for new dev cycle
- - im_subtract(), im_avg(), im_min(), im_minpos(), im_copy(), im_embed(),
- im_flophor(), im_flipver(), im_insert(), im_insert_noexpand(), im_lrjoin(),
- im_tbjoin(), im_extract_area(), im_extract_bands(), im_extract_areabands(),
- im_replicate(), im_clip2fmt(), im_gbandjoin(), im_bandjoin(), im_invert(),
- im_lintra(), im_lintra_vec(), im_black(), im_rot90, im_rot180(), im_rot270()
- im_sintra(), im_costra(), im_tantra(), im_asintra(), im_acostra(),
- im_atantra(), im_exptra(), im_exp10tra(), im_logtra(), im_log10tra(),
- im_abs(), im_sign(), im_max(), im_maxpos(), im_deviate(), im_divide(),
- im_multiply(), im_stats(), im_measure(), im_recomb(), im_floor(), im_ceil(),
- im_rint(), im_equal*(), im_notequal*(), im_less*(), im_lesseq*(), im_more*(),
- im_moreeq*(), im_remainder*(), im_and*(), im_or*(), im_eor*(), im_shift*(),
- im_pow*(), im_exp*(), im_ifthenelse(), im_blend(), im_c2amph(), im_c2rect(),
- im_bandmean(), im_c2real(), im_c2imag(), im_ri2c(), im_jpeg*2vips(),
- im_vips2jpeg*(), im_tiff2vips(), im_vips2tiff(), im_exr2vips(),
- im_fits2vips(), im_vips2fits(), im_analyze2vips(), im_raw2vips(),
- im_vips2raw(), im_magick2vips(), im_png2vips(), im_png2*(), im_ppm2vips(),
- im_vips2ppm(), im_mat2vips(), im_rad2vips(), im_vips2rad()
- redone as classes
- - added argument priorities to help control arg ordering
- - generate has a 'stop' param to signal successful early termination
- - added optional output args, eg. x/y for min
- - CLI supports optional output args
- - in im_vips2tiff, enable YCbCr compression for jpeg write
- - VipsMin stops search early if it can
- - C API supports optional output args
- - switch back to int-valued operations
- - add the operation cache, various --vips-cache-* flags
- - fallback vips_init()
- - vips_tracked_malloc() tracks allocation size and can report total mem usage
- - cache limits, drop, init, flush plus command-line controls
- - remove dmalloc support, was never used and valgrind is better
- - im_csv2vips() allows quoted strings, including escaped quotes
- - added vips_shutdown()
- - added --vips-leak flag
- - more VipsImage props
- - added vips_image_write(), old one becomes vips_image_write_to_file()
- - added vips_region_paint_pel()
- - added VipsArea as a public struct
- - added array members and arguments
- - added nary
- - remove VipsPool, vips_object_local_array() is much better
- - cache.c now drops if you have too many open files
- - CLI args to change max files
- - new format for handling exif tags
- - switch SMALLTILE to 128, 512 was just too big
- - oop mode "rd" was not always being used for images
- - added ARRAY interpretation for images
- - VipsStats tracks minpos/maxpos as well
- - moved mask/ to deprecated
- - use atexit() to call vips_shutdown()
- - set _O_TEMPORARY on delete-on-close temp images if possible
- - unlink temps on rewind on *nix, less likely to leave temps on a crash
- - added complex conj as a basic operation
- - rect/polar/conj work on any format, not just complex
- - new VipsFile system for load/save in image formats
- - options now introspectable, try "vips jpegsave"
- - copy swap uses glib byteswap macros, about 2x faster
- - edvips can change vips header byte ordering
- - "header" is terse by default
- - "header" outputs filenames if working on many files
- - added openslide support (Benjamin Gilbert)
- - allow new-style load/save options in filenames to
- vips_image_new_from_file() etc.
- - VipsFormat is deprecated
- - remove outchecks from documented API
- - support gobject-introspection
- - new Python binding based on gobject-introspection
- - only spot options at the end of arg strings
- - add vips_cache() as a vips8 operator
- - remove the old fft fallback
- - remove fftw2 support
- - much faster im_draw_smudge()
- 14/1/12 started 7.26.8
- - interpolate CLI args were broken (thanks speckins)
- 5/12/11 started 7.26.7
- - lazy read from tiled tiff from layers other than 0 was broken
- - optional args to vips_call*() do not work, disabled (fixed correctly in
- master)
- - address calculations in files over 4gb were broken on 32-bit platforms
- (broken since March 2011, oops)
- 12/10/11 started 7.26.6
- - NOCACHE was not being set correctly on OS X causing performance
- problems with large files
- - update Orientation exif tag on jpeg write
- 12/10/11 started 7.26.5
- - jpeg read/write copies over XMP data
- - handle offset correctly in separable convolutions (thanks Nicolas)
- - macros for class arg boilerplate
- - class arg order set by new 'priority' param
- - VipsExtend, VipsDirection enums added
- 12/9/11 started 7.26.4
- - fallback vips_init()
- - im_openout() compat stub was wrong, breaking ruby-vips
- - vips_class_map_concrete_all() needed a compat macro too
- - vips_class_map_all() was broken
- 10/8/11 started 7.26.3
- - don't use G_VALUE_COLLECT_INIT(), many platforms do not have a glib this
- recent
- - don't leave image->kill set when we detect termination
- - test for a working C++ compiler, disable C++ parts of none found
- 10/8/11 started 7.26.2
- - oops, im_benchmark.c had some stuff turned off
- - configure option --without-cfitsio was broken (thanks Mike)
- 26/7/11 started 7.26.1
- - doc fixups
- - oops, ==0 missing from a strcmp() in vips7compat
- - fixed a race in im_XYZ2Lab() table build
- - added im_concurrency_get() to operation db
- - better benchmarkn.sh runs for the correct number of CPUs automatically, runs
- three times for each one, and just reports the fastest
- 26/7/11 started 7.26.0
- - version bunp for 7.26
- - various fixes to get win32 and OS X building
- 6/12/10 started 7.25.0
- - attach the jpeg thumbnail and multiscan fields (thanks Mike)
- - faster tiff read for some common cases
- - faster im_tile_cache()
- - if we use C++ in libvips, add -lstdc++ to vips-7.xx.pc
- - im_vips2png() / im_png2vips() set / get png resolution (thanks Zhiyu Wu)
- - updated README
- - don't use tables for bilinear on float data for a small speedup (thanks
- Nicolas Robidoux)
- - no tables for uchar either, about a 15% speedup (thanks Nicolas)
- - dmask write was broken
- - lr/tbmerge() cast images to match, like im_insert()
- - lr/tbmosaic() work for any mix of image formats / bands
- - removed ancient balance stuff from im_lr/tbmosaic()
- - gtk-doc for mosaicing
- - add im_fits2vips() to the operation database
- - im_fits2vips() is lazy and much faster
- - im__file_open_write() / _read() has a flag for text_mode, get rid of all the
- remaining fopen()s
- - move cooc_* and glds_* to deprecated
- - move im_dif_std() to almostdeprecated
- - move im_simcontr() to almostdeprecated
- - add im_sines() to operation db
- - move im_spatres() to almostdeprecated
- - done gtk-doc for other
- - --vips-progress tells you about nthreads, tile size, nlines
- - gtk-doc for interpolate
- - move im_stretch3() to deprecated
- - move im_clamp() to deprecated
- - gtk-doc for video ... all operators done! amazing argh
- - set MAP_NOCACHE on OS X, otherwise performance dives off a cliff with
- files larger than memory
- - removed man pages, we are all gtk-doc now
- - im_jpeg2vips() ignores weird APP1 chunks
- - im_add() for int/uint was broken
- - im_ri2c() was broken
- - added VIPS_FORMAT_BIGENDIAN format flag
- - moved IMAGE and REGION to VipsImage and VipsRegion, classes over VipsObject
- - Rect -> VipsRect
- - libpng-1.5 supported
- - better png read for 1-bit and palette images
- - fits write
- - better fits metadata support
- - renamed all header fields, old names still supported, hopefully
- - all of iofuncs moved to vips_ namespace
- - lots of old iofuncs API moved to deprecated
- - added VipsOperation, an abstract base class for all vips operations
- - added VipsAdd, the first operation object
- - im_tiff2vips() int/uint mixup for rows_per_strip, thanks Bubba
- - removed the links feature, won't work with vips8
- - got rid of the tools/ subdirs
- - added im_bufjpeg2vips()
- - tiff reader can do 1, 2, 4, 8 bit palette images
- - tiff palette read can do mono images
- - im_bufjpeg2vips() has a "header_only" parameter
- - added vips_image_get_data()
- - updated German translation (thanks Chris)
- - fixed typo in im_conv() overflow estimation which could cause errors
- - vips.c has new action syntax, knows about vips8 operations
- - add now has sizealike
- - vips7 binops all do sizealike too, also gbandjoin and ifthenelse
- - new API is now functional
- - vips.c generates GOption flags for vips8 operations
- - added im_gauss_dmask_sep()
- - laplacian generator lost -ve lobes for large sigma
- - added im_aconv(), approximate convolution
- - bumped smalltile to 512x512 for testing
- - added VipsPool, got rid of floating refs again, argh
- - VIPS_EXEEXT is now part of the exported API
- - im_blend() also does sizealike, oops
- - jpeg write was not inverting CMYK, thanks Ole
- - im_falsecolour() converts to mono 8-bit for you
- - im_icc_import*/export*() cast inputs for you
- - im_vips2tiff() uses im__temp_name() for intermediates
- - added vips_wrap7 ... wrap up vips7 operations as vips8 classes
- - man pages are back for commands
- 30/11/10 started 7.24.0
- - bump for new stable
- - added im_dmask2imask(), im_imask2dmask()
- - im_rotate_*mask90() can do masks of any size (thanks Adam Turcotte)
- 18/7/10 started 7.23.0
- - im_vips2bufjpeg() writes to a linked list, so it will work for any size
- image and header
- - added im_vips2bufpng()
- - use GetTempPath() to pick a temp dir on Windows
- - added "rd" mode to im_open()
- - vipsthumbnail and vips use "rd"
- - im_divide spots /0
- - remove liboil dependency, we will use Orc instead
- - various small cleanups (thanks Tim)
- - add lcms2 support
- - VImage(filename) defaults to "rd" mode
- - revise window_offset / window_size, again
- - fix a mixup with ANY hints that caused performance problems on the main
- benchmark
- - rewritten im_circle as im_draw_circle, im_circle moved to almostdeprecated
- - added IM_TYPE_RW args for inplace ops --- nip2 uses this to wrap inplace ops
- automatically
- - special-case 3x3 masks in im_conv() for a 20% speedup
- - add IM_TYPE_RW flag for im__rw_image, helps nip2 auto-wrap inplace ops
- - im_insertplace() casts and bandalikes
- - copy iconv.m4 and friends in bootstrap, thanks Mike
- - moved the stupid _copy() versions of the inplace ops to deprecated, since
- nip2 can call inplace ops directly now
- - added im_draw_rect(), moved im_paintrect() to deprecated
- - added im_draw_image(), moved im_insertplace() to deprecated
- - added im_draw_line(), now clips, moved im_fastline() to deprecated
- - added im_draw_line_user(), now clips, moved im_fastlineuser() to deprecated
- - added im_draw_mask(), now wrappable, moved im_plotmask() to deprecated
- - added im_draw_point(), moved im_plotpoint() to deprecated
- - added im_read_point(), now partial, moved im_readpoint() to deprecated
- - added im_draw_smudge(), moved im_smudge() / im_smear() to deprecated
- - convolution functions support complex images
- - im_blend() can have any format condition image and it's converted to uchar
- - security fix for vips-7.23 wrapper script (thanks Jay)
- - im_affine() has a larger safety margin
- - fix gtk-doc warnings
- - small mask load/save improvements
- - mask gtk-doc done
- - add cfitsio dependency
- - add FITS reader
- - land the vector branch and the orc dependency ... we have SSE
- erode/dilate/add/conv
- - add IM_SWAP
- - dilate/erode do (!=0) on non-uchar images
- - add multipass Orc to im_conv(), 3.5x faster for 5x5 mask
- - im_profile() works for any image format, any number of bands
- - im_rank_image() works for mix of formats, bands
- - morph gtk-doc done
- - oops, missing braces in debug.h and util.h, thanks Laurence
- - update C++/Python binding
- - oop, bool constants are always (int) now, so (^-1) works for unsigned types,
- thanks Nicolas Robidoux
- - much lower memuse for im_cache() in complex pipelines
- - im_scale_dmask() normalises to 20, not 100 ... we hit the fast
- conv path more often
- 12/5/10 started 7.22.2
- - the conditional image of ifthenelse can be any format, a (!=0) is added if
- necessary
- - oops vipsthumbnail sharpening was turning off for integer shrinks,
- thanks Nicolas Robidoux
- - im_vips2jpeg() could fail for very small images (thanks Tim)
- - threadpool wasn't stopping on allocate errors (thanks Tim)
- - vips_sink_disc() could block if allocate failed (thanks Tim)
- 12/5/10 started 7.22.1
- - fix a problem with tiff pyramid write and >1cpu, thanks Ruven
- - constant ops clip to target range
- - oops, moreconst and moreeqconst were the same
- - better buffer handling in sinkdisc for single-line images
- - less chatty errors from "vips"
- - oops, don't rename "copy_set" as "copy_", thanks Ole
- 12/5/10 started 7.22.0
- - bump and rename
- - vipsthumbnail has a manualpage and sharpens correctly
- - more interpolator work
- - fixes to --disable-cxx mode (thanks Mike)
- - added German translation, thanks Chris Leick
- - fixed typos in some messages, thanks Chris Leick
- - fix gettext startup
- - all "colour" in messages changed to "color", have a proper en_GB
- translation file
- - vipsthumbnail delete profile failed if there was a profile
- - interpolate cli unref was broken
- - more accurate, slightly faster bilinear and bicubic (thanks Nicolas Robidoux)
- 21/3/10 started 7.21.3
- - added progress feedback to threadpool
- - --vips-wbuffer2 switch does all wbuffer use now
- - im_wbuffer2() renamed as vips_discsink(), some cleanups
- - im_gammacorrect() can do 16-bit images too
- - im_histplot() could fail for signed int histograms
- - im_fwfft() and im_invfft() could free their output image too early
- - added im_local_imask(), im_local_dmask()
- - added im_mpercent_hist()
- - im_maplut() casts the index image to one of the uint types
- - fixed a couple of /0 problems with scale == 0 masks
- - set G_LOG_DOMAIN to VIPS so we can use g_warning etc.
- - added VIPS_DEBUG_MSG() macro
- - --vips-wbuffer2 turns on threadpool for im_iterate as well
- - im_vips2tiff() uses vips_sink() instead of threadgroup
- - strip out threadgroup
- - add --enable-debug=xxx flag
- - im_iterate() -> vips_sink()
- - better number-of-bands detection for im_magick2vips()
- - added im_get_argv0()
- - added PFM read / write
- 16/1/10 started 7.21.2
- - "invalidate" is careful to keep images alive, so invalidate callbacks can do
- im_close()
- - flood_blob could loop if start point == ink
- - added im_meta_remove()
- - added remove profile option to vipsthumbnail
- - added vips_bandfmt_iscomplex() and friends, im_iscomplex() and friends
- deprecated
- - im_bandjoin()/im_gbandjoin() work with images of varying formats
- - added im_copy_native(), deprecated im_copy_from() and friends
- - im_check*() name rationalisation
- - finally removed old flood stuff
- - im_insert*() bandalike and formatalike
- - im_*join() bandalike and formatalike
- - im_ri2c() bandalike
- - im_vips2png() saves 16-bit PNGs, if necessary
- - vipsthumbnail has selectable interpolators, optional sharpen
- - moved a lot of stuff (eg. im_iscomplex()) from deprecated to
- almostdeprecated to avoid breakage
- - im_csv2vips(): allow lines that end with EOF rather than \n
- - im_vips2tiff has a bigtiff option
- - oops, im_lineset() needs to ask for WIO of mask and ink
- - move cache invalidation to REGION, fixes a race
- - don't im_invalidate() after paint, it can cause horrible performance
- problems ... for example, im_plotmask() used as the action operator for
- im_fastlineuser() is terrible
- - instead, users of the inplace operations need to call im_invalidate() at the
- end of a set of paint actions to trigger an update
- - parent/child renamed as upstream/downstream in DAG
- - set VIPS_ICC_DIR in configure
- - ICC profiles are looked for in VIPS_ICC_DIR as a fallback
- - im_render() mask image generation no longer triggers image calc
- - threadgroups scale output buffers with number of threads for smalltile ...
- improves SMP scaling for narrow images on many-way machines
- - default to max number of processors (--vips-concurrency and IM_CONCURRENCY
- set >0 can override) on linux and win32
- - better nprocs guesser
- - im_render() fixes to help the paintbox, some speedups too
- - added im_wbuffer2(), a new distributed threading system, and --vips-wbuffer2
- to enable it, thank you Christian
- 15/1/10 started 7.21.1
- - added "written" callbacks, used to implement write to non-vips formats
- 26/11/09 started 7.21.0
- - branch for new dev cycle
- - argh, missing init from colour.c (thanks Peter)
- - argh, im_measure() was not looping over bands correctly (thanks Peter)
- - removed mmap_limit, we now always use windows ... reduces VM use hugely,
- because mmap windows are freed when their regions are freed, while images
- are only unmapped when they are closed
- - have a min bytes for mmap windows as well, so we don't make too many tiny
- windows
- - im_disp2Lab() was broken
- - deprecated.h is now defined in terms of current functionality, rather than
- repeating stuff
- - im_flood() and friends rewritten, typically 4x faster
- - removed --with-cimg option, added --disable-cxx
- - added im_system_image() (thanks Roland)
- - added postclose callbacks
- - added vipsthumbnail
- - oops, generate C++/Python wrappers for deprecated operations by default
- - read TIFF images strip-wise, not scanline-wise
- - better TIFF YCbCr reading (thanks Ole)
- - isanalyze generates fewer silly error messages
- 26/11/09 started 7.20.3
- - updated en_GB.po translation
- - file_length is gint64 to avoid win32 breakage
- 23/11/09 started 7.20.2
- - GETTEXT_PACKAGE now includes lib version number (thanks Jay)
- 11/11/09 started 7.20.1
- - oop, im_clip2fmt() was missing PTOP flag, should get a small speedup
- - im_conv() / im_convf() didn't like all-zero masks
- - small updates to im_convf() from im_conv()
- - im_read_imask() produced an incorrect error message if passed a doublemask
- - rename im_convf(), im_convsepf() as _f()
- - vips.c drops _f suffix when overloading
- - regenerate C++ binding, don't make deprecated package
- 9/11/09 started 7.20.0
- - removed vips-7.x.spec.in, shouldn't really have this in SVN
- - bumped version to 7.20
- - fixes to get "make dist" working again
- 3/4/09 started 7.19.0
- - version bump
- - tiny conv speedup
- - catch lcms error messages
- - fix includes for gtk+-3.0
- - report virtual memory too in im__print_all()
- - cosmetic changes to nohalo
- - im_magick2vips() needs to invert alpha
- - now (more or less) passes -Wextra
- - added "fail" option to im_jpeg2vips: fail with an error on any warning
- (thank you Ole)
- - started gtk-doc changes
- - renamed im_meta_get_type() and im_header_get_type() as
- im_meta_get_typeof() and im_header_get_typeof() to prevent confusion with
- GObject type definers (was breaking gtkdoc object scan)
- - revised more names, limited documented API
- - im_buildlut() could segv for non-zero based tables (thanks Jack)
- - VIPS_BUF_STATIC() does not take length arg
- - check for SetImageOption() so we work with GraphicsMagick too
- - "header" sets a non-zero exit code if anything failed
- - add and use im_check_uncoded() and friends
- - matlab load handles column-major and plane-separated images (thanks Mikhail)
- - JPEG save allows "none" for profile, meaning don't attach a profile
- - saner, simpler, faster typecasting for im_add(), im_subtract(),
- im_multiply(), im_divide(), im_remainder()
- - im_remainder() has a float result for float types
- - im_measure() allows sel == NULL, meaning all patches
- - added "deprecated" package
- - faster, simpler, better im_max(), im_min, im_avg(), im_deviate()
- - im_max() returns true modulus, not square of modulus, for complex images
- - im_avg() works for complex, returning average modulus
- - im_system() fix (thanks Roland)
- - im_system() rewrite
- - im_maxpos()/im_minpos() are partial and work for complex
- - im_max()/im_min() are now convenience functions
- - im_maxpos_avg() handles complex and multi-band images
- - added im_point(), rewrite im_point_bilinear() in terms of this
- - close callbacks now happen *after* images have closed resources (such as
- open files) ... this lets them delete temps and stuff. Expect breakage :(
- - added vips_interpolate_get_window_offset()
- - boolean revised: smaller, more general, faster
- - im_remainderconst_vec() renamed to im_remainder_vec() for consistency
- - added im_shift*_vec()
- - renamed im_eor_vec() as im_eorimage_vec() for consistency, also and, or
- - renamed im_eorconst() as im_eorimage_const() for consistency, also and, or
- - relational revised: smaller, more general, faster
- - im_blend()/im_ifthenelse() allows many-band conditional, 1-band then/else
- - im_blend()/im_ifthenelse() allows band and format to differ between then
- and else parts
- - better im_check() functions
- - added im_flood_other() as start of simple segmentation operator
- - added im_label_regions()
- - im_printlines(), im_debugim() deprecated (use im_vips2csv() instead)
- - meta, header, callback, error, region, check, generate, memory gtkdocs
- - removed printlines tool, vips2csv is much better
- - removed other useless tools as well: debugim, binfile
- - fix up addr calcs on 64-bit machines with >2gb images and inplace ops
- (thanks Christoph)
- - im_generate() checks that im_demand_hint() has been called for this image
- - im_jpeg2vips.c, set scale_num on shrink (thanks Guido)
- - heh argh reading history always stopped after the first line (thanks Haida)
- - added im_histindexed
- - new im_iterate() calls start and stop functions from workers so resources
- they make are owned by the worker thread ... this makes it possible to have
- start functions which create multiple regions and therefore allows
- im_iterate() to scan more than one image at once
- - threadgroup no longer has any default action, you must attach a work
- function
- - added im_copy_file()
- - added im_insertset()
- - im_insertplace() allows small to be outside big
- - added im__colour_difference(), colour ops now work on any image format
- - added im_col_display_get_table(), so display tables are now shared by name
- - added im__colour_unary()
- - drop "set" postfix from names, so "insert" can now take a vector of positions
- - deprecate all the "_raw" variants, not really necessary now
- - removed "contrib", not very useful anymore
- - added im_header_as_string()
- - im_malloc()/im_free() now call g_try_malloc()/g_free() ... removes confusion
- over whether to use im_free() or g_free() for things like im_header_string()
- - added im_history_get(), im_getexp(), im_printdesc() as wrapped functions ...
- so you no longer need the "header" program
- - image vectors from Python work, woo
- 25/3/09 started 7.18.0
- - revised version numbers
- - updated vipsmanual
- - revised manpages
- - removed name and "changed" from vipsobject since we don't use them yet
- - explicitly link with stdc++ for nohalo etc. stuff
- - wrap im_gauss_imask_sep in C++/Python
- 6/3/09 started 7.17.3
- - revised nohalo
- - remove fading stuff from im_render() -- cleaner and simpler
- - configure spots support for "restrict"
- - reset dcm:display-range on magick read to help DICOM
- - saner im_buildlut() behaviour
- - added im_gauss_imask_sep()
- - allow open and view of truncated images (thanks Joe & Rachel)
- - revising rounding on im_affine*() coordinate transforms to make them more
- stable
- - added Radiance write
- - added im_float2rad()
- - added IM_CODING_RAD, support where it makes sense (extract, flip, rotate,
- etc.)
- - IM_PROGRESS env var
- - docs for rad2float and IM_CODING_RAD
- 3/3/09 started 7.17.2
- - im_magick2vips.c: allow funky bit depths, like 14 (thanks Mikkel)
- - isradiance was returning TRUE too often
- - radiance loader now loads packed RGBE/XYZE instead of unpacking to float
- - added im_rad2float()
- 11/10/08 started 7.17.0
- - merge vips-7.16 branch back into trunk
- - bumped version number to 7.17.0
- - re-added type.[hc]
- - added vipsinterpolate and im_affinei
- - added yafrsmooth interpolation
- - added yafrtest
- - added yafrnohalo
- - ubuntu 8.10 changes
- - interpolators get an output pointer, not region
- - tuning for bicubic
- - revised transform / clip code, we now do corner not centre
- - yafr-smooth reworked along the lines of bicubic
- - cleanups after yafr hacking
- - added affinei_all
- - don't set im_error() on failed callback
- - moved im_format_t to VipsFormat, now sits over VipsObject
- - IM_FORMAT_FLAG_PARTIAL -> VIPS_FORMAT_PARTIAL
- - updated docs
- - interpolators use type introspection
- - added vips --list classes, does formats too
- - include sys/param.h to get PATH_MAX in more places
- - added vips_format_get_flags()
- - oop, forgot to check for cancel during tiled tiff write
- - don't use mmap for tiff read: no performance advantage, chews up VM
- - VIPS_INTERPOLATE_SHIFT bumped to 12, we need the extra precision for u16 gel
- data
- - added string->double transform for cmdline args
- - merged class-params branch back into trunk
- - IM_FREE() can do "const char*" variables
- - im_buf_t renamed as VipsBuf
- - added vips_object_to_string()
- - added "nickname" and "description" properties to VipsObject
- - shift/and/or/eor ops were broken for non-int types
- - added nohalo interpolator
- - updated format docs
- - IM_INPUT_INTERPOLATE() now used by affinei and affinei_all
- - added vips_object_new
- - resamplers/interpolators now in a resample package
- - removed yafrnohalo.c
- - added matio as a dependency
- - added Matlab save file read
- - added Radiance file read
- - better file-not-found messages
- 11/9/08 started 7.16.3
- - oop typo in manpage for im_project()
- - doc fixes
- - returning non-zero from eval callbacks was not always stopping computation
- 11/9/08 started 7.16.2
- - added --without-v4l option
- - added -no-undefined to libsrcCC build, so we get a libvipsCC.dll
- - removed the swig dependency: we include the generated bindings in the
- distribution tarball
- 6/9/08 started 7.16.1
- - trigger eval callbacks on tiled tiff write
- - added vips as an im_format_t
- - added im_format_write()/_read() convenience functions
- - more cleanups for the format API, argh
- - removed win32/ directory now mingw finally makes DLLs correctly
- - removed the windowed spcor for now, it has some edge effects
- 24/8/08 branch for 7.16
- - renames and version numbers
- - load plgs from libdir as well as libdir/vips-x.x for compat
- - complex -> complex conversion was broken
- - refstring <-> gstring transforms
- - better behaviour with Magick non-presence
- - added --enable-links switch to configure ... we no longer make the bin/im_*
- links by default
- - started a 'format' section in the docs
- - configure fails if no gettext found
- - revised po/
- - released as 7.16.0!
- 25/5/08 fork for loadable image format branch
- - image load/save in non-vips format code moved to own dir
- - simple format searching added
- - some cleanups for vips load
- - im_open() simplified
- - add im_format_flags
- - only consider formats with a save method in im_format_for_name()
- - oops, format sort order was reversed
- - im_filename_suffix() includes "." in suffix
- - merge back into trunk for 7.15.1
- - remove im_ispng(), im_png2vips_header() etc. & friends
- - add "vips --list formats"
- - rename VBuf as im_buf_t for consistency
- - add type.[hc], start of new type system
- - removed man pages for IM_MIN, MAX and RINT to avoid case confusion on
- OS X / win
- 7/3/08 started 7.15.0
- - MAGIC constants should be tagged as unsigned
- - write MAGIC correctly on sparc/powerpc machines (thanks Joe)
- - oop, we were still making fade threads even when not fading
- - tiny cond jump fixes for valgrind in colour.c
- - remove -lstdc++ from libs, except on windows
- - push Magick cflags earlier in the include order to make it easier to pick
- GraphicsMagick over ImageMagick (thanks Mikhail)
- - fix the en_GB translation
- - use meta to preserve resunit between tiff load and save
- - small doc improvements
- - read and write CMYKA tiff (thanks Doron)
- - performance improvements for morphology ops, esp. when zooming out
- - oop, im_render() was broken for mask == NULL
- - better support for multiple Python installs (thanks Jay)
- - better IM_SETSTR() stops some warnings
- - im_histcum() works for signed histograms
- - better rounding for im_conv(), im_convsep()
- - tiny speedup for im_conv()
- - better /0 test for remainderconst
- - revise i18n configure, get rid of intltool
- - command-line IMAGVEC input could segv with non-vips image output
- - added .tobuffer()/.frombuffer(), .tostring()/.fromstring() to Python binding
- - add PIL_mode_from_vips () and vips_from_PIL_mode () utility functions
- - update docs for new Python stuff
- - FIND_ macros no longer search for stuff, you have to specify prefixes if the
- packages are not on the default path (or in $prefix). This avoids some
- accidents on some platforms
- - configure prints a summary of optional packages found at the end
- - im_lhisteq() checks for window too small
- - added invalidate callbacks
- - now tests for MagickWand before ImageMagick (thanks Adam Turcotte)
- - added "-rotate" option to vips2dj
- - added man page for im_resize_linear
- - better jpeg-in-tiff YCbCr read (thanks Ole)
- - oops, invalidatefns were not being freed on im__close()
- - VMask() can init from std::vector, so Python can init from []
- - added IM_LIBDIR, im_guess_libdir()
- - load plugins from libdir/vips-x.x on startup
- - added meta get/set int/double/string/area/blob/GValue to C++ API
- - include time_t in vips.h, thanks Nicolas Robidoux
- - lock global image list (thanks lee)
- 25/1/08 started 7.14.0
- - bump all version numbers for new stable
- - better CMYK JPEG read (thanks Ole)
- - add __str__ to VError in Python (thanks Ole)
- - revert the dynamic wrapping for Python :-( next version!
- - added VImage::convert2disc (thanks Ole)
- - you can now set the jpeg quality factor for tiff pyramids (thanks Joe)
- - you can now shrink jpegs during read, see "man im_jpeg2vips"
- - added CMYK JPEG write
- - optionally use GraphicsMagick (thanks Bob Friesenhahn)
- - look for MAGICKCORE_HDRI_SUPPORT (thanks Marcel)
- - set icc profiles in tiff pyramids explicitly (thanks Joe)
- - add --without-cimg configure option
- - add im_maxpos_subpel
- - make im_abs compile without liboil
- - add im_align_bands
- - fix type overflow in complex division
- - fix im_cross_phase and im_addgnoise (Tom)
- - updated docs, C++ and python
- - header no longer stops on error
- - C++ dummy2.cpp helps OS X linking
- 12/12/07 started 7.13.3
- - added "include <cstring>" to VImage.cc to help gcc 4.3
- - started moving the python binding to dynamic wrapping
- - added im_wrap(), im_wraptwo(), im_phasecor_fft(), im_cross_phase() (Tom)
- - memleak plugged in im_save_string_setf()
- - bugfix in and docs for im_gradcor() (Tom)
- - use Glib macros to make im_msb work on big-endian platforms (Tom)
- - use Glib macros to get rid of needless compile warnings (Tom)
- - fix type overflow in im_c2ps/im_abs (Tom)
- 31/10/07 started 7.13.2
- - build cimg on windows fixes
- - various include cleanups, updated man pages
- - break im_wbuffer() out to a separate API
- - use im_wbuffer() to make im_vips2jpeg() compress in the background
- - also im_vips2png(), im_vips2tiff(), im_vips2ppm()
- - revised evaluation progress system
- - new evalstart/evalend/preclose callbacks fix over/underflow reporting
- - but the meaning of evalend has changed in a non-backwards-compatible way :(
- use preclose instead ito get the old behaviour
- - added "--vips-progress" flag to turn on a simple eval progress tracker
- - make im_spcor[12] static, im_spcor is wrapper (Tom)
- 28/9/07 started 7.13.1
- - vips2dj can print RGB images
- - oop, include <stdexcept> missing
- - add protos for generate/iterate function args, fix warnings
- - add cimg package, we now have C++ source inside VIPS, sigh
- - added OUTPUT_DOUBLEVEC and OUTPUT_INTVEC, use for im_maxpos_vec() and friends
- 29/8/07 started 7.13.0
- - we now have a trunk and the version is 7.13.x, woo!
- - move manpages into a separate man/ dir ... speeds up builds a lot on windows
- - don't install malkovich
- - don't fail on unknown args for python (thanks Simon)
- 1/8/07 started 7.12.5
- - im_embed() is more general ... x and y can be negative
- - predicate.c is smaller and cleaner
- - libsrcCC link improvement from Pablo
- - support 32/64-bit ImageMagick as well (thanks Marcel)
- - better im_magick2vips() for Q8 ImageMagick
- - split repository to trunk/branches ready for a stable 7.12.x branch
- 27/7/07 started 7.12.4
- - proto.h had vars called small, breaking on win32
- - more python fixing, we now have working matrices too
- 17/7/07 started 7.12.3
- - fix to VImage.i for gcc 4.2 (thanks Damir)
- - eek, off by 1 for more than 1 band hists
- - needed a slightly larger worst-case buffer in im__b64_encode()
- - tiny cleanup for make_hI() prevents cond jump on ui in valgrind
- - --disable-threads was broken again
- - remove .svn dirs from dist
- - now passes distcheck again
- 17/7/07 started 7.12.2
- - added im_bandmean()
- - added support for TIFFTAG_PREDICTOR (Andrey Kiselev)
- - fix TIFFOpen() mode snafu (Andrey Kiselev)
- 11/5/07 started 7.12.1
- - memory.c abort()s with DEBUG
- - oops, im_bits_of_fmt() manpage was not being installed
- - im_histcum() can do all image types
- - updated NEWS
- - added im_csv2vips_header()
- - command-line csv read was broken (thanks Tom)
- - removed length limit on argument vectors (Tom)
- - added IM_PREFIX, configure-time install prefix
- - oop, turned off memory.c DEBUG
- - fix some bogus gcc 4.1 warnings with im_open_local_array()
- - better vips usage message
- - oops, IM_ANY missing from im_demand_hint() manpage (thanks Shahid)
- - just warn if plugins fail to load in im_init_world()
- - expose Vargv and make refblock public rather than private so that
- subclasses of VImage can add vips-style member operations (thanks Pablo)
- - oops, im_initdesc() needed to have bbits set correctly (thanks Shahid)
- - make VError derive from std::exception more officially
- - woo, got exceptions working in SWIG
- - soname version bumped to 12.x.x
- - oops, added vector ops to Python
- - check for overflow of int in return of strtol in dispatch system (Tom)
- - add im_[di]mask_[xy]size to dispatch system (Tom)
- - add im_gradcor(), im_grad_[xy] (Tom)
- 26/3/07 started 7.11.21
- - ooo, added %include "std_except.i" & friends to VError.i, VImage.i
- - im_init_world() is more lenient about recursive invocation
- - im_gbandjoin() falls back to im_copy() for 1 input image
- - race condition fixed in im_render.c (thanks Simon)
- - bump for 7.12!!!
- 26/1/07 started 7.11.20
- - another fix to im_region_image() (thanks Mikkel)
- - tiny speed up to im_rect_includesrect()
- - avoid recursive invocation in im_init_world() (thanks Christian)
- - fix to extract_prefix (thanks Christian)
- - buffer cache is now per thread
- - combine buffer unref and ref in a single operation to reduce malloc/free
- cycles
- - new internal API for passing regions between threads means we can remove
- buffer locks
- - more buffer/region sanity checks, plus a memory barrier
- - lock around error buffer changes
- - im_vips2mask() was wrong for nx1 m-band images
- - liboil back to "test"
- - add buffer_cache_list to avoid GHashTable _insert()s
- - oop, --vips-concurrency was broken
- - renamed (in dispatch layer) im_and/or/eor_const -> im_and/or/eorimageconst
- for consistency
- - C++ API wraps IMAGEVEC, DOUBLEVEC, INTVEC arguments
- - oop, IMAGE % vector<double> was broken
- 21/12/06 started 7.11.19
- - added im_linreg() (Tom)
- - various C++ API polishes, plus a bugfix (Dennis Lubert)
- - vips.spec split to devel and python too (Dennis Lubert)
- - be more explicit about sizeof(magic)
- - init magic to native order by default (thanks Dennis)
- - Hist becomes im_history_get()
- - new history mechanism is faster, uses much less memory, and removes
- duplicate lines
- - added im_get_option_group()
- - added official im_concurrency_set()/_get()()
- - don't read bbits from vips files ... set ourselves from bandfmt
- - oops add RGB16 and GREY16 to C++ header
- - --list packages option to vips.c
- - updated docs to 7.12
- - oops, im_region_image() snafu was causing a lot of recomputation
- - make im_mpercent() suck a little less
- - EXIF save was a bit bOrked ... cause of mac crashes?
- - im_histgr(), im_heq(), im_hist() all number bands from zero now
- - fix stride in liboil calls
- - set RGB16 on 16-bit RGB ICC export
- 29/11/06 started 7.11.18
- - added im_buffer_t so regions can share calculated pixels: 2-3x speedup on
- the benchmark
- - im_region_local() -> im_region_buffer()
- - im_sharpen() order change to help sharing
- - im_invalidate() clears buffer caches
- - add sentinel attributes
- - add some missing im_demand_hint()s
- - paint ops invalidate the output image
- - fix nothread eval
- - raise threads limit to 1024 (thanks Christian)
- - manual redone
- - vipsCC python init() hooks
- - add liboil dependency
- - use liboil for im_abs(), im_add(), im_divide(), im_floor(), im_multiply(),
- im_subtract(), im_lintra(), im_avg(),im_deviate()
- - quiet libtoolize test (thanks Tom)
- - im_benchmarkn now regrows image each time
- - strip meta from sample2.v ... saves a lot of mem (esp. Hist)
- - added im_isscalar() (Tom)
- - added IM_REGION_ADDR_TOPLEFT() (Tom)
- - reduce size of im_rightshift_size.c to help compile (Tom)
- - make im_stop_many(NULL) safe (Tom)
- 24/11/06 started 7.11.17
- 1;5Q
- - better benchmark script makes graphing easier
- - double-buffer image file writes
- - reuse write threads
- - clean up threadgroup / iterate / generate
- - added im_benchmarkn to make it easier to make a CPU-bound op on large
- machines
- - im_cache() failed for cpus > 1
- 1/11/06 started 7.11.16
- - moved im__convert_saveable() into im_copy() (thanks Christian)
- - missing gobject dependency (thanks Christian)
- - --enable-threads was broken (thanks Christian)
- - eval without theads was broken (thanks Christian)
- - LIBADD libvips.la to libvipsCC.la (thanks Simon)
- - benchmark.sh is now plain sh, not bash
- - set ORIENTATION_TOPLEFT in im_vips2tiff (thanks Josef)
- - oops, im_vips2csv() output separator was broken
- - added im_benchmark2
- - move XYZ2Lab LUT build outside the eval thread
- 30/10/06 started 7.11.15
- - print leaked windows
- - oops, race condition in im_window_unref()
- - integrated im_region_window() into im_region_image(), tiny speed up
- 6/10/06 started 7.11.14
- - ifthenelse and affine dhints revised
- - buildlut no longer outputs x cods
- - configure asks for glib >= 2.6 (we need GOption)
- - configure uses AC_TOOL_CHECK to find tool names to help cross-compiling.
- - better configure test for libexif
- - add </libexif/ prefix if required
- - test for glibtoolize during bootstrap to help OS X
- - add --version to vips main prog
- - don't set Type in im_scale, want to be able to scale hists, for example
- - im_vips2mask() allows multiband hists as well
- - im_vips2csv() lets you specify an output separator
- - vips.c cleanups in arg handling
- - removed python binding to C layer, too hard to get it working right
- - leak test python test program
- - added throw() decls to C++ to help SWIG
- - no longer derive VError from std::exception, can't get it to work with SWIG
- - added mmap window manager to share windows between regions ... big reduction
- in VM use for large workspaces and for SMP
- - add im_spcor2 (with sliding window) (Tom)
- 15/9/06 started 7.11.12
- - python vips wrapper hooks into init to start vips
- - oop, python detect was broken again
- - im_file_length() error return was wrong (thanks Christian)
- - im_csv2vips() isnored last column if there was no trailing
- whitespace/quoting
- - test for NULL filename/mode, common if you forget to check argc
- (thanks Bruno)
- - im_break_token() returns NULL on trailing whitespace ... helps read_dmask
- work with trailing whitespace on matrix headers
- - added im_buildlut(3)
- - removed extra im_free() in im_copy() fallback in im_msb()
- - added GValue input/output args
- - various C++ binding improvements (thanks Dennis): namespace support,
- VError inherits from std::exception, small fixups
- - remove im_msb() warning on fallback to copy for uchar ... not very serious,
- happens a lot in nip2
- - added <vips/vips> C++ include ... include in a namespace
- - added im_benchmark / SMP benchmark script
- - add im_maxpos_avg() and im_point_bilinear() (Tom)
- - make im_region_free(NULL) safe (Tom)
- - link in manpages for im_contrast_surface (Tom)
- 8/9/06 started 7.11.11
- - add im_norm_dmask()
- - removed old code for gradient and lindetect
- - internal decls split from proto.h to help SWIG
- - test for python and SWIG during configure
- - added python dir for the binding
- - python binding done!
- - oops, --without-python was broken (thanks Tom)
- - added python/test
- - add im_lu_decomp() im_lu_solve(), rewrite NR type functions in terms of these (Tom)
- 23/6/06 started 7.11.10
- - still more im_affine() rounding/clipping tweaks
- - ignore "--" arguments to vips.c
- - im_init_world() also sets g_*_prgname() and loads plugins
- - add manpage for im_init_world() (oops)
- - error_exit() prints prgname
- - various cygwin fixes
- - fix cache thread assert failure (thanks Joe)
- - "header" now uses GOption, slightly different args, will loop over args
- - fixed assert() overenthusiasm in im_prepare()
- - im_csv2vips() now has separate whitespace / separator tables
- - add im_rightshift_size() (Tom)
- - add im_maxpos_vec(), im_minpos_vec() (Tom)
- - add im_norm_dmask() (Tom)
- - make im_free_[di]mask(NULL) safe (Tom)
- 23/6/06 started 7.11.9
- - back on sourceforge CVS again
- - require openexr 1.2.2 or greater
- - range check xy on im_insert*() for sanity
- - VMask::invertlut decl removed (thanks Jean)
- - added \"all\" option to vips.c
- 17/5/06 started 7.11.8
- - debrokened openexr read
- - added im_tile_cache()
- - added tiled read to im_exr2vips()
- - im_tiff2vips() now uses im_tile_cache() rather than its own cache ...
- faster in some cases, less RAM use in some cases, saves 200+ lines
- - removed 'broken' read option from im_tiff2vips()
- - read/write doubles with g_ascii_strtod() and friends where appropriate
- - add a "thread" member to region to help sanity check region ownership
- - saner threadgroup fixes a race problem on gcc 4.0.3 / amd64
- - added im_vips2csv()
- - im_open() now does CSV read/write too
- - oops, broke vips main prog for function name in argv1 case
- 22/4/06 started 7.11.7
- - split vips_png.c to im_vips2png.c and im_png2vips.c
- - added OpenEXR dependency
- - added im_exr2vips(), im_exr2vips_header()
- - added im_isexr(), im_open() knows about OpenEXR
- - added im_contrast_surface(), im_contrast_surface_raw() (Tom)
- - added im_msb(), im_msb_band() (Tom)
- - im_scale() sets Type on output
- - added RGB16, GREY16 types
- - im_*2vips() set these types if appropriate
- - configure fixes for mac
- - vips main prog uses GOption
- - im_icc_* locks around calls to cmsDoTransform() to avoid corruption on SMP
- machines
- - add im_prepare_many() (Tom)
- 10/3/06 started 7.11.6
- - typo in manpage and header for im_rect_dup() (Tom)
- - don't abort image load if XML read fails
- - added im_video_test() ... test video source
- - oops, lcms .pc finder was not working
- - clipping problem in im_affine() fixed (thanks Clare)
- - test for attr support in libmagick
- - im_text() returns an error for empty string
- - im_falsecolour() scale reversed
- - im_remosaic() could crash on bad mosaics
- - configure changes to fix --without-magick, lcms and fftw (but sadly we now
- require .pc files for these libs)
- - im_vips2jpeg() automatically converts to 1 or 3 band sRGB uchar for write
- - also im_vips2png()
- - added im_project()
- 20/2/06 started 7.11.5
- - added im_csv2vips()
- - commas in filename options can be escaped with a '\'
- - raise tile buffer limit (thanks Ruven)
- - im_spcor() and im_fastcor() have prettier borders
- - im_fastcor() returns sum of squares of differences, not sum of abs of
- differences
- 18/11/05 started 7.11.4
- - small win32 fixes, thanks Juan
- - added im_flood_blob_copy() ... a temporary hack
- - much faster im_histplot()
- - read RGBA palette-ized PNG images more robustly (thanks Tom)
- - turn on -ms-bitfields automatically for mingw
- 26/9/05 started 7.11.3
- - better error recovery for im_binfile() file too large
- - all raw files now use mmap windows, so (eg.) ppm and analyze reads can go
- >2GB
- - remove DISABLE_COMPAT ... you now have to define IM_ENABLE_DEPRECATED to get
- broken #defines
- - fix to build without exif, thanks Chas
- - use native win32 API for seek()/truncate() to work with large files
- - use attribute to check printf-style args with gcc
- - fix gcc4 warnings
- - removed ebuild, since it's in gentoo now
- - im_magick2vips() sets meta from attributes (good for dicom)
- - im_magick2vips() writes many-frame images as tall thin VIPS images
- - im_histcum() was broken for vertical histograms
- - im_histnorm() is neater
- - simpler and faster inner loop for im_conv() and im_convf() avoids gcc4 bug
- - appendc() was reading past the end of the buffer on MSB machines
- 13/6/05 started 7.11.2
- - im_copy_set() was messed up in 7.11.1
- - put into CVS, phew
- - fixed a rounding bug in im_affine() ... should no longer get black edges on
- image resize
- - if TIFF open fails in im_open(), try going through libmagick
- - merge requires all bands == 0 for transparency (used to just check 1st
- band)
- - 16 bit LAB TIFF read/write was wrong
- - new GType for refstring makes it visible from im_header_map()
- - jpeg loader attaches exif data (and human-readable meta fields)
- - jpeg saver writes any exif data
- - meta not wiped by im_*incheck() in a "w" image
- - meta keeps traverse order
- - now require glib >= 2.4
- - require libxml-2.0 for meta save and new history mechanism
- - no more .desc files, history saved in XML after pixel data
- - i/s/d meta fields saved there too
- - added base64 encode/decode
- - added blob header write
- - added a save string type: types which define transforms to and from the
- save format get serialized
- - GValue meta API now exposed, since we can serialise anything
- - jpeg loader loads ICC profiles
- - jpeg saver saves ICC profiles from the VIPS header
- - src/header.c knows about meta system
- - added im_analyze2vips(), im_grid(), im_raw2vips()
- - extract/grid/replicate/zoom were not setting TRANSFORM flag
- - better falsecolour LUT
- - less stupid + more portable read/write of VIPS header
- - better im_updatehist()
- - jpeg load sets vips xres/yres from exif, if possible
- - jpeg save sets exif xres/yres from vips, if possible
- - icc_export and icc_transform attach profiles and intents to output images
- - added im_icc_import_embedded() to import with an embedded profile
- - split vips_jpeg.c into two, it was getting too big
- - added im_cp_descv(), im_cp_desc_array(), funcs use them
- - removed im_append_Hist() from API
- - fixed meta copy bug
- - better history copy, removed nonsense about 1st line of Hist being special
- - tiff read/write now reads/writes ICC profile from meta
- - edvips rewritten to remove stupidness, and can now set xml
- - header can now print xml extension block
- - IM_ prefix for colour temp names
- 1/6/05 started 7.11
- - added im_copy_morph()
- - im_region_region() allows Bands and BandFmt to differ, provided
- sizeof( pel ) is the same ... makes im_copy_morph() work
- - added im_meta*() functions (MW)
- - im_header_*() rewritten for meta
- - added im_header_exists(), im_header_map()
- - use pkg-config to find libpng and ImageMagick
- - added im_lineset()
- - added im_extract_areabands() (JF)
- - added im_copy_from() (JF)
- 15/4/05 started 7.10.12
- - im_ifthenelse just evals left/right for region all zero/all one
- - also im_blend
- - swap g_setenv() back to plain setenv() so we work with glib 2.2
- 9/4/05 JC started 7.10.11
- - docs no longer have broken links
- - fixed memleak in im_text()
- 8/4/05
- - one bit tiff read was sometimes reading a byte too far in each scanline
- 14/1/05 started 7.10.9
- - im_filename_split() will now usually work for filenames containing ':'
- characters
- - added im_render_fade() for fancier nip2 image repaint
- - added "ccittfax4" as a TIFF compression option
- - fix all 64-bit compiler warnings
- - "," allowed as column separator in mask read
- - better at spotting singular matrices
- - small im_render() tidies
- - glib dependency reduced to just 2.0, but untested ... helps people building
- on older systems who aren't interested in nip2
- - removing leading spaces from IMAGEVEC arguments
- - load non-interlaced PNGs more efficiently
- - 1 point mosaic functions work on more image types
- - better memory allocation debugging info
- - local memory on regions can shrink as well as grow
- - shut down threadgroups on render if no dirty tiles
- - limit number of simultaneous renders
- - higher mmap window threshold
- - allow max == -1 for unlimited render cache
- - 'priority' marks non-suspendable renders
- - im_embed() mode == 4 paints white pels
- - im_tiff2vips() was broken with --disable-threads
- - oops, im_errormsg() compat macros were GCC only
- - larger default tile size and strip height
- - tiff write sets PHOTOMETRIC_CIELAB for vips TYPE_LAB images ... so we can
- write float LAB as well as float RGB (thanks Ruven)
- - also 16 bit LAB TIFF write
- - im_render() rewritten
- 20/11/04 started 7.10.8
- - im_sharpen() is ~15% faster
- - more quoting for MAGICK finder
- - im_XYZ2Lab() uses a LUT rather than cbrt(), 5x faster
- - --disable-threads removes gthread dependency completely (thanks Simon)
- - intercept TIFF warnings as well as errors ... stops occasional libMagick
- exceptions
- - add im_init_world() to im_init() as well to help backwards compat (thanks
- Simon)
- - im_icc_present() function description was broken, thanks Jay
- - oops, libtool library versioning was wrong, thanks Jay
- - can now make TIFF pyramids of any non-complex image type (was uchar and LAB
- only), thanks Ruven
- - 1st order mosaic code now works for LABQ too
- - build system changes to make "make distcheck" work
- - RPM .spec files fixed up and updated by configure (thanks Simon)
- - tiny cleanups for vdump
- - use g_setenv()/g_getenv()
- - tiny improvements to IM_FREE*()
- - tiny VImage debug print fixes (thanks Jay)
- - swap off_t for gint64 to fix LARGEFILE support on win32
- - computation feedback now uses gint64 for number of pels, so we give feedback
- correctly on images with >2**31 pels
- - other small fixes for >2**31 pels in an image
- 10/11/04 started 7.10.7
- - im_histnD() was not checking BandFmt (thanks Kirk)
- - improvements to threading system speed up non-vips output in some cases
- - use cbrt(x) where we can ... 10x faster than pow(x,1.0/3) on win32
- - typeo in im_text() when built without PANGOFT2 (thanks Stefan)
- 1/11/04 styarted 7.10.6
- - tiny doc fixes
- - scripts now only depend on 'vips' program
- - im_open( "r" ) is now lazier ... for non-VIPS formats, we delay read until
- the first ->generate()
- - so im_open_header() now deprecated since im_open("r") is identical
- - now looks for fftw3 as well as fftw2 ... slightly faster ffts
- 19/10/04 started 7.10.5
- - fix to light_correct (thanks Jay)
- - edvips knows about xoffset/yoffset
- - better vips enum<->char conversions
- 4/10/04 started 7.10.4
- - man page fixes (thanks Jay)
- - removed last csh scripts (thanks Jay)
- - scripts default VIPSHOME to $prefix (thanks Jay)
- - doc build system tidies
- - im_rank() edge padding was wrong
- - im_vips2tiff() can now embed ICC profiles
- 22/9/04 started 7.10.3
- - mildly better im_vips2tiff()
- - *, -, +, /, % between two images now work for mixed number of bands
- - im_free() was missing a man page
- - revised documentation
- 1/9/04 started 7.10.2
- - C++ .pc files were still set for 7.9, grr
- - im_insertplace() didn't check compatibility of images (thanks Matt)
- 27/7/04 started 7.10.1
- - set default stack size explicitly to help platforms with a very low default
- - 16 bit RGB tiff read was broken (bug introduced in 7.9.5, thanks Haida)
- - !pangoft2 was broken, thanks Kenneth
- - win32 build fixes
- 12/7/04 renamed as 7.10.0
- - added NOCACHE function flag ... stops nip memoising video & paint ops
- - added im_extract_bands() ... takes out many bands from an image
- - im_vips2tiff() scanline write speed up for area pipelines
- 10/6/04 started 7.9.6
- - tiny polishing of im_ppm2vips()
- - im_blend() can now work on labq
- - boolean ops all work on float/complex images (by casting to int)
- - im_maplut() was broken for 1 band image + many band lut + >8 bit output
- - im_lintra_vec() now handles 1 band image and many band vector to make many
- band image
- - oops, im_lintra_vec() was missing a man page
- - im_measure() can work on labq
- - im_lhisteq() uses new embed mode, _raw() version is one pixel smaller, sets
- Xoffset/Yoffset for new origin scheme
- - generalised im_tone_build() to any image type to make im_tone_build_range()
- 20/5/04 started 7.9.5
- - tiff output res can be a single number too
- - added im_text() to make a bitmap from a string with pango
- - im_tiff2vips() does 16 bit RGBA
- - im_binfile() was broken since 7.9.2 due to im_mapfile() change
- - im_ppm2vips() now works for 16 bit images
- - added im_copy_swap() ... copies, reversing byte order
- - im_resize_linear() was broken for some images, thanks Javi
- 8/3/04 started 7.9.4
- - oops, config.h include missing in a few places
- - im_vips2tiff() can now write 1 bit images
- - im__find_lr/tboverlap() now exported to nip
- - better edge tile handling for tiff read/write (thanks Ruven)
- - added extend-pixels-from-edge mode to im_embed()
- - im_conv*(), im_rank(), im_stdif(), im_dilate(), im_erode() all use it to
- expand their input, so their output now has guess borders, not black borders
- - im_fastcor() now does an im_embed( 1 ) on the output ... the zero borders
- were very annoying before, since you would usually be searching for the
- minimum point
- - no change to im_spcor(), since you will usually be searching for the maximum
- - better im_render() cache behaviour under heavy loads
- - im_affine() revised
- * clip, resample and transform is now pixel-perfect for all
- inputs (I hope)
- * uses the new embed to make sure there are no black borders
- from edge interpolation
- * about 20 - 30% faster
- - policy change: Xoffset and Yoffset are now set by all operations to record
- the position of the input origin in the output
- - im_replicate() is much faster for some cases
- - added tile and mirror flags to im_embed()
- - added im_cache() convenience function
- - better ETA for image calculation
- - im_tiff2vips() now has a "broken" option so it can read tiled tiffs made
- with earlier versions of vips
- - on convert float to int format, now does floor() not rint() ... more
- 'mathematical'
- - added im_rint()
- - im_sharpen() now uses a gaussian mask
- - im_convsep() more resistant to int overflow problems
- - added im_make_xy(), avoids rounding problems with the old float-based thing
- - im_profile() now makes vertical images for a vertical profile
- - added im_vips2tiff() option to set the resolution in inches not cm (thanks
- Andrey)
- - im_binfile() is now exported
- 6/2/04 started 7.9.3
- - added an im_init_world() to im_open(), to help old progs
- - renamed VSemaphore as im_semaphore_t
- - started using libtool library versioning
- - now uses g_module_*() in place of dlopen()
- - now uses pkg-config instead of vips-config (thanks Simon)
- - fixes to vips.h for _ADDR() with DEBUG on (thanks Konrad)
- 10/12/03 started 7.9.2
- - patches for freebsd, thanks Lev Serebryakov
- - vips2dj knows about my colour laser printer
- - added i18n support, glib/gmodule/gthread dependency
- - im_error*() API revised to be more i18n friendly
- - List type removed, now uses g_slist
- - VBuf added, some more utility funcs pushed down from nip
- - im_thread stuff removed, now uses g_thread
- - im_lock stuff removed, now uses g_mutex
- - im_semaphore_t renamed to VSemaphore, not sure this is a good idea
- - build with --disable-threads to turn off threaded render
- - #include <vips/vips.h> now pulls in most of the public API, you shouldn't
- need other vips includes very often
- - im_close() is better at cleaning up if there's an error
- - inverse FFTs could fail for wider-than-high images with fftw
- - better im_icc_transform error messages
- - bug fix in im_render with large caches
- - im_binfile() now has an offset parameter
- - im_mapfile()/im_unmapfile() now work on IMAGE and record the length of the
- file they mapped ... this lets VIPS successfully unmap a file if it changes
- size while it's open
- 20/10/03 started 7.9.1
- - threadgroups now have their own kill flag
- - im_plotmask() now does anti-aliasing
- - im_iterate() fix for operations on mmap window images (thanks Clare)
- - im_writeline() stops on kill
- - fix for im_fwfft() segv for wider-than-high real images (thanks Andrey)
- - fix for im_fwfft() to work for non-square real images (thanks Andrey)
- - can now read and write 32-bit IEEE float TIFF (Andrey Kiselev)
- - clean-ups for colour.c (Andrey Kiselev)
- - no longer lets you make an image with width|height|bands == 0 (thanks Joe)
- - im_vips2tiff(), im_vips2*jpeg*(), im_vips2png(), im_vips2ppm() could
- sometimes fail for mmap window input images (thanks David)
- - added IM_RECT_HCENTRE(), IM_RECT_VCENTRE() macros
- 20/8/03 JC
- - started 7.9.0
- - added im_rank_image() ... im_maxvalue() a special case of this
- - im_subtract() goes up to int earlier for better value preserving, thanks
- Haida
- - im_rank() much faster for large windows, correct result on all platforms
- (dratted memcpy() was causing problems before)
- - fixed problem with libMagick config if installed somewhere strange
- - fixed problem with include order in library compile
- - added --without-magick configure option
- - added im_render(), threaded background image paint
- - added im_replicate(), replicate an image horizontally and vertically
- 31/5/03 JC
- - started 7.8.11
- - fixed a problem with relational operators and some combinations of input
- types (bug introduced in 7.8.9), thanks Haida
- - vips-7.8 script overrides VIPSHOME environment variable
- - better im_guess_prefix
- - stupid light_correct script no longer uses /pics/tmp
- - added batch_crop script
- 22/5/03
- - started 7.8.10
- - the JPEG writer can embed ICC profiles in output images ... although I've
- yet to see it make any difference :-( test this carefully at some point
- - fixed a possible coredumper in jpeg write
- - jpeg read now spots truncated files
- - im_invertlut() now makes an image, not a mask ... sorry :-(
- - im_histnD() makes an n-dimensional histogram from an n-band image
- - im_col_pythagoras() patch
- - IM_NUMBER() now returns int not size_t
- - new win32 build system from Juan and friends, based on tmake
- - sample project files for MSVC added, thanks Juan
- - win32/ subdir now has the win32 build systems
- - spec/ subdir now has the spec files for building RPMs
- - dist now includes formatted documentation
- - license change: VIPS is now LGPL, nip stays GPL ... this means proprietary
- programs can link against the vips library
- - had a report of a working VIPS build on a 64 bit system (!)
- - im_log_dmask() now includes all of the negative lobe, thanks matt
- - vips-7.8 start script now auto-relocates
- - im_spcor_raw(), im_fastcor_raw() now exported
- 29/4/03
- - started 7.8.9
- - changes to build to help MSVC
- - oops, makedef.pl missed out function names with an initial cap, and
- error_exit()
- - im_min() and im_max() gave random wrong results for >1 thread on >1 CPU
- machines (bug introduced in 7.7.20), thanks Joe
- - vips.c no longer generates C++ wrappers for functions with no image argument
- (thanks Haida)
- - im_invertlut() now wrapped by hand in VMask.cc
- - C++ docs updated
- - added im_open_header(), returns an IMAGE with just width/height/etc and no
- data
- - ... so now "header" will print useful stuff even on truncated files
- - tiff writer knows about alpha (thanks Jenny)
- 7/2/03
- - started 7.8.8
- - build failed with lcms turned off
- - im_spcor() could segv for 16bit images (thanks Joe)
- - im_tiff2vips() read resolution expressed as pixels/cm incorrectly
- - im_vips2tiff() tries not to write mad resolutions
- - header and im_open file type tests reordered for slight speedup
- - im_copy_set() had a broken dispatch function for xres/yres
- - im_fwfft() exploits libfftw real -> complex transform if possible for a 2x
- speed-up (thanks Matt)
- - im_invfftr() added for complex -> real inverse transform for 2x speed-up
- (thanks Matt)
- - im_freqflt() now uses im_invfftr() for real result and speedup
- - im_flipver() could segv on some inputs, thanks Clare
- - relational operators now work on complex
- - relational rewritten ... now fractionally slower, but 1/3 the size
- - vips2dj -1:1 produced incorrect height
- - better overlap-too-small detection in mosaicing code
- - im_system() can have NULL output
- - global balance ignores overlaps with only transparent pixels
- 3/1/03
- - started 7.8.7
- - worked in patch from Hans Breuer (thanks!)
- - png read/write with im_png2vips(), im_png2vips_header(),
- im_vips2png(), im_ispng()
- - im_errorstring() and im_col_displays() are now functions not externs
- (helps DLLs)
- - many include fixes to help native win32 build
- - added libMagick support, 78 file formats now loadable with
- im_magick2vips(), im_magick2vips_header() and im_ismagick(), w00t
- - now installs vips.m4 to $prefix/share/aclocal
- - added im_icc_export_depth() ... export to device space with a specified bit
- depth (8 or 16)
- - vips.def now rebuilt with custom rule in libsrc/Makefile.am
- - removed externs im_Type, im_BandFmt, im_Coding, im_Compression to simplify
- DLL build
- - im_mmap() -> im__mmap(), since it's supposed to be an internal function
- - new vips-7.8.x/proj directory holds unsupported sample makefiles and
- config.h for building with the MSC toolchain
- - new scripts batch_image_convert and batch_rubber_sheet (thanks Joe)
- - added the RPM .spec files to the main distribution
- - InitializeMagic() now passed "" rather than NULL to avoid assert() problems
- on some libMagic versions
- 2/12/02
- - started 7.8.6
- - now reads 8-bit RGBA tiff
- - C++ build guide fixes (thanks fsicre)
- - im_Type2char array text slightly messed up
- - global_balance is safer for complex mixed mosaics
- - removed im_lintra() fallback to im_copy() for scale == 1, offset == 0 ...
- too confusing
- - im_tiff2vips() now reads 16-bit LAB
- - added im_Lab2LabS() and im_LabS2Lab()
- 5/11/02
- - started 7.8.5
- - fix for mmap window of local region ... caused im_iterate() to break
- sometimes for large images, in turn occasionally breaking
- im_max()/im_min()/etc. (thanks Joe)
- - tiny speed up for im_rot90()/270()
- - on install on win32, add .exe suffix for links
- - vips.c knows to remove .exe suffix for linked commands
- - added im_errormsg_system() ... decode win32 error codes too
- - pagesize calcs for roving mmap windows were messed up on win32 (thanks Kirk)
- - some TODO cleanups
- - global balance broke horribly if you had filenames with spaces in (thanks
- Clare)
- 31/10/02
- - started 7.8.4
- - im_unmapfile() includes mixed up on mac os x
- - libtool patched for mac os x
- - vips.c sets numeric locale to "C"
- 27/10/02
- - started 7.8.3
- - configure fixes help mac os x
- - im_guess_prefix() adds ".exe" suffix on w32 if not there
- - changed im_measure() error messages to number bands from 1
- - added func descriptor for im_read_dmask() to help nip, updated C++ API, docs
- 21/10/02 JC
- - started 7.8.2
- - tries rand() if random() is not available
- - tries mktemp() if mkstemp() is not available
- - turns off realpath() if not available
- - added IM_DIR_SEP/IM_DIR_SEP_STR directory separator character/string
- - added IM_PATH_SEP/IM_PATH_SEP_STR path separator character/string
- - added im_path_is_absolute()
- - vips.c knows to link to vips.exe on win32
- - spot mingw* and set BINARY_OPEN
- - open images in binary too (since we now read() the header)
- 10/10/02 JC
- - im_lintra() and im_lintra_vec() were broken for complex images :-( thanks
- matt
- - renamed im_and() as im_andimage(), im_eor() as im_eorimage() and im_or() as
- im_orimage() ... avoids breakage in the C++ layer
- - added im_dE00_fromLab()
- - limited release as vips-7.8.0
- 2/10/02
- - renamed as vips-7.8, woohoo
- - revised documentation
- 19/9/02 JC
- - started sorting out VIPS #defines ... there are now a sensible set of new
- names (eg. NOCODING becomes IM_CODING_NONE, LAB becomes IM_TYPE_LAB)
- - define IM_NO_VIPS7_COMPAT to turn off the old names
- - added im_mmap()/im_munmap() layer for windows portability
- - removed the contents of history.h .. obsolete
- - added IM_IMAGE_ADDR() macro
- 10/9/02 JC
- - handle errors from TIFF lib correctly
- - configure fixes for cygwin
- - CMYK TIFF write fixed
- - configure fixes for mingw
- 5/9/02 JC
- - im_cp_desc() now copies Xoffset/Yoffset
- 21/8/02 JC
- - started 7.7.24
- - reads CMYK TIFF
- - reads dpi from TIFFs
- - better float Xres/Yres
- 14/8/02 JC
- - new header fields Xoffset and Yoffset ... used by functions to hint
- the position of the origin in output images
- - support added to c++ api and to header
- - im__lrmerge(), im__tbmerge(), im__affine(), im_insert(),
- set Xoffset/Yoffset
- - now uses <lcms.h>, not <lcms/lcms.h> for better suse w0rkage
- - better configure for fftw (uses libdfftw name if libfftw not found)
- 8/8/02 JC
- - large file support with mmap() windows ... had to change
- im_prepare_inplace() to im_prepare_to()
- benchmark:
- - system
- hardware: 2 x 2.5GHz P4, 1GB RAM, 15k SCSI, ReiserFS
- os: suse 8 (kernel 2.4.18)
- compiler: gcc 2.95.3, -O2, threads turned on
- images: fred.v, fred2.v; both 4k by 4k LABPACK (64MB)
- images: jim.v, jim2.v; both 15k by 15k LABPACK (900MB)
- time: smallest real of 5 runs, system idle
- vips: 7.7.23, debug on in im_openin.c, window limit set with an
- environment variable
- - benchmarks
- cpu-bound: im_sharpen fred.v fred3.v 11 1.5 20 50 1 2
- io-bound: im_insert fred.v fred2.v fred3.v 4000 0
- worst-case: im_rot90 fred.v fred3.v
- - results
- desktop:
- no mmap windows mmap windows
- cpu-bound real 0m3.712s real 0m3.970s
- user 0m6.010s user 0m6.390s
- sys 0m0.900s sys 0m1.110s
- io-bound real 0m1.813s real 0m1.865s
- user 0m0.900s user 0m0.990s
- sys 0m1.720s sys 0m1.520s
- worst-case real 0m1.344s real 0m3.039s
- user 0m1.270s user 0m2.230s
- sys 0m0.850s sys 0m3.050s
- not quite sure why sharpen is a little slower (4%?) ... IO speed is about
- the same though ... worst-case is having to constantly move windows about
- (500,000 page faults, vs 10,000 for no windows)
- again, with an image larger than RAM
- no mmap windows mmap windows
- io-bound real 2m52.759s real 2m11.172s
- user 0m14.940s user 0m14.890s
- sys 0m29.940s sys 0m26.560s
- worst-case real 3m35.391s real 3m50.760s
- user 0m19.850s user 0m26.600s
- sys 0m12.650s sys 0m43.130s
- mmap windows actually slightly faster in this case ... plus they stress the
- OS less
- 31/7/02 JC
- - added -lm for better lcms detect
- - README notes for fftw on suse8
- - im_profile() sets HISTOGRAM for output image
- - im_copy()/im_copy_set() function descriptor no longer sets PTOP ... helps
- avoid LUT problems
- - im_subsample()/im_zoom() fall back to im_copy() for shrink/grow == 1
- - im_lintra() falls back to im_copy() for scale == 1, offset == 0
- - no longer use Type == LUT ... all just Type == HISTOGRAM now
- - im_blend() was messed up for > 1 band images :(
- 16/7/02 JC
- - started 7.7.23
- - im_XYZ2sRGB() wasn't setting Type = sRGB
- - im_icc_import() was broken for rgb
- - im_header_string() had wrong return type in function database
- 13/7/02 JC
- - added im_flood_blob()
- - added im_open_local_array() ... C API convenience function
- - oop, im_flood() was missing a man page
- - Type == FOURIER added to help visualisation
- - released as 7.7.22
- 30/6/02 JC
- - JPEG, TIFF and PPM import all now set sRGB Type for RGB import
- - im_header_int(), im_header_double() and im_header_string() added to aid
- UIs
- - now uses gettimeofday(), not time()
- - for consistency with other trig functions, im_c2amph() now returns degrees
- not radians (ouch)
- - added im_c2rect() ... turn (amp, phase) to rectangular
- - added im_sign() ... unit vector in direction of value
- - better im_scaleps() ... old code was terrible
- - rewritten im_rotquad() ... now partial
- - im_icc_export()/_import() now do ABSOLUTE correctly
- - added im_icc_ac2rc() ... converts absolute to relative colorimetry
- 25/6/02 JC
- - added im_copy_set(3) ... like im_copy(), but set informational header fields
- 20/6/02 JC
- - added im_ceil(), im_floor()
- - im_Lab2LabQ was not clipping a/b range correctly
- - im_icc_export(), own ABSOLUTE mode
- - released as 7.7.21
- 28/5/02 JC
- - im_remainderconst_vec broken for float/double
- - added Yxy colourspace
- 16/05/02 JC
- - auug, libtool was all messed up ... redone all the autotools stuff
- - uses libtool convenience libraries to build vips in sections
- - uses config subdir for temp files and .m4 things
- - patched stupid suse config.guess
- - vips2dj patched for better raw cmyk
- - released as 7.7.20
- 12/5/02 JC
- - im_vips2jpeg*() and im_vips2ppm() now both partial
- - started updating the C++ guide
- - had to change the location of the C++ headers :-( all C++ progs should now
- have:
- #include <vips/vipscpp.h>
- this is so things can work on systems which do not have case sensitive
- file systems
- - changes for Mac OS X
- * im_system() TRUE/FALSE removed
- * searches /*/[lib|include] to get fink libs for tiff and jpeg
- 30/4/02 JC
- - several functions were missing IM_FN_PIO in their descriptor ... this was
- harmless for nip/ip/C, but broke the ref counting in the C++ layer
- - im_system() now defaults "/tmp" for temp files
- - STRING input and output args were broken for C++ :-(
- - threads exit more quickly on error
- - im_min()/im_max() now partial (at last)
- - im_remainderconst()/im_remainderconst_vec() added
- - --with-dmalloc configure switch
- - vips2dj does CMYK and mono too
- - im_vips2tiff() allows any number of bands (but not the right way to
- write CMYK, see TODO)
- 26/4/02 JC
- - old ICC profile reader removed
- - little cms wrapped ... configure spots it, im_icc_transform() uses it to map
- between two images
- - also im_icc_import() and im_icc_export() so you can see PCS images
- - im_icc_present() to test for existence of lib
- - README fixes
- 4/4/02 JC
- - TODO changes
- - oops, DEBUG left on in im_invertlut()
- 2/4/02 JC
- - im_fwfft.c/im_invfft.c now use libfftw if available ... about 5x speed up
- and double precision
- - added FIND_FFTW autoconf macro
- - include/vips/proto.h changes
- 26/3/02 JC
- - started 7.7.19
- 25/3/02 JC
- - im_log_dmask() was broken (thanks matt)
- - casts between VDMask and VIMask were broken (thanks matt)
- - various error msgs improvements and tiny man page fixes
- 13/3/02 JC
- - tb/lr merge first/last cache moved to per-call state for better sharing
- - im_remosaic() bails out faster on error and makes better error messages
- 13/3/02 ruven
- - im_vips2tiff() pyramids stop at tilesize, not 64x64
- 25/02/02 JC
- - im_remosaic() is smarter, and works better with im_global_balance()
- - im_affine() 2x faster
- 14/2/02 JC
- - started 7.7.18
- - vips.m4 and libsrc/Makefile.am fixes for IRIX
- 11/02/02 JC
- - vips/thread.h and vips/threadgroup.h were missing extern "C" for C++
- - VImage::write() now tracks dependencies, so you can write() to a partial
- safely ... although it's not a very useful thing to do (thanks Mike)
- - new VImage::print() function for debugging
- - added im_print()
- 22/01/02 JC
- - started 7.7.17
- 15/01/02 JC
- - im_rect_unionrect() and im_rect_intersectrect() safer for repeated args
- - im_video_v4l() no longer perror()s on ioctl fail for less spam
- 03/01/02 JC
- - started 7.7.16
- - im_version_string() really does return the date as well now
- 12/12/01 JC
- - im_guess_prefix() extra smartness for relative path names
- - VImage() no longer uses tmpnam() (thanks Paul)
- 11/12/01 JC
- - renamed im_fexists() as im_existsf()
- 7/12/01 JC
- - ppm man pages added (doh)
- 28/11/01 JC
- - warnings on g++ 2.96 fixed
- 22/11/01 JC
- - started 7.7.15
- - im_video_v4l() failed to compile on non-linux platforms
- 7/11/01 JC
- - im_remosaic() added
- - im_*merge() are more intelligent about transparency in bizarre overlaps
- - grr! putenv() semantics change on more recent clibs ... should be safer
- now
- 19/10/01 JC
- - VDisplay( "display name" ) segved on unknown display :-( thanks mike
- 26/9/01 JC
- - contrib tools get data files from share/vips/xxx area now
- - im_vipshome() renamed as im_guess_prefix(), reworked for new package layout
- - doc/ build sorted out
- - ... but of course, docs still need updating for 7.8
- 20/9/01 JC
- - fix to im_vipshome()
- - ip2 renamed as nip
- - split to library only ... separate ip and nip packages
- - new VIPS_VERSION_* macros set from configure.in in vips/version.h.in
- - vips.m4 VIPS finder
- - reworked README, doc/README and TODO
- - now installs to /usr/local/ by default
- - fmask4th.c was including varargs.h ... d'oh
- - include area reorganised: everything inside <vips/..> now ... hopefully the
- only user-visible change is that all plain C progs need to change:
- #include <vips.h>
- to:
- #include <vips/vips.h>
- the C++ API should be unaltered
- 21/8/01 ruven
- - im_setupout() was missing some #includes
- 20/8/01 JC
- - started 7.7.14
- 15/8/01 JC
- - added libxml dependency for ip2
- 27/7/01 JC
- - im_conv(), im_convf(), im_convsep(), im_convsepf() now reject masks with
- scale == 0
- 26/7/01 JC
- - started 7.7.12
- 25/7/01 JC
- - started 7.7.11
- - oop, im_histeq() and im_tonemap() also missed
- - better error messages from im_run_command()
- 23/7/01 JC
- - started 7.7.10
- - im_sharpen() failed due to change in im_band_extract() offset
- 20/7/01 JC
- - started 7.7.9
- 4/7/01 JC
- - im_open(,"w") open() delayed until im_setupout(), very slightly safer
- - updated im_open() man page
- - im_tiff2vips() now embeds index in filename ... and it's page number (from
- 0), not subsample factor
- - finally bit the bullet ... im_extract()/im_extract_band() now number from
- zero (sorry!)
- - and im_lrmosaic()/im_tbmosaic() bandno param too
- 29/6/01 JC
- - im_region_free() now frees immediately
- 27/6/01 JC
- - im_vips2tiff() man page updated for deflate, 2 years late
- 22/6/01 JC
- - oops, limit wrong on im_rank()
- 21/6/01 JC
- - better post_install for --prefix outside VIPS's tree
- - -ltiff needs -lm in acinclude.m4 ... fixes configure on redhat 7.x
- 13/6/01 JC
- - started 7.7.8
- 6/6/01 JC
- - im_invertlut() added
- 31/5/01 JC
- - im_colour_temperature, im_XYZ2Lab_temp, im_Lab2XYZ_temp added
- - ... colour temp stuff needs sorting out properly
- 25/5/01 JC
- - added vips-config script, cf. gtk-config
- - --without-threads option added
- - did a bit of work on the C++ API docs
- 24/5/01 JC
- - added im_tiff2vips_header(), im_jpeg2vips_header() and im_ppm2vips_header()
- - header uses these to print fields quickly
- - switched to config.h
- - configure.in rewritten ... much nicer, fewer options, more automatic
- 17/5/01 JC
- - im_matinv() didn't free stuff correctly on singular matrix
- 16/5/01 JC
- - vips2dj now knows about 5000ps printers
- - allow RW mode for non-native VIPS image files, for 8 bit images
- 2/5/01 JC
- - started 7.7.7
- 1/5/01 JC
- - im_addgnoise() did not work for >1 band images
- 23/4/01 JC
- - configure options to remove support for JPEG and TIFF ... helpful for a no-
- dependencies build
- 20/4/01 JC
- - im_(v)snprintf() added
- - all sprintf()s removed
- 15/4/01 JC
- - im_affine() had a rounding problem
- 11/4/01 JC
- - tiny mosaicing bug fixed in im__lrcalcon
- - started 7.7.6
- 21/3/01 JC
- - new iblend code in im_tbmerge() was typo-d
- - mosaic1 was broken by affine too
- 20/3/01 JC
- - im_image() failed for FMTUCHAR
- 12/3/01 JC
- - started 7.7.5
- - im_sharpen() uses separable convolution for big speed up
- - new "Print" menu
- 11/3/01 JC
- - REALVEC renamed as DOUBLEVEC
- - added IMAGEVEC
- - added IM_INPUT_IMAGEVEC
- - gbandjoin now has function description
- - new function im_maxvalue()
- - im_compass()/im_lindetect() reimplemented with im_conv()/im_maxvalue(),
- about 15% faster, works for any type, partial
- - im_gradient() reimplemented with im_conv()/im_abs()/im_add(), about 30%
- slower, works for any type, partial
- 10/3/01 JC
- - new function, im_clip2fmt() converts between any image formats ...
- slightly faster than the old im_clip()
- - legacy im_clip2us() etc. functions now just call this
- 9/3/01 JC
- - im_conv() rewritten, simpler, about 10% faster
- - im_convsep() rewritten, now does any non-complex type, partial, 20% faster
- - new functions: im_convf(), im_convsepf() for DOUBLEMASK
- - raw versions of each
- - legacy convolvers (eg. im_convbi()) removed
- 8/3/01 JC
- - new function im_blend()
- - new function im_lab_morph()
- - speed up to im_ifthenelse()
- - speed up to im_*merge() (uses integer arithmetic for integer blends)
- 4/3/01 JC
- - tiny speed ups to im_histgr()
- - speed ups to im_maplut()
- 3/3/01 JC
- - new functions: im_histnorm(), im_histcum()
- - im_histeq() more general
- - im_vipshome() --- better behaviour for relative paths
- 2/3/01 JC
- - new video package
- - im_video_v4l1() (video for linux) added
- - configure.in switches to turn v4l1 on and off
- 1/3/01 JC
- - new im_histspec() implementation ... more general, bugs removed
- 14/2/01 JC
- - better vips2dj usage message
- 13/2/01 JC
- - im_image_sanity() added, called in various places in iofuncs
- 9/2/01 JC
- - added 'check' and 'name' class member stuff to ip from ip_gtk2
- - new "Plot" menu
- - new "Overlay" menu
- - more stuff in _stdenv/_list ... curried forms of head/tail etc.
- 7/2/01 JC
- - started 7.7.4
- - vips2dj and vdump now use im_vipshome()
- 5/2/01 JC
- - new im_vipshome() function
- - min()/max() macros renamed as MIN()/MAX()
- - new im_load_plugins() function
- - vips.exe and ip now load $VIPSHOME/lib plugins at startup
- 2/2/01 JC
- - mosaicing functions now have an extra max blend width parameter
- 30/1/01 JC
- - fixed tbmerge no overlap detect
- 13/12/00 JC
- - started 7.7.3
- 30/12/00 JC
- - vips.h fixes for cygwin/wingdi conflict
- 27/11/00 JC
- - added im_vips2ppm(), im_open() imports and exports it
- - fixed nasty implicit output conversion problem for PIO dispatch() calls
- 21/11/00 JC
- - added im_ppm2vips()
- 16/11/00 JC
- - configure.in fixes ... jpeg found correctly now
- - searches for libz as well
- 16/11/00 JC
- - started 7.7.2
- 5/11/00 JC
- - speed up to lab2labq
- 19/10/00 JC
- - started 7.7.1
- 13/1/00 JC
- - oops, im_open() was missing an 'else' in jpeg/tiff load
- 5/8/00 JC
- - im_vips2tiff() now has mode string embedded in output filename
- - im_vips2jpeg() now has qfac in output filename
- - im_open() understands this
- 11/7/00 JC
- - new im_image() function ... wraps a VIPS image around a memory buffer
- - C++ layer changes:
- * now use #include <vips/Vips.h>
- * error renamed as VError
- * new VMask() constructors
- * new VImage() constructor
- * new VImage::data() access member
- * more operator equivalences: <, >, <=, >=, ==, !=, &, |, ^, %
- 17/6/00 JC
- - more consts added to vips protos
- 10/5/00 JC
- - minor configure.in changes to help solaris
- - removed _TIFFmalloc() and _TIFFfree() calls
- 9/3/00 JC
- - fixed rounding problem in generate grid
- 8/3/00 JC
- - fixup to im_system() temp dir
- 7/3/00 JC
- - added im_system()
- - small tidies
- 1/3/00 JC
- - better plugin test in configure.in
- 26/2/00 JC
- - fixes to Makefile.am in ip/src* and configure.in, to help ip find the right
- gtk includes on systems with more than one gtk-xxx installed
- 21/2/00 JC
- - now builds ip and ip_gtk2
- 16/2/00 JC
- - configure.in fixes for xil and some TIFF/JPEG strangeness
- 15/2/00 JC
- - im_global_balancef() was broken! d'oh
- - note in README about enabling video cards
- 10/2/00 JC
- - configure now searches for xil ... FIND_XIL macro
- - im_zoom() spots integer overflow
- - better shape set on region drag end in ip
- - better zoom-too-far handling in ip
- 13/1/00 JC
- - fixes to configure etc. to help cygwin
- - jpeg is now searched for too ... FIND_JPEG macro
- 10/1/00 JC
- - global_balance() now uses new affine() atuff
- 27/12/99 JC
- - mosaic1 stuff now uses new affine() funcs
- 21/12/99 JC
- - added Joe's docs
- - im_LabS2LabQ() rounding on a/b slightly broken for a/b == 0
- 20/12/99 JC
- - new function: im_affine()
- - similarity*() now in terms of affine()
- - tests for error return in reduce.c from maplut
- - small clean-ups
- 15/12/99
- - im_version() added, new iofuncs package for it
- - ip did not call zero-input-arg vips functions
- - vips.c did not like zero-input-arg functions
- 6/12/99 JC
- - Sobel filter was a bit broken
- 3/12/99 JC
- - menu reorganisation
- - generate gauss mask dialog
- 2/12/99 JC
- - reworked text file IO, better error messages
- 1/12/99 JC
- - reworked .iprc filename stuff, cleaner
- 30/11/99 JC
- - better menu set switcher in calc preferences
- - ip now thinks it's 7.7
- - did a spellcheck on the ip guide
- 29/11/99 JC
- - 7.7 started!
- - srgb D65->D50 converter
- - Negate added to arith
- - find similar pixel value dialog
- - find similar colour dialog
- - paste into background dialog
- 19/11/99 JC
- - adjust labq was missing
- - shrink image defaulted to /2 not /1
- - sharpdropshadow broken
- - Rotate.* broken
- - vips-7.6.3 release
- 18/11/99 JC
- - ip didn't report space free on >2GB filesystems correctly
- - ip did not link statically against libXpm on solaris7
- 17/11/99 JC
- - im_histplot() failed for all 0's histogram
- - new profile_image dialog
- - man pages for im_sRGB2XYZ/im_XYZ2sRGB were broken
- - new colourize image dialog
- - new shrink image image dialog
- - new expand image image dialog
- - better doc Makefiles
- 16/11/99 JC
- - more menu reorganising
- - new image_to_mask/mask_to_image buttons
- - new match_two_images dialog
- - new measure_colour_chart dialog
- 15/11/99 JC
- - new custom LABQ sharpen in Image menu
- - configure support for SGI video (thanks Ruven)
- - menu fiddling in ip
- - new "resize canvas" menu item
- - im_insert_noexpand() added, no docs tho'
- 11/11/99 JC
- - new ip menu item: Image=>Adjust white/black/saturation of LabQ
- - fixed bug in decompose complex number
- - browse-icons now ignores errors
- - better error msg for "12 12" etc cases
- 10/11/99 JC
- - open hi-res gives proper error msg if no file found
- - made file-select boxes a bit more compact and clearer
- - updated configure.in for vips-examples-7.6
- 9/11/99 JC
- - new column start point moved
- - vdump now defaults to subsample 1, portrait
- - navigation boxes were broken
- - no longer shrink-to-fit if loading as high res
- - better positioning of zoom windows
- - removed some old cruft
- 8/11/99 JC
- - ooops, im_remainder() got lost somehow
- - refguide converted to latex and updated
- - cppguide updated
- 5/11/99 JC
- - libguide converted to latex and updated
- 4/11/99 JC
- - ip guide now latex2htmls cleanly ... still needs updating tho'
- - cpp/app guide latex2html redone
- 2/11/99 JC
- - configure no longer adds -32 to IRIX builds for you
- - some more stuff in README
- - simple DEBUGM malloc tracking, made libsrc/iofuncs/memory.c
- - changed im_malloc() to return void *
- - removed duplicate im_malloc() proto from util.h
- - changed all malloc/free to go through im_malloc()/im_free()
- 23/10/99 JC
- - double-click on error image now pops a load browser and an error dialog
- - add-new-column no longer scrolls to right edge of workspace
- - better scroll-to-bottom on item add
- - load ws twice does not cause 'already open' errors
- - memorise directory button in fsb
- 18/10/99 JC
- - new FIND_TIFF/FIND_MOTIF macros for acinclude.m4
- - new ./configure switches, see ./configure --help
- - enabled static libs
- 8/10/99
- - broke action_proc_bop() into smaller functions, stops bad code gen on
- gcc2.95.1 (and others, prolly)
- - restored old Makefiles in doc/src/ipguide
- - vips7.6 script renamed as vips-7.6
- 5/10/99
- - replace image was broken
- - some menu reorganisation
- - 'reload all menus' button
- 4/10/99
- - computed regions in ip were broken
- - updated system.iprc defaults
- - new menu item: adjust white/black points
- 2/10/99
- - browse icons was broken
- - greyscale 16-bit tiled tiff was broken
- - extra mutex locks for TIFF*() in im_tiff2vips()
- 1/10/99
- - some automake probs fixed
- - squished two ip bugs
- 30/9/99
- - fixed problem with pthreads, now works on suse6.2 as well
- - new API stuff for threaded evaluation with im_threadgroup_t
- - new public interface provide platform independent threads/locks/semaphores
- - no error box if you zoom out too far now
- 26/9/99
- - lr/tb merge blend was not quite right ... should be smoother now
- - histplot broken for float images
- 24/9/99
- - better mono->labq converter
- - more portable ispoweroftwo detect for freq filter stuff
- 23/9/99
- - better graphics expose handling
- 17/9/99
- - >/< stuff in ip was a bit mixed up
- - ink preview fixed for mono images
- - help popup fixed
- 15/9/99
- - linedetect and sobel filters for ip, thnx Kirk
- 14/9/99
- - Find_histogram was broken
- - im_profile() man pages was broken
- - ooops, ip had old set of macros
- 10/9/99
- - im_and/im_or/im_eor now work for any integer type
- Summer hols: (2nd half August '99)
- - initial heap block larger to avoid start gcs
- - def slicer fixed
- - larger max heap
- - toolkits with initial '_' hidden by default
- - custom recomb
- - dialog.def removed
- - ... other menu fixes
- - generate grid menu
- - im_remainder() added
- - new cursor change code, hglass rotates during comp!
- - dialog.c handles cursor changes better
- - rubber band in paintbox displays
- - mag widget stays on right!
- - undo/redo single pixel paint ops
- - heap size control from prefs
- - cancel for reductions as well as for image calc
- - browse stuff reworked, no more .icon.v files
- - save stops you overwriting open .v files
- - better animate_countdown() handling
- - better resize behaviour for bars added to images
- - better code generation, bug fixed in state tracking
- - auto recover from crash
|