CHANGES.rst 148 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421
  1. Changelog (Pillow)
  2. ==================
  3. 6.2.2 (2020-01-02)
  4. ------------------
  5. - This is the last Pillow release to support Python 2.7 #3642
  6. - Overflow checks for realloc for tiff decoding. CVE TBD
  7. [wiredfool, radarhere]
  8. - Catch SGI buffer overrun. CVE TBD
  9. [radarhere]
  10. - Catch PCX P mode buffer overrun. CVE TBD
  11. [radarhere]
  12. - Catch FLI buffer overrun. CVE TBD
  13. [radarhere]
  14. - Raise an error for an invalid number of bands in FPX image. CVE-2019-19911
  15. [wiredfool, radarhere]
  16. 6.2.1 (2019-10-21)
  17. ------------------
  18. - Add support for Python 3.8 #4141
  19. [hugovk]
  20. 6.2.0 (2019-10-01)
  21. ------------------
  22. - Catch buffer overruns #4104
  23. [radarhere]
  24. - Initialize rows_per_strip when RowsPerStrip tag is missing #4034
  25. [cgohlke, radarhere]
  26. - Raise error if TIFF dimension is a string #4103
  27. [radarhere]
  28. - Added decompression bomb checks #4102
  29. [radarhere]
  30. - Fix ImageGrab.grab DPI scaling on Windows 10 version 1607+ #4000
  31. [nulano, radarhere]
  32. - Corrected negative seeks #4101
  33. [radarhere]
  34. - Added argument to capture all screens on Windows #3950
  35. [nulano, radarhere]
  36. - Updated warning to specify when Image.frombuffer defaults will change #4086
  37. [radarhere]
  38. - Changed WindowsViewer format to PNG #4080
  39. [radarhere]
  40. - Use TIFF orientation #4063
  41. [radarhere]
  42. - Raise the same error if a truncated image is loaded a second time #3965
  43. [radarhere]
  44. - Lazily use ImageFileDirectory_v1 values from Exif #4031
  45. [radarhere]
  46. - Improved HSV conversion #4004
  47. [radarhere]
  48. - Added text stroking #3978
  49. [radarhere, hugovk]
  50. - No more deprecated bdist_wininst .exe installers #4029
  51. [hugovk]
  52. - Do not allow floodfill to extend into negative coordinates #4017
  53. [radarhere]
  54. - Fixed arc drawing bug for a non-whole number of degrees #4014
  55. [radarhere]
  56. - Fix bug when merging identical images to GIF with a list of durations #4003
  57. [djy0, radarhere]
  58. - Fix bug in TIFF loading of BufferedReader #3998
  59. [chadawagner]
  60. - Added fallback for finding ld on MinGW Cygwin #4019
  61. [radarhere]
  62. - Remove indirect dependencies from requirements.txt #3976
  63. [hugovk]
  64. - Depends: Update libwebp to 1.0.3 #3983, libimagequant to 2.12.5 #3993, freetype to 2.10.1 #3991
  65. [radarhere]
  66. - Change overflow check to use PY_SSIZE_T_MAX #3964
  67. [radarhere]
  68. - Report reason for pytest skips #3942
  69. [hugovk]
  70. 6.1.0 (2019-07-01)
  71. ------------------
  72. - Deprecate Image.__del__ #3929
  73. [jdufresne]
  74. - Tiff: Add support for JPEG quality #3886
  75. [olt]
  76. - Respect the PKG_CONFIG environment variable when building #3928
  77. [chewi]
  78. - Use explicit memcpy() to avoid unaligned memory accesses #3225
  79. [DerDakon]
  80. - Improve encoding of TIFF tags #3861
  81. [olt]
  82. - Update Py_UNICODE to Py_UCS4 #3780
  83. [nulano]
  84. - Consider I;16 pixel size when drawing #3899
  85. [radarhere]
  86. - Add TIFFTAG_SAMPLEFORMAT to blocklist #3926
  87. [cgohlke, radarhere]
  88. - Create GIF deltas from background colour of GIF frames if disposal mode is 2 #3708
  89. [sircinnamon, radarhere]
  90. - Added ImageSequence all_frames #3778
  91. [radarhere]
  92. - Use unsigned int to store TIFF IFD offsets #3923
  93. [cgohlke]
  94. - Include CPPFLAGS when searching for libraries #3819
  95. [jefferyto]
  96. - Updated TIFF tile descriptors to match current decoding functionality #3795
  97. [dmnisson]
  98. - Added an ``image.entropy()`` method (second revision) #3608
  99. [fish2000]
  100. - Pass the correct types to PyArg_ParseTuple #3880
  101. [QuLogic]
  102. - Fixed crash when loading non-font bytes #3912
  103. [radarhere]
  104. - Fix SPARC memory alignment issues in Pack/Unpack functions #3858
  105. [kulikjak]
  106. - Added CMYK;16B and CMYK;16N unpackers #3913
  107. [radarhere]
  108. - Fixed bugs in calculating text size #3864
  109. [radarhere]
  110. - Add __main__.py to output basic format and support information #3870
  111. [jdufresne]
  112. - Added variation font support #3802
  113. [radarhere]
  114. - Do not down-convert if image is LA when showing with PNG format #3869
  115. [radarhere]
  116. - Improve handling of PSD frames #3759
  117. [radarhere]
  118. - Improved ICO and ICNS loading #3897
  119. [radarhere]
  120. - Changed Preview application path so that it is no longer static #3896
  121. [radarhere]
  122. - Corrected ttb text positioning #3856
  123. [radarhere]
  124. - Handle unexpected ICO image sizes #3836
  125. [radarhere]
  126. - Fixed bits value for RGB;16N unpackers #3837
  127. [kkopachev]
  128. - Travis CI: Add Fedora 30, remove Fedora 28 #3821
  129. [hugovk]
  130. - Added reading of CMYK;16L TIFF images #3817
  131. [radarhere]
  132. - Fixed dimensions of 1-bit PDFs #3827
  133. [radarhere]
  134. - Fixed opening mmap image through Path on Windows #3825
  135. [radarhere]
  136. - Fixed ImageDraw arc gaps #3824
  137. [radarhere]
  138. - Expand GIF to include frames with extents outside the image size #3822
  139. [radarhere]
  140. - Fixed ImageTk getimage #3814
  141. [radarhere]
  142. - Fixed bug in decoding large images #3791
  143. [radarhere]
  144. - Fixed reading APP13 marker without Photoshop data #3771
  145. [radarhere]
  146. - Added option to include layered windows in ImageGrab.grab on Windows #3808
  147. [radarhere]
  148. - Detect libimagequant when installed by pacman on MingW #3812
  149. [radarhere]
  150. - Fixed raqm layout bug #3787
  151. [radarhere]
  152. - Fixed loading font with non-Unicode path on Windows #3785
  153. [radarhere]
  154. - Travis CI: Upgrade PyPy from 6.0.0 to 7.1.1 #3783
  155. [hugovk, johnthagen]
  156. - Depends: Updated openjpeg to 2.3.1 #3794, raqm to 0.7.0 #3877, libimagequant to 2.12.3 #3889
  157. [radarhere]
  158. - Fix numpy bool bug #3790
  159. [radarhere]
  160. 6.0.0 (2019-04-01)
  161. ------------------
  162. - Python 2.7 support will be removed in Pillow 7.0.0 #3682
  163. [hugovk]
  164. - Add EXIF class #3625
  165. [radarhere]
  166. - Add ImageOps exif_transpose method #3687
  167. [radarhere]
  168. - Added warnings to deprecated CMSProfile attributes #3615
  169. [hugovk]
  170. - Documented reading TIFF multiframe images #3720
  171. [akuchling]
  172. - Improved speed of opening an MPO file #3658
  173. [Glandos]
  174. - Update palette in quantize #3721
  175. [radarhere]
  176. - Improvements to TIFF is_animated and n_frames #3714
  177. [radarhere]
  178. - Fixed incompatible pointer type warnings #3754
  179. [radarhere]
  180. - Improvements to PA and LA conversion and palette operations #3728
  181. [radarhere]
  182. - Consistent DPI rounding #3709
  183. [radarhere]
  184. - Change size of MPO image to match frame #3588
  185. [radarhere]
  186. - Read Photoshop resolution data #3701
  187. [radarhere]
  188. - Ensure image is mutable before saving #3724
  189. [radarhere]
  190. - Correct remap_palette documentation #3740
  191. [radarhere]
  192. - Promote P images to PA in putalpha #3726
  193. [radarhere]
  194. - Allow RGB and RGBA values for new P images #3719
  195. [radarhere]
  196. - Fixed TIFF bug when seeking backwards and then forwards #3713
  197. [radarhere]
  198. - Cache EXIF information #3498
  199. [Glandos]
  200. - Added transparency for all PNG greyscale modes #3744
  201. [radarhere]
  202. - Fix deprecation warnings in Python 3.8 #3749
  203. [radarhere]
  204. - Fixed GIF bug when rewinding to a non-zero frame #3716
  205. [radarhere]
  206. - Only close original fp in __del__ and __exit__ if original fp is exclusive #3683
  207. [radarhere]
  208. - Fix BytesWarning in Tests/test_numpy.py #3725
  209. [jdufresne]
  210. - Add missing MIME types and extensions #3520
  211. [pirate486743186]
  212. - Add I;16 PNG save #3566
  213. [radarhere]
  214. - Add support for BMP RGBA bitfield compression #3705
  215. [radarhere]
  216. - Added ability to set language for text rendering #3693
  217. [iwsfutcmd]
  218. - Only close exclusive fp on Image __exit__ #3698
  219. [radarhere]
  220. - Changed EPS subprocess stdout from devnull to None #3635
  221. [radarhere]
  222. - Add reading old-JPEG compressed TIFFs #3489
  223. [kkopachev]
  224. - Add EXIF support for PNG #3674
  225. [radarhere]
  226. - Add option to set dither param on quantize #3699
  227. [glasnt]
  228. - Add reading of DDS uncompressed RGB data #3673
  229. [radarhere]
  230. - Correct length of Tiff BYTE tags #3672
  231. [radarhere]
  232. - Add DIB saving and loading through Image open #3691
  233. [radarhere]
  234. - Removed deprecated VERSION #3624
  235. [hugovk]
  236. - Fix 'BytesWarning: Comparison between bytes and string' in PdfDict #3580
  237. [jdufresne]
  238. - Do not resize in Image.thumbnail if already the destination size #3632
  239. [radarhere]
  240. - Replace .seek() magic numbers with io.SEEK_* constants #3572
  241. [jdufresne]
  242. - Make ContainerIO.isatty() return a bool, not int #3568
  243. [jdufresne]
  244. - Add support to all transpose operations for I;16 modes #3563, #3741
  245. [radarhere]
  246. - Deprecate support for PyQt4 and PySide #3655
  247. [hugovk, radarhere]
  248. - Add TIFF compression codecs: LZMA, Zstd, WebP #3555
  249. [cgohlke]
  250. - Fixed pickling of iTXt class with protocol > 1 #3537
  251. [radarhere]
  252. - _util.isPath returns True for pathlib.Path objects #3616
  253. [wbadart]
  254. - Remove unnecessary unittest.main() boilerplate from test files #3631
  255. [jdufresne]
  256. - Exif: Seek to IFD offset #3584
  257. [radarhere]
  258. - Deprecate PIL.*ImagePlugin.__version__ attributes #3628
  259. [jdufresne]
  260. - Docs: Add note about ImageDraw operations that exceed image bounds #3620
  261. [radarhere]
  262. - Allow for unknown PNG chunks after image data #3558
  263. [radarhere]
  264. - Changed EPS subprocess stdin from devnull to None #3611
  265. [radarhere]
  266. - Fix possible integer overflow #3609
  267. [cgohlke]
  268. - Catch BaseException for resource cleanup handlers #3574
  269. [jdufresne]
  270. - Improve pytest configuration to allow specific tests as CLI args #3579
  271. [jdufresne]
  272. - Drop support for Python 3.4 #3596
  273. [hugovk]
  274. - Remove deprecated PIL.OleFileIO #3598
  275. [hugovk]
  276. - Remove deprecated ImageOps undocumented functions #3599
  277. [hugovk]
  278. - Depends: Update libwebp to 1.0.2 #3602
  279. [radarhere]
  280. - Detect MIME types #3525
  281. [radarhere]
  282. 5.4.1 (2019-01-06)
  283. ------------------
  284. - File closing: Only close __fp if not fp #3540
  285. [radarhere]
  286. - Fix build for Termux #3529
  287. [pslacerda]
  288. - PNG: Detect MIME types #3525
  289. [radarhere]
  290. - PNG: Handle IDAT chunks after image end #3532
  291. [radarhere]
  292. 5.4.0 (2019-01-01)
  293. ------------------
  294. - Docs: Improved ImageChops documentation #3522
  295. [radarhere]
  296. - Allow RGB and RGBA values for P image putpixel #3519
  297. [radarhere]
  298. - Add APNG extension to PNG plugin #3501
  299. [pirate486743186, radarhere]
  300. - Lookup ld.so.cache instead of hardcoding search paths #3245
  301. [pslacerda]
  302. - Added custom string TIFF tags #3513
  303. [radarhere]
  304. - Improve setup.py configuration #3395
  305. [diorcety]
  306. - Read textual chunks located after IDAT chunks for PNG #3506
  307. [radarhere]
  308. - Performance: Don't try to hash value if enum is empty #3503
  309. [Glandos]
  310. - Added custom int and float TIFF tags #3350
  311. [radarhere]
  312. - Fixes for issues reported by static code analysis #3393
  313. [frenzymadness]
  314. - GIF: Wait until mode is normalized to copy im.info into encoderinfo #3187
  315. [radarhere]
  316. - Docs: Add page of deprecations and removals #3486
  317. [hugovk]
  318. - Travis CI: Upgrade PyPy from 5.8.0 to 6.0 #3488
  319. [hugovk]
  320. - Travis CI: Allow lint job to fail #3467
  321. [hugovk]
  322. - Resolve __fp when closing and deleting #3261
  323. [radarhere]
  324. - Close exclusive fp before discarding #3461
  325. [radarhere]
  326. - Updated open files documentation #3490
  327. [radarhere]
  328. - Added libjpeg_turbo to check_feature #3493
  329. [radarhere]
  330. - Change color table index background to tuple when saving as WebP #3471
  331. [radarhere]
  332. - Allow arbitrary number of comment extension subblocks #3479
  333. [radarhere]
  334. - Ensure previous FLI frame is loaded before seeking to the next #3478
  335. [radarhere]
  336. - ImageShow improvements #3450
  337. [radarhere]
  338. - Depends: Update libimagequant to 2.12.2 #3442, libtiff to 4.0.10 #3458, libwebp to 1.0.1 #3468, Tk Tcl to 8.6.9 #3465
  339. [radarhere]
  340. - Check quality_layers type #3464
  341. [radarhere]
  342. - Add context manager, __del__ and close methods to TarIO #3455
  343. [radarhere]
  344. - Test: Do not play sound when running screencapture command #3454
  345. [radarhere]
  346. - Close exclusive fp on open exception #3456
  347. [radarhere]
  348. - Only close existing fp in WebP if fp is exclusive #3418
  349. [radarhere]
  350. - Docs: Re-add the downloads badge #3443
  351. [hugovk]
  352. - Added negative index to PixelAccess #3406
  353. [Nazime]
  354. - Change tuple background to global color table index when saving as GIF #3385
  355. [radarhere]
  356. - Test: Improved ImageGrab tests #3424
  357. [radarhere]
  358. - Flake8 fixes #3422, #3440
  359. [radarhere, hugovk]
  360. - Only ask for YCbCr->RGB libtiff conversion for jpeg-compressed tiffs #3417
  361. [kkopachev]
  362. - Optimise ImageOps.fit by combining resize and crop #3409
  363. [homm]
  364. 5.3.0 (2018-10-01)
  365. ------------------
  366. - Changed Image size property to be read-only by default #3203
  367. [radarhere]
  368. - Add warnings if image file identification fails due to lack of WebP support #3169
  369. [radarhere, hugovk]
  370. - Hide the Ghostscript progress dialog popup on Windows #3378
  371. [hugovk]
  372. - Adding support to reading tiled and YcbCr jpeg tiffs through libtiff #3227
  373. [kkopachev]
  374. - Fixed None as TIFF compression argument #3310
  375. [radarhere]
  376. - Changed GIF seek to remove previous info items #3324
  377. [radarhere]
  378. - Improved PDF document info #3274
  379. [radarhere]
  380. - Add line width parameter to rectangle and ellipse-based shapes #3094
  381. [hugovk, radarhere]
  382. - Fixed decompression bomb check in _crop #3313
  383. [dinkolubina, hugovk]
  384. - Added support to ImageDraw.floodfill for non-RGB colors #3377
  385. [radarhere]
  386. - Tests: Avoid catching unexpected exceptions in tests #2203
  387. [jdufresne]
  388. - Use TextIOWrapper.detach() instead of NoCloseStream #2214
  389. [jdufresne]
  390. - Added transparency to matrix conversion #3205
  391. [radarhere]
  392. - Added ImageOps pad method #3364
  393. [radarhere]
  394. - Give correct extrema for I;16 format images #3359
  395. [bz2]
  396. - Added PySide2 #3279
  397. [radarhere]
  398. - Corrected TIFF tags #3369
  399. [radarhere]
  400. - CI: Install CFFI and pycparser without any PYTHONOPTIMIZE #3374
  401. [hugovk]
  402. - Read/Save RGB webp as RGB (instead of RGBX) #3298
  403. [kkopachev]
  404. - ImageDraw: Add line joints #3250
  405. [radarhere]
  406. - Improved performance of ImageDraw floodfill method #3294
  407. [yo1995]
  408. - Fix builds with --parallel #3272
  409. [hsoft]
  410. - Add more raw Tiff modes (RGBaX, RGBaXX, RGBAX, RGBAXX) #3335
  411. [homm]
  412. - Close existing WebP fp before setting new fp #3341
  413. [radarhere]
  414. - Add orientation, compression and id_section as TGA save keyword arguments #3327
  415. [radarhere]
  416. - Convert int values of RATIONAL TIFF tags to floats #3338
  417. [radarhere, wiredfool]
  418. - Fix code for PYTHONOPTIMIZE #3233
  419. [hugovk]
  420. - Changed ImageFilter.Kernel to subclass ImageFilter.BuiltinFilter, instead of the other way around #3273
  421. [radarhere]
  422. - Remove unused draw.draw_line, draw.draw_point and font.getabc methods #3232
  423. [hugovk]
  424. - Tests: Added ImageFilter tests #3295
  425. [radarhere]
  426. - Tests: Added ImageChops tests #3230
  427. [hugovk, radarhere]
  428. - AppVeyor: Download lib if not present in pillow-depends #3316
  429. [radarhere]
  430. - Travis CI: Add Python 3.7 and Xenial #3234
  431. [hugovk]
  432. - Docs: Added documentation for NumPy conversion #3301
  433. [radarhere]
  434. - Depends: Update libimagequant to 2.12.1 #3281
  435. [radarhere]
  436. - Add three-color support to ImageOps.colorize #3242
  437. [tsennott]
  438. - Tests: Add LA to TGA test modes #3222
  439. [danpla]
  440. - Skip outline if the draw operation fills with the same colour #2922
  441. [radarhere]
  442. - Flake8 fixes #3173, #3380
  443. [radarhere]
  444. - Avoid deprecated 'U' mode when opening files #2187
  445. [jdufresne]
  446. 5.2.0 (2018-07-01)
  447. ------------------
  448. - Fixed saving a multiframe image as a single frame PDF #3137
  449. [radarhere]
  450. - If a Qt version is already imported, attempt to use it first #3143
  451. [radarhere]
  452. - Fix transform fill color for alpha images #3147
  453. [fozcode]
  454. - TGA: Add support for writing RLE data #3186
  455. [danpla]
  456. - TGA: Read and write LA data #3178
  457. [danpla]
  458. - QuantOctree.c: Remove erroneous attempt to average over an empty range #3196
  459. [tkoeppe]
  460. - Changed ICNS format tests to pass on OS X 10.11 #3202
  461. [radarhere]
  462. - Fixed bug in ImageDraw.multiline_textsize() #3114
  463. [tianyu139]
  464. - Added getsize_multiline support for PIL.ImageFont #3113
  465. [tianyu139]
  466. - Added ImageFile get_format_mimetype method #3190
  467. [radarhere]
  468. - Changed mmap file pointer to use context manager #3216
  469. [radarhere]
  470. - Changed ellipse point calculations to be more evenly distributed #3142
  471. [radarhere]
  472. - Only extract first Exif segment #2946
  473. [hugovk]
  474. - Tests: Test ImageDraw2, WalImageFile #3135, #2989
  475. [hugovk]
  476. - Remove unnecessary '#if 0' code #3075
  477. [hugovk]
  478. - Tests: Added GD tests #1817
  479. [radarhere]
  480. - Fix collections ABCs DeprecationWarning in Python 3.7 #3123
  481. [hugovk]
  482. - unpack_from is faster than unpack of slice #3201
  483. [landfillbaby]
  484. - Docs: Add coordinate system links and file handling links in documentation #3204, #3214
  485. [radarhere]
  486. - Tests: TestFilePng: Fix test_save_l_transparency() #3182
  487. [danpla]
  488. - Docs: Correct argument name #3171
  489. [radarhere]
  490. - Docs: Update CMake download URL #3166
  491. [radarhere]
  492. - Docs: Improve Image.transform documentation #3164
  493. [radarhere]
  494. - Fix transform fillcolor argument when image mode is RGBA or LA #3163
  495. [radarhere]
  496. - Tests: More specific Exception testing #3158
  497. [radarhere]
  498. - Add getrgb HSB/HSV color strings #3148
  499. [radarhere]
  500. - Allow float values in getrgb HSL color string #3146
  501. [radarhere]
  502. - AppVeyor: Upgrade to Python 2.7.15 and 3.4.4 #3140
  503. [radarhere]
  504. - AppVeyor: Upgrade to PyPy 6.0.0 #3133
  505. [hugovk]
  506. - Deprecate PILLOW_VERSION and VERSION #3090
  507. [hugovk]
  508. - Support Python 3.7 #3076
  509. [hugovk]
  510. - Depends: Update freetype to 2.9.1, libjpeg to 9c, libwebp to 1.0.0 #3121, #3136, #3108
  511. [radarhere]
  512. - Build macOS wheels with Xcode 6.4, supporting older macOS versions #3068
  513. [wiredfool]
  514. - Fix _i2f compilation on some GCC versions #3067
  515. [homm]
  516. - Changed encoderinfo to have priority over info when saving GIF images #3086
  517. [radarhere]
  518. - Rename PIL.version to PIL._version and remove it from module #3083
  519. [homm]
  520. - Enable background colour parameter on rotate #3057
  521. [storesource]
  522. - Remove unnecessary ``#if 1`` directive #3072
  523. [jdufresne]
  524. - Remove unused Python class, Path #3070
  525. [jdufresne]
  526. - Fix dereferencing type-punned pointer will break strict-aliasing #3069
  527. [jdufresne]
  528. 5.1.0 (2018-04-02)
  529. ------------------
  530. - Close fp before return in ImagingSavePPM #3061
  531. [kathryndavies]
  532. - Added documentation for ICNS append_images #3051
  533. [radarhere]
  534. - Docs: Move intro text below its header #3021
  535. [hugovk]
  536. - CI: Rename appveyor.yml as .appveyor.yml #2978
  537. [hugovk]
  538. - Fix TypeError for JPEG2000 parser feed #3042
  539. [hugovk]
  540. - Certain corrupted jpegs can result in no data read #3023
  541. [kkopachev]
  542. - Add support for BLP file format #3007
  543. [jleclanche]
  544. - Simplify version checks #2998
  545. [hugovk]
  546. - Fix "invalid escape sequence" warning on Python 3.6+ #2996
  547. [timgraham]
  548. - Allow append_images to set .icns scaled images #3005
  549. [radarhere]
  550. - Support appending to existing PDFs #2965
  551. [vashek]
  552. - Fix and improve efficient saving of ICNS on macOS #3004
  553. [radarhere]
  554. - Build: Enable pip cache in AppVeyor build #3009
  555. [thijstriemstra]
  556. - Trim trailing whitespace #2985
  557. [Metallicow]
  558. - Docs: Correct reference to Image.new method #3000
  559. [radarhere]
  560. - Rearrange ImageFilter classes into alphabetical order #2990
  561. [radarhere]
  562. - Test: Remove duplicate line #2983
  563. [radarhere]
  564. - Build: Update AppVeyor PyPy version #3003
  565. [radarhere]
  566. - Tiff: Open 8 bit Tiffs with 5 or 6 channels, discarding extra channels #2938
  567. [homm]
  568. - Readme: Added Twitter badge #2930
  569. [hugovk]
  570. - Removed __main__ code from ImageCms #2942
  571. [radarhere]
  572. - Test: Changed assert statements to unittest calls #2961
  573. [radarhere]
  574. - Depends: Update libimagequant to 2.11.10, raqm to 0.5.0, freetype to 2.9 #3036, #3017, #2957
  575. [radarhere]
  576. - Remove _imaging.crc32 in favor of builtin Python crc32 implementation #2935
  577. [wiredfool]
  578. - Move Tk directory to src directory #2928
  579. [hugovk]
  580. - Enable pip cache in Travis CI #2933
  581. [jdufresne]
  582. - Remove unused and duplicate imports #2927
  583. [radarhere]
  584. - Docs: Changed documentation references to 2.x to 2.7 #2921
  585. [radarhere]
  586. - Fix memory leak when opening webp files #2974
  587. [wiredfool]
  588. - Setup: Fix "TypeError: 'NoneType' object is not iterable" for PPC and CRUX #2951
  589. [hugovk]
  590. - Setup: Add libdirs for ppc64le and armv7l #2968
  591. [nehaljwani]
  592. 5.0.0 (2018-01-01)
  593. ------------------
  594. - Docs: Added docstrings from documentation #2914
  595. [radarhere]
  596. - Test: Switch from nose to pytest #2815
  597. [hugovk]
  598. - Rework Source directory layout, preventing accidental import of PIL. #2911
  599. [wiredfool]
  600. - Dynamically link libraqm #2753
  601. [wiredfool]
  602. - Removed scripts directory #2901
  603. [wiredfool]
  604. - TIFF: Run all compressed tiffs through libtiff decoder #2899
  605. [wiredfool]
  606. - GIF: Add disposal option when saving GIFs #2902
  607. [linnil1, wiredfool]
  608. - EPS: Allow for an empty line in EPS header data #2903
  609. [radarhere]
  610. - PNG: Add support for sRGB and cHRM chunks, permit sRGB when no iCCP chunk present #2898
  611. [wiredfool]
  612. - Dependencies: Update Tk Tcl to 8.6.8 #2905
  613. [radarhere]
  614. - Decompression bomb error now raised for images 2x larger than a decompression bomb warning #2583
  615. [wiredfool]
  616. - Test: avoid random failure in test_effect_noise #2894
  617. [hugovk]
  618. - Increased epsilon for test_file_eps.py:test_showpage due to Arch update. #2896
  619. [wiredfool]
  620. - Removed check parameter from _save in BmpImagePlugin, PngImagePlugin, ImImagePlugin, PalmImagePlugin, and PcxImagePlugin. #2873
  621. [radarhere]
  622. - Make PngImagePlugin.add_text() zip argument type bool #2890
  623. [jdufresne]
  624. - Depends: Updated libwebp to 0.6.1 #2880
  625. [radarhere]
  626. - Remove unnecessary bool() calls in Image.registered_extensions and skipKnownBadTests #2891
  627. [jdufresne]
  628. - Fix count of BITSPERSAMPLE items in broken TIFF files #2883
  629. [homm]
  630. - Fillcolor parameter for Image.Transform #2852
  631. [wiredfool]
  632. - Test: Display differences for test failures #2862
  633. [wiredfool]
  634. - Added executable flag to file with shebang line #2884
  635. [radarhere]
  636. - Setup: Specify compatible Python versions for pip #2877
  637. [hugovk]
  638. - Dependencies: Updated libimagequant to 2.11.4 #2878
  639. [radarhere]
  640. - Setup: Warn if trying to install for Py3.7 on Windows #2855
  641. [hugovk]
  642. - Doc: Fonts can be loaded from a file-like object, not just filename #2861
  643. [robin-norwood]
  644. - Add eog support for Ubuntu Image Viewer #2864
  645. [NafisFaysal]
  646. - Test: Test on 3.7-dev on Travis CI #2870
  647. [hugovk]
  648. - Dependencies: Update libtiff to 4.0.9 #2871
  649. [radarhere]
  650. - Setup: Replace deprecated platform.dist with file existence check #2869
  651. [wiredfool]
  652. - Build: Fix setup.py on Debian #2853
  653. [wiredfool]
  654. - Docs: Correct error in ImageDraw documentation #2858
  655. [meribold]
  656. - Test: Drop Ubuntu Precise, Fedora 24, Fedora 25, add Fedora 27, Centos 7, Amazon v2 CI Support #2854, #2843, #2895, #2897
  657. [wiredfool]
  658. - Dependencies: Updated libimagequant to 2.11.3 #2849
  659. [radarhere]
  660. - Test: Fix test_image.py to use tempfile #2841
  661. [radarhere]
  662. - Replace PIL.OleFileIO deprecation warning with descriptive ImportError #2833
  663. [hugovk]
  664. - WebP: Add support for animated WebP files #2761
  665. [jd20]
  666. - PDF: Set encoderinfo for images when saving multi-page PDF. Fixes #2804. #2805
  667. [ixio]
  668. - Allow the olefile dependency to be optional #2789
  669. [jdufresne]
  670. - GIF: Permit LZW code lengths up to 12 bits in GIF decode #2813
  671. [wiredfool]
  672. - Fix unterminated string and unchecked exception in _font_text_asBytes. #2825
  673. [wiredfool]
  674. - PPM: Use fixed list of whitespace, rather relying on locale, fixes #272. #2831
  675. [markmiscavage]
  676. - Added support for generators when using append_images #2829, #2835
  677. [radarhere]
  678. - Doc: Correct PixelAccess.rst #2824
  679. [hasahmed]
  680. - Depends: Update raqm to 0.3.0 #2822
  681. [radarhere]
  682. - Docs: Link to maintained version of aggdraw #2809
  683. [hugovk]
  684. - Include license file in the generated wheel packages #2801
  685. [jdufresne]
  686. - Depends: Update openjpeg to 2.3.0 #2791
  687. [radarhere]
  688. - Add option to Makefile to build and install with C coverage #2781
  689. [hugovk]
  690. - Add context manager support to ImageFile.Parser and PngImagePlugin.ChunkStream #2793
  691. [radarhere]
  692. - ImageDraw.textsize: fix zero length error #2788
  693. [wiredfool, hugovk]
  694. 4.3.0 (2017-10-02)
  695. ------------------
  696. - Fix warning on pointer cast in isblock #2775, #2778
  697. [cgohlke]
  698. - Doc: Added macOS High Sierra tested Pillow version #2777
  699. [radarhere]
  700. - Use correct Windows handle type on 64 bit in imagingcms #2774
  701. [cgohlke]
  702. - 64 Bit Windows fix for block storage #2773
  703. [cgohlke]
  704. - Fix "expression result unused" warning #2764
  705. [radarhere]
  706. - Add 16bit Read/Write and RLE read support to SgiImageFile #2769
  707. [jbltx, wiredfool]
  708. - Block & array hybrid storage #2738
  709. [homm]
  710. - Common seek frame position check #1849
  711. [radarhere]
  712. - Doc: Add note about aspect ratio to Image thumbnail script #2281
  713. [wilsonge]
  714. - Fix ValueError: invalid version number '1.0.0rc1' in scipy release candidate #2771
  715. [cgohlke]
  716. - Unfreeze requirements.txt #2766
  717. [hugovk]
  718. - Test: ResourceWarning tests #2756
  719. [hugovk]
  720. - Use n_frames to determine is_animated if possible #2315
  721. [radarhere]
  722. - Doc: Corrected parameters in documentation #2768
  723. [radarhere]
  724. - Avoid unnecessary Image operations #1891
  725. [radarhere]
  726. - Added register_extensions method #1860
  727. [radarhere]
  728. - Fix TIFF support for I;16S, I;16BS, and I;32BS rawmodes #2748
  729. [wiredfool]
  730. - Fixed doc syntax in ImageDraw #2752
  731. [radarhere]
  732. - Fixed support for building on Windows/msys2. Added Appveyor CI coverage for python3 on msys2 #2746
  733. [wiredfool]
  734. - Fix ValueError in Exif/Tiff IFD #2719
  735. [wiredfool]
  736. - Use pathlib2 for Path objects on Python < 3.4 #2291
  737. [asergi]
  738. - Export only required properties in unsafe_ptrs #2740
  739. [homm]
  740. - Alpha composite fixes #2709
  741. [homm]
  742. - Faster Transpose operations, added 'Transverse' option #2730
  743. [homm]
  744. - Deprecate ImageOps undocumented functions gaussian_blur, gblur, unsharp_mask, usm and box_blur in favor of ImageFilter implementations #2735
  745. [homm]
  746. - Dependencies: Updated freetype to 2.8.1 #2741
  747. [radarhere]
  748. - Bug: Player skipped first image #2742
  749. [radarhere]
  750. - Faster filter operations for Kernel, Gaussian, and Unsharp Mask filters #2679
  751. [homm]
  752. - EPS: Add showpage to force rendering of some EPS images #2636
  753. [kaplun]
  754. - DOC: Fix type of palette parameter in Image.quantize. #2703
  755. [kkopachev]
  756. - DOC: Fix Ico docs to match code #2712
  757. [hugovk]
  758. - Added file pointer save to SpiderImagePlugin #2647
  759. [radarhere]
  760. - Add targa version 2 footer #2713
  761. [jhultgre]
  762. - Removed redundant lines #2714
  763. [radarhere]
  764. - Travis CI: Use default pypy/pypy3 #2721
  765. [hugovk]
  766. - Fix for SystemError when rendering an empty string, added in 4.2.0 #2706
  767. [wiredfool]
  768. - Fix for memory leaks in font handling added in 4.2.0 #2634
  769. [wiredfool]
  770. - Tests: cleanup, more tests. Fixed WMF save handler #2689
  771. [radarhere]
  772. - Removed debugging interface for Image.core.grabclipboard #2708
  773. [radarhere]
  774. - Doc syntax fix #2710
  775. [radarhere]
  776. - Faster packing and unpacking for RGB, LA, and related storage modes #2693
  777. [homm]
  778. - Use RGBX rawmode for RGB JPEG images where possible #1989
  779. [homm]
  780. - Remove palettes from non-palette modes in _new #2704
  781. [wiredfool]
  782. - Delete transparency info when convert'ing RGB/L to RGBA #2633
  783. [olt]
  784. - Code tweaks to ease type annotations #2687
  785. [neiljp]
  786. - Fixed incorrect use of 's#' to byteslike object #2691
  787. [wiredfool]
  788. - Fix JPEG subsampling labels for subsampling=2 #2698
  789. [homm]
  790. - Region of interest (box) for resampling #2254
  791. [homm]
  792. - Basic support for Termux (android) in setup.py #2684
  793. [wiredfool]
  794. - Bug: Fix Image.fromarray for numpy.bool type. #2683
  795. [wiredfool]
  796. - CI: Add Fedora 24 and 26 to Docker tests
  797. [wiredfool]
  798. - JPEG: Fix ZeroDivisionError when EXIF contains invalid DPI (0/0). #2667
  799. [vytisb]
  800. - Depends: Updated openjpeg to 2.2.0 #2669
  801. [radarhere]
  802. - Depends: Updated Tk Tcl to 8.6.7 #2668
  803. [radarhere]
  804. - Depends: Updated libimagequant to 2.10.2 #2660
  805. [radarhere]
  806. - Test: Added test for ImImagePlugin tell() #2675
  807. [radarhere]
  808. - Test: Additional tests for SGIImagePlugin #2659
  809. [radarhere]
  810. - New Image.getchannel method #2661
  811. [homm]
  812. - Remove unused im.copy2 and core.copy methods #2657
  813. [homm]
  814. - Fast Image.merge() #2677
  815. [homm]
  816. - Fast Image.split() #2676
  817. [homm]
  818. - Fast image allocation #2655
  819. [homm]
  820. - Storage cleanup #2654
  821. [homm]
  822. - FLI: Use frame count from FLI header #2674
  823. [radarhere]
  824. - Test: Test animated FLI file #2650
  825. [hugovk]
  826. - Bug: Fixed uninitialized memory in bc5 decoding #2648
  827. [ifeherva]
  828. - Moved SgiImagePlugin save error to before the start of write operations #2646
  829. [radarhere]
  830. - Move createfontdatachunk.py so isn't installed globally #2645
  831. [hugovk]
  832. - Bug: Fix unexpected keyword argument 'align' #2641
  833. [hugovk]
  834. - Add newlines to error message for clarity #2640
  835. [hugovk]
  836. - Docs: Updated redirected URL #2637
  837. [radarhere]
  838. - Bug: Fix JPEG DPI when EXIF is invalid #2632
  839. [wiredfool]
  840. - Bug: Fix for font getsize on empty string #2624
  841. [radarhere]
  842. - Docs: Improved ImageDraw documentation #2626
  843. [radarhere]
  844. - Docs: Corrected alpha_composite args documentation #2627
  845. [radarhere]
  846. - Docs: added the description of the filename attribute to images.rst #2621
  847. [dasdachs]
  848. - Dependencies: Updated libimagequant to 2.10.1 #2616
  849. [radarhere]
  850. - PDF: Renamed parameter to not shadow built-in dict #2612
  851. [kijeong]
  852. 4.2.1 (2017-07-06)
  853. ------------------
  854. - CI: Fix version specification and test on CI for PyPy/Windows #2608
  855. [wiredfool]
  856. 4.2.0 (2017-07-01)
  857. ------------------
  858. - Doc: Clarified Image.save:append_images documentation #2604
  859. [radarhere]
  860. - CI: Amazon Linux and Centos6 docker images added to Travis CI #2585
  861. [wiredfool]
  862. - Image.alpha_composite added #2595
  863. [wiredfool]
  864. - Complex Text Support #2576
  865. [ShamsaHamed, Fahad-Alsaidi, wiredfool]
  866. - Added threshold parameter to ImageDraw.floodfill #2599
  867. [nediamond]
  868. - Added dBATCH parameter to ghostscript command #2588
  869. [radarhere]
  870. - JPEG: Adjust buffer size when icc_profile > MAXBLOCK #2596
  871. [Darou]
  872. - Specify Pillow Version in one place #2517
  873. [wiredfool]
  874. - CI: Change the owner of the TRAVIS_BUILD_DIR, fixing broken docker runs #2587
  875. [wiredfool]
  876. - Fix truncated PNG loading for some images, Fix memory leak on truncated PNG images. #2541, #2598
  877. [homm]
  878. - Add decompression bomb check to Image.crop #2410
  879. [wiredfool]
  880. - ImageFile: Ensure that the ``err_code`` variable is initialized in case of exception. #2363
  881. [alexkiro]
  882. - Tiff: Support append_images for saving multipage TIFFs #2406
  883. [blochl]
  884. - Doc: Clarify that draft is only implemented for JPEG and PCD #2409
  885. [wiredfool]
  886. - Test: MicImagePlugin #2447
  887. [hugovk]
  888. - Use round() instead of floor() to eliminate zero coefficients in resample #2558
  889. [homm]
  890. - Remove deprecated code #2549
  891. [hugovk]
  892. - Added append_images to PDF saving #2526
  893. [radarhere]
  894. - Remove unused function core image function new_array #2548
  895. [hugovk]
  896. - Remove unnecessary calls to dict.keys() #2551
  897. [jdufresne]
  898. - Add more ImageDraw.py tests and remove unused Draw.c code #2533
  899. [hugovk]
  900. - Test: More tests for ImageMorph #2554
  901. [hugovk]
  902. - Test: McIDAS area file #2552
  903. [radarhere]
  904. - Update Feature Detection #2520
  905. [wiredfool]
  906. - CI: Update pypy on Travis CI #2573
  907. [hugovk]
  908. - ImageMorph: Fix wrong expected size of MRLs read from disk #2561
  909. [dov]
  910. - Docs: Update install docs for FreeBSD #2546
  911. [wiredfool]
  912. - Build: Ignore OpenJpeg 1.5 on FreeBSD #2544
  913. [melvyn-sopacua]
  914. - Remove 'not yet implemented' methods from PIL 1.1.4 #2538
  915. [hugovk]
  916. - Dependencies: Update FreeType to 2.8, LibTIFF to 4.0.8 and libimagequant to 2.9.1 #2535 #2537 #2540
  917. [radarhere]
  918. - Raise TypeError and not also UnboundLocalError in ImageFile.Parser() #2525
  919. [joshblum]
  920. - Test: Use Codecov for coverage #2528
  921. [hugovk]
  922. - Use PNG for Image.show() #2527
  923. [HinTak, wiredfool]
  924. - Remove WITH_DEBUG compilation flag #2522
  925. [wiredfool]
  926. - Fix return value on parameter parse error in _webp.c #2521
  927. [adw1n]
  928. - Set executable flag on scripts with shebang line #2295
  929. [radarhere]
  930. - Flake8 #2460
  931. [radarhere]
  932. - Doc: Release Process Changes #2516
  933. [wiredfool]
  934. - CI: Added region for s3 deployment on appveyor #2515
  935. [wiredfool]
  936. - Doc: Updated references to point to existing files #2507
  937. [radarhere]
  938. - Return copy on Image crop if crop dimensions match the image #2471
  939. [radarhere]
  940. - Test: Optimize CI speed #2464, #2466
  941. [hugovk]
  942. 4.1.1 (2017-04-28)
  943. ------------------
  944. - Undef PySlice_GetIndicesEx, see https://bugs.python.org/issue29943 #2493
  945. [cgohlke]
  946. - Fix for file with DPI in EXIF but not metadata, and XResolution is an int rather than tuple #2484
  947. [hugovk]
  948. - Docs: Removed broken download counter badge #2487
  949. [hugovk]
  950. - Docs: Fixed rst syntax error #2477
  951. [thebjorn]
  952. 4.1.0 (2017-04-03)
  953. ------------------
  954. - Close files after loading if possible #2330
  955. [homm, wiredfool]
  956. - Fix Image Access to be reloadable when embedding the Python interpreter #2296
  957. [wiredfool, cgohlke]
  958. - Fetch DPI from EXIF if not specified in JPEG header #2449, #2472
  959. [hugovk]
  960. - Removed winbuild checksum verification #2468
  961. [radarhere]
  962. - Git: Set ContainerIO test file as binary #2469
  963. [cgohlke]
  964. - Remove superfluous import of FixTk #2455
  965. [cgohlke)
  966. - Fix import of tkinter/Tkinter #2456
  967. [cgohlke)
  968. - Pure Python Decoders, including Python decoder to fix for MSP images #1938
  969. [wiredfool, hugovk]
  970. - Reorganized GifImagePlugin, fixes #2314. #2374
  971. [radarhere, wiredfool]
  972. - Doc: Reordered operating systems in Compatibility Matrix #2436
  973. [radarhere]
  974. - Test: Additional tests for BufrStub, Eps, Container, GribStub, IPTC, Wmf, XVThumb, ImageDraw, ImageMorph, ImageShow #2425
  975. [radarhere]
  976. - Health fixes #2437
  977. [radarhere]
  978. - Test: Correctness tests ContainerIO, XVThumbImagePlugin, BufrStubImagePlugin, GribStubImagePlugin, FitsStubImagePlugin, Hdf5StubImagePlugin, PixarImageFile, PsdImageFile #2443, #2442, #2441, #2440, #2431, #2430, #2428, #2427
  979. [hugovk]
  980. - Remove unused imports #1822
  981. [radarhere]
  982. - Replaced KeyError catch with dictionary get method #2424
  983. [radarhere]
  984. - Test: Removed unrunnable code in test_image_toqimage #2415
  985. [hugovk]
  986. - Removed use of spaces in TIFF kwargs names, deprecated in 2.7 #1390
  987. [radarhere]
  988. - Removed deprecated ImageDraw setink, setfill, setfont methods #2220
  989. [jdufresne]
  990. - Send unwanted subprocess output to /dev/null #2253
  991. [jdufresne]
  992. - Fix division by zero when creating 0x0 image from numpy array #2419
  993. [hugovk]
  994. - Test: Added matrix convert tests #2381
  995. [hugovk]
  996. - Replaced broken URL to partners.adobe.com #2413
  997. [radarhere]
  998. - Removed unused private functions in setup.py and build_dep.py #2414
  999. [radarhere]
  1000. - Test: Fixed Qt tests for QT5 and saving 1 bit PNG #2394
  1001. [wiredfool]
  1002. - Test: docker builds for Arch and Debian Stretch #2394
  1003. [wiredfool]
  1004. - Updated libwebp to 0.6.0 on appveyor #2395
  1005. [radarhere]
  1006. - More explicit error message when saving to a file with invalid extension #2399
  1007. [ces42]
  1008. - Docs: Update some http urls to https #2403
  1009. [hugovk]
  1010. - Preserve aux/alpha channels when performing Imagecms transforms #2355
  1011. [gunjambi]
  1012. - Test linear and radial gradient effects #2382
  1013. [hugovk]
  1014. - Test ImageDraw.Outline and and ImageDraw.Shape #2389
  1015. [hugovk]
  1016. - Added PySide to ImageQt documentation #2392
  1017. [radarhere]
  1018. - BUG: Empty image mode no longer causes a crash #2380
  1019. [evalapply]
  1020. - Exclude .travis and contents from manifest #2386
  1021. [radarhere]
  1022. - Remove 'MIT-like' from license #2145
  1023. [wiredfool]
  1024. - Tests: Add tests for several Image operations #2379
  1025. [radarhere]
  1026. - PNG: Moved iCCP chunk before PLTE chunk when saving as PNG, restricted chunks known value/ordering #2347
  1027. [radarhere]
  1028. - Default to inch-interpretation for missing ResolutionUnit in TiffImagePlugin #2365
  1029. [lambdafu]
  1030. - Bug: Fixed segfault when using ImagingTk on pypy Issue #2376, #2359.
  1031. [wiredfool]
  1032. - Bug: Fixed Integer overflow using ImagingTk on 32 bit platforms #2359
  1033. [wiredfool, QuLogic]
  1034. - Tests: Added docker images for testing alternate platforms. See also https://github.com/python-pillow/docker-images. #2368
  1035. [wiredfool]
  1036. - Removed PIL 1.0 era TK readme that concerns Windows 95/NT #2360
  1037. [wiredfool]
  1038. - Prevent ``nose -v`` printing docstrings #2369
  1039. [hugovk]
  1040. - Replaced absolute PIL imports with relative imports #2349
  1041. [radarhere]
  1042. - Added context managers for file handling #2307
  1043. [radarhere]
  1044. - Expose registered file extensions in Image #2343
  1045. [iggomez, radarhere]
  1046. - Make mode descriptor cache initialization thread-safe. #2351
  1047. [gunjambi]
  1048. - Updated Windows test dependencies: Freetype 2.7.1, zlib 1.2.11 #2331, #2332, #2357
  1049. [radarhere]
  1050. - Followed upstream pngquant packaging reorg to libimagquant #2354
  1051. [radarhere]
  1052. - Fix invalid string escapes #2352
  1053. [hugovk]
  1054. - Add test for crop operation with no argument #2333
  1055. [radarhere]
  1056. 4.0.0 (2017-01-01)
  1057. ------------------
  1058. - Refactor out postprocessing hack to load_end in PcdImageFile
  1059. [wiredfool]
  1060. - Add center and translate option to Image.rotate. #2328
  1061. [lambdafu]
  1062. - Test: Relax WMF test condition, fixes #2323. #2327
  1063. [wiredfool]
  1064. - Allow 0 size images, Fixes #2259, Reverts to pre-3.4 behavior. #2262
  1065. [wiredfool]
  1066. - SGI: Save uncompressed SGI/BW/RGB/RGBA files #2325
  1067. [jbltx]
  1068. - Depends: Updated pngquant to 2.8.2 #2319
  1069. [radarhere]
  1070. - Test: Added correctness tests for opening SGI images #2324
  1071. [wiredfool]
  1072. - Allow passing a list or tuple of individual frame durations when saving a GIF #2298
  1073. [Xdynix]
  1074. - Unified different GIF optimize conditions #2196
  1075. [radarhere]
  1076. - Build: Refactor dependency installation #2305
  1077. [hugovk]
  1078. - Test: Add python 3.6 to travis, tox #2304
  1079. [hugovk]
  1080. - Test: Fix coveralls coverage for Python+C #2300
  1081. [hugovk]
  1082. - Remove executable bit and shebang from OleFileIO.py #2308
  1083. [jwilk, radarhere]
  1084. - PyPy: Buffer interface workaround #2294
  1085. [wiredfool]
  1086. - Test: Switch to Ubuntu Trusty 14.04 on Travis CI #2294
  1087. - Remove vendored version of olefile Python package in favor of upstream #2199
  1088. [jdufresne]
  1089. - Updated comments to use print as a function #2234
  1090. [radarhere]
  1091. - Set executable flag on selftest.py, setup.py and added shebang line #2282, #2277
  1092. [radarhere, homm]
  1093. - Test: Increase epsilon for FreeType 2.7 as rendering is slightly different. #2286
  1094. [hugovk]
  1095. - Test: Faster assert_image_similar #2279
  1096. [homm]
  1097. - Removed deprecated internal "stretch" method #2276
  1098. [homm]
  1099. - Removed the handles_eof flag in decode.c #2223
  1100. [wiredfool]
  1101. - Tiff: Fix for writing Tiff to BytesIO using libtiff #2263
  1102. [wiredfool]
  1103. - Doc: Design docs #2269
  1104. [wiredfool]
  1105. - Test: Move tests requiring libtiff to test_file_libtiff #2273
  1106. [wiredfool]
  1107. - Update Maxblock heuristic #2275
  1108. [wiredfool]
  1109. - Fix for 2-bit palette corruption #2274
  1110. [pdknsk, wiredfool]
  1111. - Tiff: Update info.icc_profile when using libtiff reader. #2193
  1112. [lambdafu]
  1113. - Test: Fix bug in test_ifd_rational_save when libtiff is not available #2270
  1114. [ChristopherHogan]
  1115. - ICO: Only save relevant sizes #2267
  1116. [hugovk]
  1117. - ICO: Allow saving .ico files of 256x256 instead of 255x255 #2265
  1118. [hugovk]
  1119. - Fix TIFFImagePlugin ICC color profile saving. #2087
  1120. [cskau]
  1121. - Doc: Improved description of ImageOps.deform resample parameter #2256
  1122. [radarhere]
  1123. - EMF: support negative bounding box coordinates #2249
  1124. [glexey]
  1125. - Close file if opened in WalImageFile #2216
  1126. [radarhere]
  1127. - Use Image._new() instead of _makeself() #2248
  1128. [homm]
  1129. - SunImagePlugin fixes #2241
  1130. [wiredfool]
  1131. - Use minimal scale for jpeg drafts #2240
  1132. [homm]
  1133. - Updated dependency scripts to use FreeType 2.7, OpenJpeg 2.1.2, WebP 0.5.2 and Tcl/Tk 8.6.6 #2235, #2236, #2237, #2290, #2302
  1134. [radarhere]
  1135. - Fix "invalid escape sequence" bytestring warnings in Python 3.6 #2186
  1136. [timgraham]
  1137. - Removed support for Python 2.6 and Python 3.2 #2192
  1138. [jdufresne]
  1139. - Setup: Raise custom exceptions when required/requested dependencies are not found #2213
  1140. [wiredfool]
  1141. - Use a context manager in FontFile.save() to ensure file is always closed #2226
  1142. [jdufresne]
  1143. - Fixed bug in saving to fp-objects in Python >= 3.4 #2227
  1144. [radarhere]
  1145. - Use a context manager in ImageFont._load_pilfont() to ensure file is always closed #2232
  1146. [jdufresne]
  1147. - Use generator expressions instead of list comprehension #2225
  1148. [jdufresne]
  1149. - Close file after reading in ImagePalette.load() #2215
  1150. [jdufresne]
  1151. - Changed behaviour of default box argument for paste method to match docs #2211
  1152. [radarhere]
  1153. - Add support for another BMP bitfield #2221
  1154. [jmerdich]
  1155. - Added missing top-level test __main__ #2222
  1156. [radarhere]
  1157. - Replaced range(len()) #2197
  1158. [radarhere]
  1159. - Fix for ImageQt Segfault, fixes #1370 #2182
  1160. [wiredfool]
  1161. - Setup: Close file in setup.py after finished reading #2208
  1162. [jdufresne]
  1163. - Setup: optionally use pkg-config (when present) to detect dependencies #2074
  1164. [garbas]
  1165. - Search for tkinter first in builtins #2210
  1166. [matthew-brett]
  1167. - Tests: Replace try/except/fail pattern with TestCase.assertRaises() #2200
  1168. [jdufresne]
  1169. - Tests: Remove unused, open files at top level of tests #2188
  1170. [jdufresne]
  1171. - Replace type() equality checks with isinstance #2184
  1172. [jdufresne]
  1173. - Doc: Move ICO out of the list of read-only file formats #2180
  1174. [alexwlchan]
  1175. - Doc: Fix formatting, too-short title underlines and malformed table #2175
  1176. [hugovk]
  1177. - Fix BytesWarnings #2172
  1178. [jdufresne]
  1179. - Use Integer division to eliminate deprecation warning. #2168
  1180. [mastermatt]
  1181. - Doc: Update compatibility matrix
  1182. [daavve, wiredfool]
  1183. 3.4.2 (2016-10-18)
  1184. ------------------
  1185. - Fix Resample coefficient calculation #2162
  1186. [homm]
  1187. 3.4.1 (2016-10-04)
  1188. ------------------
  1189. - Allow lists as arguments for Image.new() #2149
  1190. [homm]
  1191. - Fix fix for map.c overflow #2151 (also in 3.3.3)
  1192. [wiredfool]
  1193. 3.4.0 (2016-10-03)
  1194. ------------------
  1195. - Removed Image.core.open_ppm, added negative image size checks in Image.py. #2146
  1196. [wiredfool]
  1197. - Windows build: fetch dependencies from pillow-depends #2095
  1198. [hugovk]
  1199. - Add TIFF save_all writer. #2140
  1200. [lambdafu, vashek]
  1201. - Move libtiff fd duplication to _load_libtiff #2141
  1202. [sekrause]
  1203. - Speed up GIF save optimization step, fixes #2093. #2133
  1204. [wiredfool]
  1205. - Fix for ImageCms Segfault, Issue #2037. #2131
  1206. [wiredfool]
  1207. - Make Image.crop an immediate operation, not lazy. #2138
  1208. [wiredfool]
  1209. - Skip empty values in ImageFileDirectory #2024
  1210. [homm]
  1211. - Force reloading palette when using mmap in ImageFile. #2139
  1212. [lambdafu]
  1213. - Fix "invalid escape sequence" warning in Python 3.6 #2136
  1214. [timgraham]
  1215. - Update documentation about drafts #2137
  1216. [radarhere]
  1217. - Converted documentation parameter format, comments to docstrings #2021
  1218. [radarhere]
  1219. - Fixed typos #2128 #2142
  1220. [radarhere]
  1221. - Renamed references to OS X to macOS #2125 2130
  1222. [radarhere]
  1223. - Use truth value when checking for progressive and optimize option on save #2115, #2129
  1224. [radarhere]
  1225. - Convert DPI to ints when saving as JPEG #2102
  1226. [radarhere]
  1227. - Added append_images parameter to GIF saving #2103
  1228. [radarhere]
  1229. - Speedup paste with masks up to 80% #2015
  1230. [homm]
  1231. - Rewrite DDS decoders in C, add DXT3 and BC7 decoders #2068
  1232. [Mischanix]
  1233. - Fix PyArg_ParseTuple format in getink() #2070
  1234. [arjennienhuis]
  1235. - Fix saving originally missing TIFF tags. #2111
  1236. [anntzer]
  1237. - Allow pathlib.Path in Image.open on Python 2.7 #2110
  1238. [patricksnape]
  1239. - Use modern base64 interface over deprecated #2121
  1240. [hugovk]
  1241. - ImageColor.getrgb hexadecimal RGBA #2114
  1242. [homm]
  1243. - Test fix for bigendian machines #2092
  1244. [wiredfool]
  1245. - Resampling lookups, trailing empty coefficients, precision #2008
  1246. [homm]
  1247. - Add (un)packing between RGBA and BGRa #2057
  1248. [arjennienhuis]
  1249. - Added return for J2k (and fpx) Load to return a pixel access object #2061
  1250. [wiredfool]
  1251. - Skip failing numpy tests on Pypy <= 5.3.1 #2090
  1252. [arjennienhuis]
  1253. - Show warning when trying to save RGBA image as JPEG #2010
  1254. [homm]
  1255. - Respect pixel centers during transform #2022
  1256. [homm]
  1257. - TOC for supported file formats #2056
  1258. [polarize]
  1259. - Fix conversion of bit images to numpy arrays Fixes #350, #2058
  1260. [matthew-brett]
  1261. - Add ImageOps.scale to expand or contract a PIL image by a factor #2011
  1262. [vlmath]
  1263. - Flake8 fixes #2050
  1264. [hugovk]
  1265. - Updated freetype to 2.6.5 on Appveyor builds #2035
  1266. [radarhere]
  1267. - PCX encoder fixes #2023, pr #2041
  1268. [homm]
  1269. - Docs: Windows console prompts are > #2031
  1270. [techtonik]
  1271. - Expose Pillow package version as PIL.__version__ #2027
  1272. [techtonik]
  1273. - Add Box and Hamming filters for resampling #1959
  1274. [homm]
  1275. - Retain a reference to core image object in PyAccess #2009
  1276. [homm]
  1277. 3.3.3 (2016-10-04)
  1278. ------------------
  1279. - Fix fix for map.c overflow #2151
  1280. [wiredfool]
  1281. 3.3.2 (2016-10-03)
  1282. ------------------
  1283. - Fix negative image sizes in Storage.c #2146
  1284. [wiredfool]
  1285. - Fix integer overflow in map.c #2146
  1286. [wiredfool]
  1287. 3.3.1 (2016-08-18)
  1288. ------------------
  1289. - Fix C90 compilation error for Tcl / Tk rewrite #2033
  1290. [matthew-brett]
  1291. - Fix image loading when rotating by 0 deg #2052
  1292. [homm]
  1293. 3.3.0 (2016-07-01)
  1294. ------------------
  1295. - Fixed enums for Resolution Unit and Predictor in TiffTags.py #1998
  1296. [wiredfool]
  1297. - Fix issue converting P mode to LA #1986
  1298. [didrix]
  1299. - Moved test_j2k_overflow to check_j2k_overflow, prevent DOS of our 32bit testing machines #1995
  1300. [wiredfool]
  1301. - Skip CRC checks in PNG files when LOAD_TRUNCATED_IMAGES is enabled #1991
  1302. [kkopachev]
  1303. - Added CMYK mode for opening EPS files #1826
  1304. [radarhere]
  1305. - Docs: OSX build instruction clarification #1994
  1306. [wiredfool]
  1307. - Docs: Filter comparison table #1993
  1308. [homm]
  1309. - Removal of pthread based Incremental.c, new interface for file decoders/encoders to access the python file. Fixes assorted J2k Hangs. #1934
  1310. [wiredfool]
  1311. - Skip unnecessary passes when resizing #1954
  1312. [homm]
  1313. - Removed duplicate code in ImagePalette #1832
  1314. [radarhere]
  1315. - test_imagecms: Reduce precision of extended info due to 32 bit machine precision #1990
  1316. [AbdealiJK]
  1317. - Binary Tiff Metadata/ICC profile. #1988
  1318. [wiredfool]
  1319. - Ignore large text blocks in PNG if LOAD_TRUNCATED_IMAGES is enabled #1970
  1320. [homm]
  1321. - Replace index = index+1 in docs with +=1
  1322. [cclauss]
  1323. - Skip extra 0xff00 in jpeg #1977
  1324. [kkopachev]
  1325. - Use bytearray for palette mutable storage #1985
  1326. [radarhere, wiredfool]
  1327. - Added additional uint modes for Image.fromarray, more extensive tests of fromarray #1984
  1328. [mairsbw, wiredfool]
  1329. - Fix for program importing PyQt4 when PyQt5 also installed #1942
  1330. [hugovk]
  1331. - Changed depends/install_*.sh urls to point to github pillow-depends repo #1983
  1332. [wiredfool]
  1333. - Allow ICC profile from ``encoderinfo`` while saving PNGs #1909
  1334. [homm]
  1335. - Fix integer overflow on ILP32 systems (32-bit Linux). #1975
  1336. [lambdafu]
  1337. - Change function declaration to match Tcl_CmdProc type #1966
  1338. [homm]
  1339. - Integer overflow checks on all calls to *alloc #1781
  1340. [wiredfool]
  1341. - Change equals method on Image so it short circuits #1967
  1342. [mattBoros]
  1343. - Runtime loading of TCL/TK libraries, eliminating build time dependency. #1932
  1344. [matthew-brett]
  1345. - Cleanup of transform methods #1941
  1346. [homm]
  1347. - Fix "Fatal Python error: UNREF invalid object" in debug builds #1936
  1348. [wiredfool]
  1349. - Setup fixes for Alpine linux #1937
  1350. [wiredfool]
  1351. - Split resample into horizontal + vertical passes #1933
  1352. [homm]
  1353. - Box blur with premultiplied alpha #1914
  1354. [homm]
  1355. - Add libimagequant support in quantize() #1889
  1356. [rr-]
  1357. - Added internal Premultiplied luminosity (La) mode #1912
  1358. [homm]
  1359. - Fixed point integer resample #1881
  1360. [homm]
  1361. - Removed docs/BUILDME script #1924
  1362. [radarhere]
  1363. - Moved comments to docstrings #1926
  1364. [hugovk]
  1365. - Include Python.h before wchar.h so _GNU_SOURCE is set consistently #1906
  1366. [hugovk]
  1367. - Updated example decoder in documentation #1899
  1368. [radarhere]
  1369. - Added support for GIF comment extension #1896
  1370. [radarhere]
  1371. - Removed support for pre- 1.5.2 list form of Image info in Image.new #1897
  1372. [radarhere]
  1373. - Fix typos in TIFF tags #1918
  1374. [radarhere]
  1375. - Skip tests that require libtiff if it is not installed #1893 (fixes #1866)
  1376. [wiredfool]
  1377. - Skip test when icc profile is not available, fixes #1887. #1892
  1378. [doko42]
  1379. - Make deprecated functions raise NotImplementedError instead of Exception. #1862, #1890
  1380. [daniel-leicht, radarhere]
  1381. - Replaced os.system with subprocess.call in setup.py #1879
  1382. [radarhere]
  1383. - Corrected Image show documentation #1886
  1384. [radarhere]
  1385. - Added check for executable permissions to ImageShow #1880
  1386. [radarhere]
  1387. - Fixed tutorial code and added explanation #1877
  1388. [radarhere]
  1389. - Added OS X support for ImageGrab grabclipboard #1837
  1390. [radarhere]
  1391. - Combined duplicate code in ImageTk #1856
  1392. [radarhere]
  1393. - Added --disable-platform-guessing option to setup.py build extension #1861
  1394. [angeloc]
  1395. - Fixed loading Transparent PNGs with a transparent black color #1840
  1396. [olt]
  1397. - Add support for LA mode in Image.fromarray #1865
  1398. [pierriko]
  1399. - Make ImageFile load images in read-only mode #1864
  1400. [hdante]
  1401. - Added _accept hook for XVThumbImagePlugin #1853
  1402. [radarhere]
  1403. - Test TIFF with LZW compression #1855, TGA RLE file #1854
  1404. [hugovk]
  1405. - Improved SpiderImagePlugin help text #1863
  1406. [radarhere]
  1407. - Updated Sphinx project description #1870
  1408. [radarhere]
  1409. - Remove support for Python 3.0 from _imaging.c #1851
  1410. [radarhere]
  1411. - Jpeg qtables are unsigned chars #1814, #1921
  1412. [thebostik]
  1413. - Added additional EXIF tags #1841, TIFF Tags #1821
  1414. [radarhere]
  1415. - Changed documentation to refer to ImageSequence Iterator #1833
  1416. [radarhere]
  1417. - Fix Fedora prerequisites in installation docs, depends script #1842
  1418. [living180]
  1419. - Added _accept hook for PixarImagePlugin #1843
  1420. [radarhere]
  1421. - Removed outdated scanner classifier #1823
  1422. [radarhere]
  1423. - Combined identical error messages in _imaging #1825
  1424. [radarhere]
  1425. - Added debug option for setup.py to trace header and library finding #1790
  1426. [wiredfool]
  1427. - Fix doc building on travis #1820, #1844
  1428. [wiredfool]
  1429. - Fix for DIB/BMP images #1813, #1847
  1430. [wiredfool]
  1431. - Add PixarImagePlugin file extension #1809
  1432. [radarhere]
  1433. - Catch struct.errors when verifying png files #1805
  1434. [wiredfool]
  1435. - SpiderImagePlugin: raise an error when seeking in a non-stack file #1794
  1436. [radarhere, jmichalon]
  1437. - Added support for 2/4 bpp Tiff grayscale images #1789
  1438. [zwhfly]
  1439. - Removed unused variable from selftest #1788
  1440. [radarhere]
  1441. - Added warning for as_dict method (deprecated in 3.0.0) #1799
  1442. [radarhere]
  1443. - Removed powf support for older Python versions #1784
  1444. [radarhere]
  1445. - Health fixes #1625 #1903
  1446. [radarhere]
  1447. 3.2.0 (2016-04-01)
  1448. ------------------
  1449. - Added install docs for Fedora 23 and FreeBSD #1729, #1739, #1792
  1450. [koobs, zandermartin, wiredfool]
  1451. - Fixed TIFF multiframe load when the frames have different compression types #1782
  1452. [radarhere, geka000]
  1453. - Added __copy__ method to Image #1772
  1454. [radarhere]
  1455. - Updated dates in PIL license in OleFileIO README #1787
  1456. [radarhere]
  1457. - Corrected Tiff tag names #1786
  1458. [radarhere]
  1459. - Fixed documented name of JPEG property #1783
  1460. [radarhere]
  1461. - Fixed UnboundLocalError when loading a corrupt jpeg2k file #1780
  1462. [wiredfool]
  1463. - Fixed integer overflow in path.c #1773
  1464. [wiredfool, nedwill]
  1465. - Added debug to command line help text for pilprint #1766
  1466. [radarhere]
  1467. - Expose many more fields in ICC Profiles #1756
  1468. [lambdafu]
  1469. - Documentation changes, URL update, transpose, release checklist
  1470. [radarhere]
  1471. - Fixed saving to nonexistant files specified by pathlib.Path objects #1748 (fixes #1747)
  1472. [radarhere]
  1473. - Round Image.crop arguments to the nearest integer #1745 (fixes #1744)
  1474. [hugovk]
  1475. - Fix uninitialized variable warning in _imaging.c:getink #1663 (fixes #486)
  1476. [wiredfool]
  1477. - Disable multiprocessing install on cygwin #1700 (fixes #1690)
  1478. [wiredfool]
  1479. - Fix the error reported when libz is not found #1764
  1480. [wiredfool]
  1481. - More general error check to avoid Symbol not found: _PyUnicodeUCS2_AsLatin1String on OS X #1761
  1482. [wiredfool]
  1483. - Added py35 to tox envlist #1724
  1484. [radarhere]
  1485. - Fix EXIF tag name typos #1736
  1486. [zarlant, radarhere]
  1487. - Updated freetype to 2.6.3, Tk/Tcl to 8.6.5 and 8.5.19 #1725, #1752
  1488. [radarhere]
  1489. - Add a loader for the FTEX format from Independence War 2: Edge of Chaos #1688
  1490. [jleclanche]
  1491. - Improved alpha_composite documentation #1698
  1492. [radarhere]
  1493. - Extend ImageDraw.text method to pass on multiline_text method specific arguments #1647
  1494. [radarhere]
  1495. - Allow ImageSequence to seek to zero #1686
  1496. [radarhere]
  1497. - ImageSequence Iterator is now an iterator #1649
  1498. [radarhere]
  1499. - Updated windows test builds to jpeg9b #1673
  1500. [radarhere]
  1501. - Fixed support for .gbr version 1 images, added support for version 2 in GbrImagePlugin #1653
  1502. [wiredfool]
  1503. - Clarified which YCbCr format is used #1677
  1504. [radarhere]
  1505. - Added TiffTags documentation, Moved windows build documentation to winbuild/ #1667
  1506. [wiredfool]
  1507. - Add tests for OLE file based formats #1678
  1508. [radarhere]
  1509. - Add TIFF IFD test #1671
  1510. [radarhere]
  1511. - Add a basic DDS image plugin with more tests #1654
  1512. [jleclanche, hugovk, wiredfool]
  1513. - Fix incorrect conditional in encode.c #1638
  1514. [manisandro]
  1515. 3.1.2 (2016-04-01)
  1516. ------------------
  1517. - Fixed an integer overflow in Jpeg2KEncode.c causing a buffer overflow. CVE-2016-3076
  1518. [wiredfool]
  1519. 3.1.1 (2016-02-04)
  1520. ------------------
  1521. - Fixed an integer overflow in Resample.c causing writes in the Python heap.
  1522. [nedwill]
  1523. - Fixed a buffer overflow in PcdDecode.c causing a segfault when opening PhotoCD files. CVE-2016-2533
  1524. [wiredfool]
  1525. - Fixed a buffer overflow in FliDecode.c causing a segfault when opening FLI files. CVE-2016-0775
  1526. [wiredfool]
  1527. - Fixed a buffer overflow in TiffDecode.c causing an arbitrary amount of memory to be overwritten when opening a specially crafted invalid TIFF file. CVE-2016-0740
  1528. [wiredfool]
  1529. 3.1.0 (2016-01-04)
  1530. ------------------
  1531. - Fixing test failures on Python 2.6/Windows #1633
  1532. [wiredfool]
  1533. - Limit metadata tags when writing using libtiff #1620
  1534. [wiredfool]
  1535. - Rolling back exif support to pre-3.0 format #1627
  1536. [wiredfool]
  1537. - Fix Divide by zero in Exif, add IFDRational class #1531
  1538. [wiredfool]
  1539. - Catch the IFD error near the source #1622
  1540. [wiredfool]
  1541. - Added release notes for 3.1.0 #1623
  1542. [radarhere]
  1543. - Updated spacing to be consistent between multiline methods #1624
  1544. [radarhere]
  1545. - Let EditorConfig take care of some basic formatting #1489
  1546. [hugovk]
  1547. - Restore gpsexif data to the v1 form #1619
  1548. [wiredfool]
  1549. - Add /usr/local include and library directories for freebsd #1613
  1550. [leforestier]
  1551. - Updated installation docs for new versions of dependencies #1611
  1552. [radarhere]
  1553. - Removed unrunnable test file #1610
  1554. [radarhere]
  1555. - Changed register calls to use format property #1608
  1556. [radarhere]
  1557. - Added field type constants to TiffTags #1596
  1558. [radarhere]
  1559. - Allow saving RowsPerStrip with libtiff #1594
  1560. [wiredfool]
  1561. - Enabled conversion to numpy array for HSV images #1578
  1562. [cartisan]
  1563. - Changed some urls in the docs to use https #1580
  1564. [hugovk]
  1565. - Removed logger.exception from ImageFile.py #1590
  1566. [radarhere]
  1567. - Removed warnings module check #1587
  1568. [radarhere]
  1569. - Changed arcs, chords and pie slices to use floats #1577
  1570. [radarhere]
  1571. - Update unit test asserts #1584, #1598
  1572. [radarhere]
  1573. - Fix command to invoke ghostscript for eps files #1478
  1574. [baumatron, radarhere]
  1575. - Consistent multiline text spacing #1574
  1576. [wiredfool, hugovk]
  1577. - Removed unused lines in BDFFontFile #1530
  1578. [radarhere]
  1579. - Changed ImageQt import of Image #1560
  1580. [radarhere, ericfrederich]
  1581. - Throw TypeError if no cursors were found in .cur file #1556
  1582. [radarhere]
  1583. - Fix crash in ImageTk.PhotoImage on win-amd64 #1553
  1584. [cgohlke]
  1585. - ExtraSamples tag should be a SHORT, not a BYTE #1555
  1586. [Nexuapex]
  1587. - Docs and code health fixes #1565 #1566 #1581 #1586 #1591 #1621
  1588. [radarhere]
  1589. - Updated freetype to 2.6.2 #1564
  1590. [radarhere]
  1591. - Updated WebP to 0.5.0 for Travis #1515 #1609
  1592. [radarhere]
  1593. - Fix missing 'version' key value in __array_interface__ #1519
  1594. [mattip]
  1595. - Replaced os.popen with subprocess.Popen to pilprint script #1523
  1596. [radarhere]
  1597. - Catch OverflowError in SpiderImagePlugin #1545
  1598. [radarhere, MrShark]
  1599. - Fix the definition of icc_profile in TiffTags #1539
  1600. [wiredfool]
  1601. - Remove old _imagingtiff.c and pilplus stuff #1499
  1602. [hugovk]
  1603. - Fix Exception when requiring jpeg #1501
  1604. [hansmosh]
  1605. - Dependency scripts for Debian and Ubuntu #1486
  1606. [wiredfool]
  1607. - Added Usage message to painter script #1482
  1608. [radarhere]
  1609. - Add tag info for iccprofile, fixes #1462. #1465
  1610. [wiredfool]
  1611. - Added some requirements for make release-test #1451
  1612. [wiredfool]
  1613. - Flatten tiff metadata value SAMPLEFORMAT to initial value #1467 (fixes #1466)
  1614. [wiredfool]
  1615. - Fix handling of pathlib in Image.save #1464 (fixes #1460)
  1616. [wiredfool]
  1617. - Make tests more robust #1469
  1618. [hugovk]
  1619. - Use correctly sized pointers for windows handle types #1458
  1620. [nu744]
  1621. 3.0.0 (2015-10-01)
  1622. ------------------
  1623. - Check flush method existence for file-like object #1398
  1624. [mrTable, radarhere]
  1625. - Added PDF multipage saving #1445
  1626. [radarhere]
  1627. - Removed deprecated code, Image.tostring, Image.fromstring, Image.offset, ImageDraw.setink, ImageDraw.setfill, ImageFileIO, ImageFont.FreeTypeFont and ImageFont.truetype ``file`` kwarg, ImagePalette private _make functions, ImageWin.fromstring and ImageWin.tostring #1343
  1628. [radarhere]
  1629. - Load more broken images #1428
  1630. [homm]
  1631. - Require zlib and libjpeg #1439
  1632. [wiredfool]
  1633. - Preserve alpha when converting from a QImage to a Pillow Image by using png instead of ppm #1429
  1634. [ericfrederich]
  1635. - Qt needs 32 bit aligned image data #1430
  1636. [ericfrederich]
  1637. - Tiff ImageFileDirectory rewrite #1419
  1638. [anntzer, wiredfool, homm]
  1639. - Removed spammy debug logging #1423
  1640. [wiredfool]
  1641. - Save as GiF89a with support for animation parameters #1384
  1642. [radarhere]
  1643. - Correct convert matrix docs #1426
  1644. [wiredfool]
  1645. - Catch TypeError in _getexif #1414
  1646. [radarhere, wiredfool]
  1647. - Fix for UnicodeDecodeError in TiffImagePlugin #1416
  1648. [bogdan199, wiredfool]
  1649. - Dedup code in image.open #1415
  1650. [wiredfool]
  1651. - Skip any number extraneous chars at the end of JPEG chunks #1337
  1652. [homm]
  1653. - Single threaded build for pypy3, refactor #1413
  1654. [wiredfool]
  1655. - Fix loading of truncated images with LOAD_TRUNCATED_IMAGES enabled #1366
  1656. [homm]
  1657. - Documentation update for concepts: bands #1406
  1658. [merriam]
  1659. - Add Solaris/SmartOS include and library directories #1356
  1660. [njones11]
  1661. - Improved handling of getink color #1387
  1662. [radarhere]
  1663. - Disable compiler optimizations for topalette and tobilevel functions for all msvc versions #1402 (fixes #1357)
  1664. [cgohlke]
  1665. - Skip ImageFont_bitmap test if _imagingft C module is not installed #1409
  1666. [homm]
  1667. - Add param documentation to ImagePalette #1381
  1668. [bwrsandman]
  1669. - Corrected scripts path #1407
  1670. [radarhere]
  1671. - Updated libtiff to 4.0.6 #1405, #1421
  1672. [radarhere]
  1673. - Updated Platform Support for Yosemite #1403
  1674. [radarhere]
  1675. - Fixed infinite loop on truncated file #1401
  1676. [radarhere]
  1677. - Check that images are L mode in ImageMorph methods #1400
  1678. [radarhere]
  1679. - In tutorial of pasting images, add to mask text #1389
  1680. [merriam]
  1681. - Style/health fixes #1391, #1397, #1417, #1418
  1682. [radarhere]
  1683. - Test on Python 3.5 dev and 3.6 nightly #1361
  1684. [hugovk]
  1685. - Fix fast rotate operations #1373
  1686. [radarhere]
  1687. - Added support for pathlib Path objects to open and save #1372
  1688. [radarhere]
  1689. - Changed register calls to use format property #1333
  1690. [radarhere]
  1691. - Added support for ImageGrab.grab to OS X #1367, #1443
  1692. [radarhere, hugovk]
  1693. - Fixed PSDraw stdout Python 3 compatibility #1365
  1694. [radarhere]
  1695. - Added Python 3.3 to AppVeyor #1363
  1696. [radarhere]
  1697. - Treat MPO with unknown header as base JPEG file #1350
  1698. [hugovk, radarhere]
  1699. - Added various tests #1330, #1344
  1700. [radarhere]
  1701. - More ImageFont tests #1327
  1702. [hugovk]
  1703. - Use logging instead of print #1207
  1704. [anntzer]
  1705. 2.9.0 (2015-07-01)
  1706. ------------------
  1707. - Added test for GimpPaletteFile #1324
  1708. [radarhere]
  1709. - Merged gifmaker script to allow saving of multi-frame GIF images #1320
  1710. [radarhere]
  1711. - Added is_animated property to multi-frame formats #1319
  1712. [radarhere]
  1713. - Fixed ValueError in Python 2.6 #1315 #1316
  1714. [cgohlke, radarhere]
  1715. - Fixed tox test script path #1308
  1716. [radarhere]
  1717. - Added width and height properties #1304
  1718. [radarhere]
  1719. - Update tiff and tk tcl 8.5 versions #1303
  1720. [radarhere, wiredfool]
  1721. - Add functions to convert: Image <-> QImage; Image <-> QPixmap #1217
  1722. [radarhere, rominf]
  1723. - Remove duplicate code in gifmaker script #1294
  1724. [radarhere]
  1725. - Multiline text in ImageDraw #1177
  1726. [allo-, radarhere]
  1727. - Automated Windows CI/build support #1278
  1728. [wiredfool]
  1729. - Removed support for Tk versions earlier than 8.4 #1288
  1730. [radarhere]
  1731. - Fixed polygon edge drawing #1255 (fixes #1252)
  1732. [radarhere]
  1733. - Check prefix length in _accept methods #1267
  1734. [radarhere]
  1735. - Register MIME type for BMP #1277
  1736. [coldmind]
  1737. - Adjusted ImageQt use of unicode() for 2/3 compatibility #1218
  1738. [radarhere]
  1739. - Identify XBM file created with filename including underscore #1230 (fixes #1229)
  1740. [hugovk]
  1741. - Copy image when saving in GifImagePlugin #1231 (fixes #718)
  1742. [radarhere]
  1743. - Removed support for FreeType 2.0 #1247
  1744. [radarhere]
  1745. - Added background saving to GifImagePlugin #1273
  1746. [radarhere]
  1747. - Provide n_frames attribute to multi-frame formats #1261
  1748. [anntzer, radarhere]
  1749. - Add duration and loop set to GifImagePlugin #1172, #1269
  1750. [radarhere]
  1751. - Ico files are little endian #1232
  1752. [wiredfool]
  1753. - Upgrade olefile from 0.30 to 0.42b #1226
  1754. [radarhere, decalage2]
  1755. - Setting transparency value to 0 when the tRNS contains only null byte(s) #1239
  1756. [juztin]
  1757. - Separated out feature checking from selftest #1233
  1758. [radarhere]
  1759. - Style/health fixes
  1760. [radarhere]
  1761. - Update WebP from 0.4.1 to 0.4.3 #1235
  1762. [radarhere]
  1763. - Release GIL during image load (decode) #1224
  1764. [lkesteloot]
  1765. - Added icns save #1185
  1766. [radarhere]
  1767. - Fix putdata memory leak #1196
  1768. [benoit-pierre]
  1769. - Keep user-specified ordering of icon sizes #1193
  1770. [karimbahgat]
  1771. - Tiff: allow writing floating point tag values #1113
  1772. [bpedersen2]
  1773. 2.8.2 (2015-06-06)
  1774. ------------------
  1775. - Bug fix: Fixed Tiff handling of bad EXIF data
  1776. [radarhere]
  1777. 2.8.1 (2015-04-02)
  1778. ------------------
  1779. - Bug fix: Catch struct.error on invalid JPEG, fixes #1163. #1165
  1780. [wiredfool, hugovk]
  1781. 2.8.0 (2015-04-01)
  1782. ------------------
  1783. - Fix 32-bit BMP loading (RGBA or RGBX) #1125
  1784. [artscoop]
  1785. - Fix UnboundLocalError in ImageFile #1131
  1786. [davarisg]
  1787. - Re-enable test image caching #982
  1788. [hugovk, homm]
  1789. - Fix: Cannot identify EPS images #1152 (fixes #1104)
  1790. [hugovk]
  1791. - Configure setuptools to run nosetests, fixes #729
  1792. [aclark4life]
  1793. - Style/health fixes
  1794. [radarhere, hugovk]
  1795. - Add support for HTTP response objects to Image.open() #1151
  1796. [mfitzp]
  1797. - Improve reference docs for PIL.ImageDraw.Draw.pieslice() #1145
  1798. [audreyr]
  1799. - Added copy method font_variant() and accessible properties to truetype() #1123
  1800. [radarhere]
  1801. - Fix ImagingEffectNoise #1128
  1802. [hugovk]
  1803. - Remove unreachable code #1126
  1804. [hugovk]
  1805. - Let Python do the endian stuff + tests #1121
  1806. [amoibos, radarhere]
  1807. - Fix webp decode memory leak #1114
  1808. [benoit-pierre]
  1809. - Fast path for opaque pixels in RGBa unpacker #1088
  1810. [bgilbert]
  1811. - Enable basic support for 'RGBa' raw encoding/decoding #1096
  1812. [immerrr]
  1813. - Fix pickling L mode images with no palette, #1095
  1814. [hugovk]
  1815. - iPython display hook #1091
  1816. [wiredfool]
  1817. - Adjust buffer size when quality=keep #1079 (fixes #148 again)
  1818. [wiredfool]
  1819. - Fix for corrupted bitmaps embedded in truetype fonts #1072
  1820. [jackyyf, wiredfool]
  1821. 2.7.0 (2015-01-01)
  1822. ------------------
  1823. - Split Sane into a separate repo: https://github.com/python-pillow/Sane
  1824. [hugovk]
  1825. - Look for OS X and Linux fonts in common places #1054
  1826. [charleslaw]
  1827. - Fix CVE-2014-9601, potential PNG decompression DOS #1060
  1828. [wiredfool]
  1829. - Use underscores, not spaces, in TIFF tag kwargs #1044, #1058
  1830. [anntzer, hugovk]
  1831. - Update PSDraw for Python3, add tests #1055
  1832. [hugovk]
  1833. - Use Bicubic filtering by default for thumbnails. Don't use Jpeg Draft mode for thumbnails #1029
  1834. [homm]
  1835. - Fix MSVC compiler error: Use Py_ssize_t instead of ssize_t #1051
  1836. [cgohlke]
  1837. - Fix compiler error: MSVC needs variables defined at the start of the block #1048
  1838. [cgohlke]
  1839. - The GIF Palette optimization algorithm is only applicable to mode='P' or 'L' #993
  1840. [moriyoshi]
  1841. - Use PySide as an alternative to PyQt4/5 #1024
  1842. [holg]
  1843. - Replace affine-based im.resize implementation with convolution-based im.stretch #997
  1844. [homm]
  1845. - Replace Gaussian Blur implementation with iterated fast box blur. #961 Note: Radius parameter is interpreted differently than before.
  1846. [homm]
  1847. - Better docs explaining import _imaging failure #1016, build #1017, mode #1018, PyAccess, PixelAccess objects #1019 Image.quantize #1020 and Image.save #1021
  1848. [wiredfool]
  1849. - Fix for saving TIFF image into an io.BytesIO buffer #1011
  1850. [mfergie]
  1851. - Fix antialias compilation on debug versions of Python #1010
  1852. [wiredfool]
  1853. - Fix for Image.putdata segfault #1009
  1854. [wiredfool]
  1855. - Ico save, additional tests #1007
  1856. [exherb]
  1857. - Use PyQt4 if it has already been imported, otherwise prefer PyQt5 #1003
  1858. [AurelienBallier]
  1859. - Speedup resample implementation up to 2.5 times #977
  1860. [homm]
  1861. - Speed up rotation by using cache aware loops, added transpose to rotations #994
  1862. [homm]
  1863. - Fix Bicubic interpolation #970
  1864. [homm]
  1865. - Support for 4-bit greyscale TIFF images #980
  1866. [hugovk]
  1867. - Updated manifest #957
  1868. [wiredfool]
  1869. - Fix PyPy 2.4 regression #958
  1870. [wiredfool]
  1871. - Webp Metadata Skip Test comments #954
  1872. [wiredfool]
  1873. - Fixes for things rpmlint complains about #942
  1874. [manisandro]
  1875. 2.6.2 (2015-01-01)
  1876. ------------------
  1877. - Fix CVE-2014-9601, potential PNG decompression DOS #1060
  1878. [wiredfool]
  1879. - Fix Regression in PyPy 2.4 in streamio #958
  1880. [wiredfool]
  1881. 2.6.1 (2014-10-11)
  1882. ------------------
  1883. - Fix SciPy regression in Image.resize #945
  1884. [wiredfool]
  1885. - Fix manifest to include all test files.
  1886. [aclark4life]
  1887. 2.6.0 (2014-10-01)
  1888. ------------------
  1889. - Relax precision of ImageDraw tests for x86, GimpGradient for PPC #930
  1890. [wiredfool]
  1891. 2.6.0-rc1 (2014-09-29)
  1892. ----------------------
  1893. - Use redistributable image for testing #884
  1894. [hugovk]
  1895. - Use redistributable ICC profiles for testing, skip if not available #923
  1896. [wiredfool]
  1897. - Additional documentation for JPEG info and save options #922
  1898. [wiredfool]
  1899. - Fix JPEG Encoding memory leak when exif or qtables were specified #921
  1900. [wiredfool]
  1901. - Image.tobytes() and Image.tostring() documentation update #916 #917
  1902. [mgedmin]
  1903. - On Windows, do not execute convert.exe without specifying path #912
  1904. [cgohlke]
  1905. - Fix msvc build error #911
  1906. [cgohlke]
  1907. - Fix for handling P + transparency -> RGBA conversions #904
  1908. [wiredfool]
  1909. - Retain alpha in ImageEnhance operations #909
  1910. [wiredfool]
  1911. - Jpeg2k Decode/encode memory leak fix #898
  1912. [joshware, wiredfool]
  1913. - EpsFilePlugin Speed improvements #886
  1914. [wiredfool, karstenw]
  1915. - Don't resize if already the right size #892
  1916. [radarhere]
  1917. - Fix for reading multipage TIFFs #885
  1918. [kostrom, wiredfool]
  1919. - Correctly handle saving gray and CMYK JPEGs with quality=keep #857
  1920. [etienned]
  1921. - Correct duplicate Tiff Metadata and Exif tag values
  1922. [hugovk]
  1923. - Windows fixes #871
  1924. [wiredfool]
  1925. - Fix TGA files with image ID field #856
  1926. [megabuz]
  1927. - Fixed wrong P-mode of small, unoptimized L-mode GIF #843
  1928. [uvNikita]
  1929. - Fixed CVE-2014-3598, a DOS in the Jpeg2KImagePlugin
  1930. [Andrew Drake]
  1931. - Fixed CVE-2014-3589, a DOS in the IcnsImagePlugin
  1932. [Andrew Drake]
  1933. - setup.py: Close open file handle before deleting #844
  1934. [divergentdave]
  1935. - Return Profile with Transformed Images #837
  1936. [wiredfool]
  1937. - Changed docstring to refer to the correct function #836
  1938. [MatMoore]
  1939. - Adding coverage support for C code tests #833
  1940. [wiredfool]
  1941. - PyPy performance improvements #821
  1942. [wiredfool]
  1943. - Added support for reading MPO files #822
  1944. [Feneric]
  1945. - Added support for encoding and decoding iTXt chunks #818
  1946. [dolda2000]
  1947. - HSV Support #816
  1948. [wiredfool]
  1949. - Removed unusable ImagePalette.new()
  1950. [hugovk]
  1951. - Fix Scrambled XPM #808
  1952. [wiredfool]
  1953. - Doc cleanup
  1954. [wiredfool]
  1955. - Fix ``ImageStat`` docs #796
  1956. [akx]
  1957. - Added docs for ExifTags #794
  1958. [Wintermute3]
  1959. - More tests for CurImagePlugin, DcxImagePlugin, Effects.c, GimpGradientFile, ImageFont, ImageMath, ImagePalette, IptcImagePlugin, SpiderImagePlugin, SgiImagePlugin, XpmImagePlugin and _util
  1960. [hugovk]
  1961. - Fix return value of FreeTypeFont.textsize() does not include font offsets #784
  1962. [tk0miya]
  1963. - Fix dispose calculations for animated GIFs #765
  1964. [larsjsol]
  1965. - Added class checking to Image __eq__ function #775
  1966. [radarhere, hugovk]
  1967. - Test PalmImagePlugin and method to skip known bad tests #776
  1968. [hugovk, wiredfool]
  1969. 2.5.3 (2014-08-18)
  1970. ------------------
  1971. - Fixed CVE-2014-3598, a DOS in the Jpeg2KImagePlugin (backport)
  1972. [Andrew Drake]
  1973. 2.5.2 (2014-08-13)
  1974. ------------------
  1975. - Fixed CVE-2014-3589, a DOS in the IcnsImagePlugin (backport)
  1976. [Andrew Drake]
  1977. 2.5.1 (2014-07-10)
  1978. ------------------
  1979. - Fixed install issue if Multiprocessing.Pool is not available
  1980. [wiredfool]
  1981. - 32bit mult overflow fix #782
  1982. [wiredfool]
  1983. 2.5.0 (2014-07-01)
  1984. ------------------
  1985. - Imagedraw rewrite #737
  1986. [terseus, wiredfool]
  1987. - Add support for multithreaded test execution #755
  1988. [wiredfool]
  1989. - Prevent shell injection #748
  1990. [mbrown1413, wiredfool]
  1991. - Support for Resolution in BMP files #734
  1992. [gcq]
  1993. - Fix error in setup.py for Python 3 #744
  1994. [matthew-brett]
  1995. - Pyroma fix and add Python 3.4 to setup metadata #742
  1996. [wirefool]
  1997. - Top level flake8 fixes #741
  1998. [aclark4life]
  1999. - Remove obsolete Animated Raster Graphics (ARG) support #736
  2000. [hugovk]
  2001. - Fix test_imagedraw failures #727
  2002. [cgohlke]
  2003. - Fix AttributeError: class Image has no attribute 'DEBUG' #726
  2004. [cgohlke]
  2005. - Fix msvc warning: 'inline' : macro redefinition #725
  2006. [cgohlke]
  2007. - Cleanup #654
  2008. [dvska, hugovk, wiredfool]
  2009. - 16-bit monochrome support for JPEG2000 #730
  2010. [videan42]
  2011. - Fixed ImagePalette.save
  2012. [brightpisces]
  2013. - Support JPEG qtables #677
  2014. [csinchok]
  2015. - Add binary morphology addon
  2016. [dov, wiredfool]
  2017. - Decompression bomb protection #674
  2018. [hugovk]
  2019. - Put images in a single directory #708
  2020. [hugovk]
  2021. - Support OpenJpeg 2.1 #681
  2022. [al45tair, wiredfool]
  2023. - Remove unistd.h #include for all platforms #704
  2024. [wiredfool]
  2025. - Use unittest for tests
  2026. [hugovk]
  2027. - ImageCms fixes
  2028. [hugovk]
  2029. - Added more ImageDraw tests
  2030. [hugovk]
  2031. - Added tests for Spider files
  2032. [hugovk]
  2033. - Use libtiff to write any compressed tiff files #669
  2034. [wiredfool]
  2035. - Support for pickling Image objects
  2036. [hugovk]
  2037. - Fixed resolution handling for EPS thumbnails #619
  2038. [eliempje]
  2039. - Fixed rendering of some binary EPS files (Issue #302)
  2040. [eliempje]
  2041. - Rename variables not to use built-in function names #670
  2042. [hugovk]
  2043. - Ignore junk JPEG markers
  2044. [hugovk]
  2045. - Change default interpolation for Image.thumbnail to Image.ANTIALIAS
  2046. [hugovk]
  2047. - Add tests and fixes for saving PDFs
  2048. [hugovk]
  2049. - Remove transparency resource after P->RGBA conversion
  2050. [hugovk]
  2051. - Clean up preprocessor cruft for Windows #652
  2052. [CounterPillow]
  2053. - Adjust Homebrew freetype detection logic #656
  2054. [jacknagel]
  2055. - Added Image.close, context manager support
  2056. [wiredfool]
  2057. - Added support for 16 bit PGM files
  2058. [wiredfool]
  2059. - Updated OleFileIO to version 0.30 from upstream #618
  2060. [hugovk]
  2061. - Added support for additional TIFF floating point format
  2062. [Hijackal]
  2063. - Have the tempfile use a suffix with a dot
  2064. [wiredfool]
  2065. - Fix variable name used for transparency manipulations #604
  2066. [nijel]
  2067. 2.4.0 (2014-04-01)
  2068. ------------------
  2069. - Indexed Transparency handled for conversions between L, RGB, and P modes #574 (fixes #510)
  2070. [wiredfool]
  2071. - Conversions enabled from RGBA->P #574 (fixes #544)
  2072. [wiredfool]
  2073. - Improved icns support #565
  2074. [al45tair]
  2075. - Fix libtiff leaking open files #580 (fixes #526)
  2076. [wiredfool]
  2077. - Fixes for Jpeg encoding in Python 3 #578 (fixes #577)
  2078. [wiredfool]
  2079. - Added support for JPEG 2000 #547
  2080. [al45tair]
  2081. - Add more detailed error messages to Image.py #566
  2082. [larsmans]
  2083. - Avoid conflicting _expand functions in PIL & MINGW, fixes #538
  2084. [aclark4life]
  2085. - Merge from Philippe Lagadec’s OleFileIO_PL fork #512
  2086. [vadmium]
  2087. - Fix ImageColor.getcolor #534
  2088. [homm]
  2089. - Make ICO files work with the ImageFile.Parser interface #525 (fixes #522)
  2090. [wiredfool]
  2091. - Handle 32bit compiled python on 64bit architecture #521
  2092. [choppsv1]
  2093. - Fix support for characters >128 using .pcf or .pil fonts in Py3k #517 (fixes #505)
  2094. [wiredfool]
  2095. - Skip CFFI test earlier if it's not installed #516
  2096. [wiredfool]
  2097. - Fixed opening and saving odd sized .pcx files #535 (fixes #523)
  2098. [wiredfool]
  2099. - Fixed palette handling when converting from mode P->RGB->P
  2100. [d-schmidt]
  2101. - Fixed saving mode P image as a PNG with transparency = palette color 0
  2102. [d-schmidt]
  2103. - Improve heuristic used when saving progressive and optimized JPEGs with high quality values #504
  2104. [e98cuenc]
  2105. - Fixed DOS with invalid palette size or invalid image size in BMP file
  2106. [wiredfool]
  2107. - Added support for BMP version 4 and 5
  2108. [eddwardo, wiredfool]
  2109. - Fix segfault in getfont when passed a memory resident font
  2110. [wiredfool]
  2111. - Fix crash on Saving a PNG when icc-profile is None #496
  2112. [brutasse]
  2113. - Cffi+Python implementation of the PixelAccess object
  2114. [wiredfool]
  2115. - PixelAccess returns unsigned ints for I16 mode
  2116. [wiredfool]
  2117. - Minor patch on booleans + Travis #474
  2118. [sciunto]
  2119. - Look in multiarch paths in GNU platforms #511
  2120. [pinotree]
  2121. - Add arch support for pcc64, s390, s390x, armv7l, aarch64 #475
  2122. [manisandro]
  2123. - Add arch support for ppc
  2124. [wiredfool]
  2125. - Correctly quote file names for WindowsViewer command
  2126. [cgohlke]
  2127. - Prefer homebrew freetype over X11 freetype (but still allow both) #466
  2128. [dmckeone]
  2129. 2.3.2 (2014-08-13)
  2130. ------------------
  2131. - Fixed CVE-2014-3589, a DOS in the IcnsImagePlugin (backport)
  2132. [Andrew Drake]
  2133. 2.3.1 (2014-03-14)
  2134. ------------------
  2135. - Fix insecure use of tempfile.mktemp (CVE-2014-1932 CVE-2014-1933)
  2136. [wiredfool]
  2137. 2.3.0 (2014-01-01)
  2138. ------------------
  2139. - Stop leaking filename parameter passed to getfont #459
  2140. [jpharvey]
  2141. - Report availability of LIBTIFF during setup and selftest
  2142. [cgohlke]
  2143. - Fix msvc build error C1189: "No Target Architecture" #460
  2144. [cgohlke]
  2145. - Fix memory leak in font_getsize
  2146. [wiredfool]
  2147. - Correctly prioritize include and library paths #442
  2148. [ohanar]
  2149. - Image.point fixes for numpy.array and docs #441
  2150. [wiredfool]
  2151. - Save the transparency header by default for PNGs #424
  2152. [wiredfool]
  2153. - Support for PNG tRNS header when converting from RGB->RGBA #423
  2154. [wiredfool]
  2155. - PyQT5 Support #418
  2156. [wiredfool]
  2157. - Updates for saving color tiffs w/compression using libtiff #417
  2158. [wiredfool]
  2159. - 2gigapix image fixes and redux
  2160. [wiredfool]
  2161. - Save arbitrary tags in Tiff image files #369
  2162. [wiredfool]
  2163. - Quote filenames and title before using on command line #398
  2164. [tmccombs]
  2165. - Fixed Viewer.show to return properly #399
  2166. [tmccombs]
  2167. - Documentation fixes
  2168. [wiredfool]
  2169. - Fixed memory leak saving images as webp when webpmux is available #429
  2170. [cezarsa]
  2171. - Fix compiling with FreeType 2.5.1 #427
  2172. [stromnov]
  2173. - Adds directories for NetBSD #411
  2174. [deepy]
  2175. - Support RGBA TIFF with missing ExtraSamples tag #393
  2176. [cgohlke]
  2177. - Lossless WEBP Support #390
  2178. [wiredfool]
  2179. - Take compression as an option in the save call for tiffs #389
  2180. [wiredfool]
  2181. - Add support for saving lossless WebP. Just pass 'lossless=True' to save() #386
  2182. [liftoff]
  2183. - LCMS support upgraded from version 1 to version 2 #380 (fixes #343)
  2184. [wiredfool]
  2185. - Added more raw decoder 16 bit pixel formats #379
  2186. [svanheulen]
  2187. - Document remaining Image* modules listed in PIL handbook
  2188. [irksep]
  2189. - Document ImageEnhance, ImageFile, ImageFilter, ImageFont, ImageGrab, ImageMath, and ImageOps
  2190. [irksep]
  2191. - Port and update docs for Image, ImageChops, ImageColor, and ImageDraw
  2192. [irksep]
  2193. - Move or copy content from README.rst to docs/
  2194. [irksep]
  2195. - Respect CFLAGS/LDFLAGS when searching for headers/libs
  2196. [iElectric]
  2197. - Port PIL Handbook tutorial and appendices
  2198. [irksep]
  2199. - Alpha Premultiplication support for transform and resize #364
  2200. [wiredfool]
  2201. - Fixes to make Pypy 2.1.0 work on Ubuntu 12.04/64 #359
  2202. [wiredfool]
  2203. 2.2.2 (2013-12-11)
  2204. ------------------
  2205. - Fix compiling with FreeType 2.5.1 #427
  2206. [stromnov]
  2207. 2.2.1 (2013-10-02)
  2208. ------------------
  2209. - Error installing Pillow 2.2.0 on Mac OS X (due to hard dep on brew) #357 (fixes #356)
  2210. [wiredfool]
  2211. 2.2.0 (2013-10-02)
  2212. ------------------
  2213. - Bug in image transformations resulting from uninitialized memory #348 (fixes #254)
  2214. [nikmolnar]
  2215. - Fix for encoding of b_whitespace #346 (similar to closed issue #272)
  2216. [mhogg]
  2217. - Add numpy array interface support for 16 and 32 bit integer modes #347 (fixes #273)
  2218. [cgohlke]
  2219. - Partial fix for #290: Add preliminary support for TIFF tags.
  2220. [wiredfool]
  2221. - Fix #251 and #326: circumvent classification of pngtest_bad.png as malware
  2222. [cgohlke]
  2223. - Add typedef uint64_t for MSVC #339
  2224. [cgohlke]
  2225. - setup.py: better support for C_INCLUDE_PATH, LD_RUN_PATH, etc. #336 (fixes #329)
  2226. [nu774]
  2227. - _imagingcms.c: include windef.h to fix build issue on MSVC #335 (fixes #328)
  2228. [nu774]
  2229. - Automatically discover homebrew include/ and lib/ paths on OS X #330
  2230. [donspaulding]
  2231. - Fix bytes which should be bytearray #325
  2232. [manisandro]
  2233. - Add respective paths for C_INCLUDE_PATH, LD_RUN_PATH (rpath) to build
  2234. if specified as environment variables #324
  2235. [seanupton]
  2236. - Fix #312 + gif optimize improvement
  2237. [d-schmidt]
  2238. - Be more tolerant of tag read failures #320
  2239. [ericbuehl]
  2240. - Catch truncated zTXt errors #321 (fixes #318)
  2241. [vytisb]
  2242. - Fix IOError when saving progressive JPEGs #313
  2243. [e98cuenc]
  2244. - Add RGBA support to ImageColor #309
  2245. [yoavweiss]
  2246. - Test for ``str``, not ``"utf-8"`` #306 (fixes #304)
  2247. [mjpieters]
  2248. - Fix missing import os in _util.py #303
  2249. [mnowotka]
  2250. - Added missing exif tags #300
  2251. [freyes]
  2252. - Fail on all import errors #298, #299 (fixes #297)
  2253. [macfreek, wiredfool]
  2254. - Fixed Windows fallback (wasn't using correct file in Windows fonts) #295
  2255. [lmollea]
  2256. - Moved ImageFile and ImageFileIO comments to docstrings #293
  2257. [freyes]
  2258. - Restore compatibility with ISO C #289
  2259. [cgohlke]
  2260. - Use correct format character for C int type #288
  2261. [cgohlke]
  2262. - Allocate enough memory to hold pointers in encode.c #287
  2263. [cgohlke]
  2264. - Fillorder double shuffling bug when FillOrder ==2 and decoding using libtiff #284 (fixes #279)
  2265. [wiredfool]
  2266. - Moved Image module comments to docstrings.
  2267. [freyes]
  2268. - Add 16-bit TIFF support #277 (fixes #274)
  2269. [wiredfool]
  2270. - Ignore high ascii characters in string.whitespace #276 (fixes #272)
  2271. [wiredfool]
  2272. - Added clean/build to tox to make it behave like Travis #275
  2273. [freyes]
  2274. - Adding support for metadata in webp images #271
  2275. [heynemann]
  2276. 2.1.0 (2013-07-02)
  2277. ------------------
  2278. - Add /usr/bin/env python shebangs to all scripts in /Scripts #197
  2279. [mgorny]
  2280. - Add several TIFF decoders and encoders #268
  2281. [megabuz]
  2282. - Added support for alpha transparent webp images.
  2283. - Adding Python 3 support for StringIO.
  2284. - Adding Python3 basestring compatibility without changing basestring.
  2285. - Fix webp encode errors on win-amd64 #259
  2286. [cgohlke]
  2287. - Better fix for ZeroDivisionError in ImageOps.fit for image.size height is 1 #267
  2288. [chrispbailey]
  2289. - Better support for ICO images.
  2290. - Changed PY_VERSION_HEX #190 (fixes #166)
  2291. - Changes to put everything under the PIL namespace #191
  2292. [wiredfool]
  2293. - Changing StringIO to BytesIO.
  2294. - Cleanup whitespace.
  2295. [Arfrever]
  2296. - Don't skip 'import site' on initialization when running tests for inplace builds.
  2297. [cgohlke]
  2298. - Enable warnings for test suite #227
  2299. [wiredfool]
  2300. - Fix for ZeroDivisionError in ImageOps.fit for image.size == (1,1) #255
  2301. [pterk]
  2302. - Fix for if isinstance(filter, collections.Callable) crash. Python bug #7624 on <2.6.6
  2303. - Remove double typedef declaration #194 (fixes #193)
  2304. [evertrol]
  2305. - Fix msvc compile errors (#230).
  2306. - Fix rendered characters have been chipped for some TrueType fonts
  2307. [tk0miya]
  2308. - Fix usage of pilfont.py script #184
  2309. [fabiomcosta]
  2310. - Fresh start for docs, generated by sphinx-apidoc.
  2311. - Introduce --enable-x and fail if it is given and x is not available.
  2312. - Partial work to add a wrapper for WebPGetFeatures to correctly support #220 (fixes #204)
  2313. - Significant performance improvement of ``alpha_composite`` function #156
  2314. [homm]
  2315. - Support explicitly disabling features via --disable-* options #240
  2316. [mgorny]
  2317. - Support selftest.py --installed, fixes #263
  2318. - Transparent WebP Support #220 (fixes #204)
  2319. [euangoddard, wiredfool]
  2320. - Use PyCapsule for py3.1 #238 (fixes #237)
  2321. [wiredfool]
  2322. - Workaround for: https://bugs.python.org/issue16754 in 3.2.x < 3.2.4 and 3.3.0.
  2323. 2.0.0 (2013-03-15)
  2324. ------------------
  2325. .. Note:: Special thanks to Christoph Gohlke and Eric Soroos for assisting with a pre-PyCon 2013 release!
  2326. - Many other bug fixes and enhancements by many other people.
  2327. - Add Python 3 support. (Pillow >= 2.0.0 supports Python 2.6, 2.7, 3.2, 3.3. Pillow < 2.0.0 supports Python 2.4, 2.5, 2.6, 2.7.)
  2328. [fluggo]
  2329. - Add PyPy support (experimental, please see #67)
  2330. - Add WebP support #96
  2331. [lqs]
  2332. - Add Tiff G3/G4 support (experimental)
  2333. [wiredfool]
  2334. - Backport PIL's PNG/Zip improvements #95, #97
  2335. [olt]
  2336. - Various 64-bit and Windows fixes.
  2337. [cgohlke]
  2338. - Add testing suite.
  2339. [cgohlke, fluggo]
  2340. - Added support for PNG images with transparency palette.
  2341. [d-schmidt]
  2342. 1.7.8 (2012-11-01)
  2343. ------------------
  2344. - Removed doctests.py that made tests of other packages fail.
  2345. [thomasdesvenain]
  2346. - Fix opening psd files with RGBA layers when A mode is not of type 65535 but 3.
  2347. Fixes #3
  2348. [thomasdesvenain]
  2349. 1.7.7 (2012-04-04)
  2350. ------------------
  2351. - UNDEF more types before including windows headers
  2352. [mattip]
  2353. 1.7.6 (2012-01-20)
  2354. ------------------
  2355. - Bug fix: freetype not found on Mac OS X with case-sensitive filesystem
  2356. [gjo]
  2357. - Bug fix: Backport fix to split() after open() (regression introduced in PIL 1.1.7).
  2358. [sfllaw]
  2359. 1.7.5 (2011-09-07)
  2360. ------------------
  2361. - Fix for sys.platform = "linux3"
  2362. [blueyed]
  2363. - Package cleanup and additional documentation
  2364. [aclark4life]
  2365. 1.7.4 (2011-07-21)
  2366. ------------------
  2367. - Fix brown bag release
  2368. [aclark4life]
  2369. 1.7.3 (2011-07-20)
  2370. ------------------
  2371. - Fix : resize need int values, append int conversion in thumbnail method
  2372. [harobed]
  2373. 1.7.2 (2011-06-02)
  2374. ------------------
  2375. - Bug fix: Python 2.4 compat
  2376. [aclark4life]
  2377. 1.7.1 (2011-05-31)
  2378. ------------------
  2379. - More multi-arch support
  2380. [SteveM, regebro, barry, aclark4life]
  2381. 1.7.0 (2011-05-27)
  2382. ------------------
  2383. - Add support for multi-arch library directory /usr/lib/x86_64-linux-gnu
  2384. [aclark4life]
  2385. 1.6 (12/01/2010)
  2386. ----------------
  2387. - Bug fix: /usr/x11/include should be added to include_dirs not library_dirs
  2388. [elro]
  2389. - Doc fixes
  2390. [aclark4life]
  2391. 1.5 (11/28/2010)
  2392. ----------------
  2393. - Module and package fixes
  2394. [aclark4life]
  2395. 1.4 (11/28/2010)
  2396. ----------------
  2397. - Doc fixes
  2398. [aclark4life]
  2399. 1.3 (11/28/2010)
  2400. ----------------
  2401. - Add support for /lib64 and /usr/lib64 library directories on Linux
  2402. [aclark4life]
  2403. - Doc fixes
  2404. [aclark4life]
  2405. 1.2 (08/02/2010)
  2406. ----------------
  2407. - On OS X also check for freetype2 in the X11 path
  2408. [jezdez]
  2409. - Doc fixes
  2410. [aclark4life]
  2411. 1.1 (07/31/2010)
  2412. ----------------
  2413. - Removed setuptools_hg requirement
  2414. [aclark4life]
  2415. - Doc fixes
  2416. [aclark4life]
  2417. 1.0 (07/30/2010)
  2418. ----------------
  2419. - Remove support for ``import Image``, etc. from the standard namespace. ``from PIL import Image`` etc. now required.
  2420. - Forked PIL based on `Hanno Schlichting's re-packaging <https://dist.plone.org/thirdparty/PIL-1.1.7.tar.gz>`_
  2421. [aclark4life]
  2422. Pre-fork
  2423. --------
  2424. 0.2b5-1.1.7
  2425. +++++++++++
  2426. ::
  2427. -*- coding: utf-8 -*-
  2428. The Python Imaging Library
  2429. $Id$
  2430. ACKNOWLEDGEMENTS: PIL wouldn't be what it is without the help of:
  2431. David Ascher, Phil Austin, Douglas Bagnall, Larry Bates, Anthony
  2432. Baxter, William Baxter, Denis Benoit, Jan Blom, Duncan Booth, Alexey
  2433. Borzenkov, Jeff Breidenbach, Roger Burnham, Zac Burns, Gene Cash,
  2434. Kevin Cazabon, Fred Clare, Greg Coats, Chris Cogdon, Greg Couch, Bill
  2435. Crutchfield, Abel Deuring, Tim Docker, Fred Drake, Graham Dumpleton,
  2436. Matthew Ellis, Eric Etheridge, Daniel Fetchinson, Robin Friedrich,
  2437. Pier Paolo Glave, Federico Di Gregorio, Markus Gritsch, Daniel
  2438. Haertle, Greg Hamilton, Mark Hammond, Bernhard Herzog, Rob Hooft, Bob
  2439. Ippolito, Jack Jansen, Bill Janssen, Edward Jones, Richard Jones,
  2440. Håkan Karlsson, Robert Kern, David Kirtley, Bob Klimek, Matthias
  2441. Klose, Andrew Kuchling, Magnus Källström, Victor Lacina, Ben Last,
  2442. Hamish Lawson, Cesare Leonardi, Andrew MacIntyre, Jan Matejek, Naveen
  2443. Michaud-Agrawal, Gordon McMillan, Skip Montanaro, Fredrik Nehr,
  2444. Russell Nelson, Luciano Nocera, Travis Oliphant, Piet van Oostrum,
  2445. Richard Oudkerk, Paul Pharr, Andres Polit, Conrado Porto Lopes Gouvêa,
  2446. Eric Raymond, Victor Reijs, Bertil Reinhammar, Nicholas Riley, Don
  2447. Rozenberg, Toby Sargeant, Barry Scott, Les Schaffer, Joel Shprentz,
  2448. Klamer Shutte, Gene Skonicki, Niki Spahiev, D. Alan Stewart, Perry
  2449. Stoll, Paul Svensson, Ulrik Svensson, Miki Tebeka, Michael van
  2450. Tellingen, Ivan Tkatchev, Dan Torop, Adam Twardoch, Rune Uhlin, Dmitry
  2451. Vasiliev, Sasha Voynow, Charles Waldman, Collin Winter, Dan Wolfe,
  2452. Ka-Ping Yee, and many others (if your name should be on this list, let
  2453. me know.)
  2454. *** Changes from release 1.1.6 to 1.1.7 ***
  2455. This section may not be fully complete. For changes since this file
  2456. was last updated, see the repository revision history:
  2457. https://bitbucket.org/effbot/pil-2009-raclette/commits/all
  2458. (1.1.7 final)
  2459. + Set GIF loop info property to the number of iterations if a NETSCAPE
  2460. loop extension is present, instead of always setting it to 1 (from
  2461. Valentino Volonghi).
  2462. (1.1.7c1 released)
  2463. + Improved PNG compression (from Alexey Borzenkov).
  2464. + Read interlaced PNG files (from Conrado Porto Lopes Gouvêa)
  2465. + Added various TGA improvements from Alexey Borzenkov, including
  2466. support for specifying image orientation.
  2467. + Bumped block threshold to 16 megabytes, made size estimation a bit
  2468. more accurate. This speeds up allocation of large images.
  2469. + Fixed rounding error in ImagingDrawWideLine.
  2470. "gormish" writes: ImagingDrawWideLine() in Draw.c has a bug in every
  2471. version I've seen, which leads to different width lines depending on
  2472. the order of the points in the line. This is especially bad at some
  2473. angles where a 'width=2' line can completely disappear.
  2474. + Added support for RGBA mode to the SGI module (based on code by
  2475. Karsten Hiddemann).
  2476. + Handle repeated IPTC tags (adapted from a patch by Eric Bruning).
  2477. Eric writes: According to the specification, some IPTC tags can be
  2478. repeated, e.g., tag 2:25 (keywords). PIL 1.1.6 only retained the last
  2479. instance of that tag. Below is a patch to store all tags. If there are
  2480. multiple tag instances, they are stored in a (python) list. Single tag
  2481. instances remain as strings.
  2482. + Fixed potential crash in ImageFilter for small target images
  2483. (reported by Zac Burns and Daniel Fetchinson).
  2484. + Use BMP instead of JPEG as temporary show format on Mac OS X.
  2485. + Fixed putpixel/new for I;16 with colors > 255.
  2486. + Added integer power support to ImagingMath.
  2487. + Added limited support for I;16L mode (explicit little endian).
  2488. + Moved WMF support into Image.core; enable WMF rendering by default
  2489. if renderer is available.
  2490. + Mark the ARG plugin as obsolete.
  2491. + Added version query mechanism to ImageCms and ImageFont, for
  2492. debugging.
  2493. + Added (experimental) ImageCms function for fetching the ICC profile
  2494. for the current display (currently Windows only).
  2495. Added HWND/HDC support to ImageCms.get_display_profile().
  2496. + Added WMF renderer (Windows only).
  2497. + Added ImagePointHandler and ImageTransformHandler mixins; made
  2498. ImageCmsTransform work with im.point.
  2499. + Fixed potential endless loop in the XVThumbnail reader (from Nikolai
  2500. Ugelvik).
  2501. + Added Kevin Cazabon's pyCMS package.
  2502. The C code has been moved to _imagingcms.c, the Python interface
  2503. module is installed as PIL.ImageCMS.
  2504. Added support for in-memory ICC profiles.
  2505. Unified buildTransform and buildTransformFromOpenProfiles.
  2506. The profile can now be either a filename, a profile object, or a
  2507. file-like object containing an in-memory profile.
  2508. Additional fixes from Florian Böch:
  2509. Very nice - it just needs LCMS flags support so we can use black
  2510. point compensation and softproofing :) See attached patches. They
  2511. also fix a naming issue which could cause confusion - display
  2512. profile (ImageCms wording) actually means proof profile (lcms
  2513. wording), so I changed variable names and docstrings where
  2514. applicable. Patches are tested under Python 2.6.
  2515. + Improved support for layer names in PSD files (from Sylvain Baubeau)
  2516. Sylvain writes: I needed to be able to retrieve the names of the
  2517. layers in a PSD files. But PsdImagePlugin.py didn't do the job so I
  2518. wrote this very small patch.
  2519. + Improved RGBA support for ImageTk for 8.4 and newer (from Con
  2520. Radchenko).
  2521. This replaces the slow run-length based encoding model with true
  2522. compositing at the Tk level.
  2523. + Added support for 16- and 32-bit images to McIdas loader.
  2524. Based on file samples and stand-alone reader code provided by Craig
  2525. Swank.
  2526. + Added ImagePalette support to putpalette.
  2527. + Fixed problem with incremental parsing of PNG files.
  2528. + Make selftest.py report non-zero status on failure (from Mark
  2529. Sienkiewicz)
  2530. + Add big endian save support and multipage infrastructure to the TIFF
  2531. writer (from Sebastian Haase).
  2532. + Handle files with GPS IFD but no basic EXIF IFD (reported by Kurt
  2533. Schwehr).
  2534. + Added zTXT support (from Andrew Kuchling via Lowell Alleman).
  2535. + Fixed potential infinite loop bug in ImageFont (from Guilherme Polo).
  2536. + Added sample ICC profiles (from Kevin Cazabon)
  2537. + Fixed array interface for I, F, and RGBA/RGBX images.
  2538. + Added Chroma subsampling support for JPEG (from Justin Huff).
  2539. Justin writes: Attached is a patch (against PIL 1.1.6) to provide
  2540. control over the chroma subsampling done by the JPEG encoder. This
  2541. is often useful for reducing compression artifacts around edges of
  2542. clipart and text.
  2543. + Added USM/Gaussian Blur code from Kevin Cazabon.
  2544. + Fixed bug w. uninitialized image data when cropping outside the
  2545. source image.
  2546. + Use ImageShow to implement the Image.show method.
  2547. Most notably, this picks the 'display' utility when available. It
  2548. also allows application code to register new display utilities via
  2549. the ImageShow registry.
  2550. + Release the GIL in the PNG compressor (from Michael van Tellingen).
  2551. + Revised JPEG CMYK handling.
  2552. Always assume Adobe behaviour, both when reading and writing (based on
  2553. a patch by Kevin Cazabon, and test data by Tim V. and Charlie Clark, and
  2554. additional debugging by Michael van Tellingen).
  2555. + Support for preserving ICC profiles (by Florian Böch via Tim Hatch).
  2556. Florian writes:
  2557. It's a beta, so still needs some testing, but should allow you to:
  2558. - retain embedded ICC profiles when saving from/to JPEG, PNG, TIFF.
  2559. Existing code doesn't need to be changed.
  2560. - access embedded profiles in JPEG, PNG, PSD, TIFF.
  2561. It also includes patches for TIFF to retain IPTC, Photoshop and XMP
  2562. metadata when saving as TIFF again, read/write TIFF resolution
  2563. information correctly, and to correct inverted CMYK JPEG files.
  2564. + Fixed potential memory leak in median cut quantizer (from Evgeny Salmin).
  2565. + Fixed OverflowError when reading upside-down BMP images.
  2566. + Added resolution save option for PDF files.
  2567. Andreas Kostyrka writes: I've included a patched PdfImagePlugin.py
  2568. based on 1.1.6 as included in Ubuntu, that supports a "resolution"
  2569. save option. Not great, but it makes the PDF saving more useful by
  2570. allowing PDFs that are not exactly 72dpi.
  2571. + Look for Tcl/Tk include files in version-specific include directory
  2572. (from Encolpe Degoute).
  2573. + Fixed grayscale rounding error in ImageColor.getcolor (from Tim
  2574. Hatch).
  2575. + Fixed calculation of mean value in ImageEnhance.Contrast (reported
  2576. by "roop" and Scott David Daniels).
  2577. + Fixed truetype positioning when first character has a negative left
  2578. bearing (from Ned Batchelder):
  2579. Ned writes: In PIL 1.1.6, ImageDraw.text will position the string
  2580. incorrectly if the first character has a negative left bearing. To
  2581. see the problem, show a string like "///" in an italic font. The
  2582. first slash will be clipped at the left, and the string will be
  2583. mis-positioned.
  2584. + Fixed resolution unit bug in tiff reader/writer (based on code by
  2585. Florian Höch, Gary Bloom, and others).
  2586. + Added simple transparency support for RGB images (reported by
  2587. Sebastian Spaeth).
  2588. + Added support for Unicode filenames in ImageFont.truetype (from Donn
  2589. Ingle).
  2590. + Fixed potential crash in ImageFont.getname method (from Donn Ingle).
  2591. + Fixed encoding issue in PIL/WalImageFile (from Santiago M. Mola).
  2592. *** Changes from release 1.1.5 to 1.1.6 ***
  2593. (1.1.6 released)
  2594. + Fixed some 64-bit compatibility warnings for Python 2.5.
  2595. + Added threading support for the Sane driver (from Abel Deuring).
  2596. (1.1.6b2 released)
  2597. + Added experimental "floodfill" function to the ImageDraw module
  2598. (based on code by Eric Raymond).
  2599. + The default arguments for "frombuffer" doesn't match "fromstring"
  2600. and the documentation; this is a bug, and will most likely be fixed
  2601. in a future version. In this release, PIL prints a warning message
  2602. instead. To silence the warning, change any calls of the form
  2603. "frombuffer(mode, size, data)" to
  2604. frombuffer(mode, size, data, "raw", mode, 0, 1)
  2605. + Added "fromarray" function, which takes an object implementing the
  2606. NumPy array interface and creates a PIL Image from it. (from Travis
  2607. Oliphant).
  2608. + Added NumPy array interface support (__array_interface__) to the
  2609. Image class (based on code by Travis Oliphant).
  2610. This allows you to easily convert between PIL image memories and
  2611. NumPy arrays:
  2612. import numpy, Image
  2613. im = Image.open('hopper.jpg')
  2614. a = numpy.asarray(im) # a is readonly
  2615. im = Image.fromarray(a)
  2616. + Fixed CMYK polarity for JPEG images, by treating all images as
  2617. "Adobe CMYK" images. (thanks to Cesare Leonardi and Kevin Cazabon
  2618. for samples, debugging, and patches).
  2619. (1.1.6b1 released)
  2620. + Added 'expand' option to the Image 'rotate' method. If true, the
  2621. output image is made large enough to hold the entire rotated image.
  2622. + Changed the ImageDraw 'line' method to always draw the last pixel in
  2623. a polyline, independent of line angle.
  2624. + Fixed bearing calculation and clipping in the ImageFont truetype
  2625. renderer; this could lead to clipped text, or crashes in the low-
  2626. level _imagingft module. (based on input from Adam Twardoch and
  2627. others).
  2628. + Added ImageQt wrapper module, for converting PIL Image objects to
  2629. QImage objects in an efficient way.
  2630. + Fixed 'getmodebands' to return the number of bands also for "PA"
  2631. and "LA" modes. Added 'getmodebandnames' helper that return the
  2632. band names.
  2633. (1.1.6a2 released)
  2634. + Added float/double support to the TIFF loader (from Russell
  2635. Nelson).
  2636. + Fixed broken use of realloc() in path.c (from Jan Matejek)
  2637. + Added save support for Spider images (from William Baxter).
  2638. + Fixed broken 'paste' and 'resize' operations in pildriver
  2639. (from Bill Janssen).
  2640. + Added support for duplex scanning to the Sane interface (Abel
  2641. Deuring).
  2642. (1.1.6a1 released)
  2643. + Fixed a memory leak in "convert(mode)", when converting from
  2644. L to P.
  2645. + Added pixel access object. The "load" method now returns a
  2646. access object that can be used to directly get and set pixel
  2647. values, using ordinary [x, y] notation:
  2648. pixel = im.load()
  2649. v = pixel[x, y]
  2650. pixel[x, y] = v
  2651. If you're accessing more than a few pixels, this is a lot
  2652. faster than using getpixel/putpixel.
  2653. + Fixed building on Cygwin (from Miki Tebeka).
  2654. + Fixed "point(callable)" on unloaded images (reported by Håkan
  2655. Karlsson).
  2656. + Fixed size bug in ImageWin.ImageWindow constructor (from Victor
  2657. Reijs)
  2658. + Fixed ImageMath float() and int() operations for Python 2.4
  2659. (reported by Don Rozenberg).
  2660. + Fixed "RuntimeError: encoder error -8 in tostring" problem for
  2661. wide "RGB", "I", and "F" images.
  2662. + Fixed line width calculation.
  2663. (1.1.6a0 released)
  2664. + Fixed byte order issue in Image.paste(ink) (from Ka-Ping Yee).
  2665. + Fixed off-by-0.5 errors in the ANTIALIAS code (based on input
  2666. from Douglas Bagnall).
  2667. + Added buffer interface support to the Path constructor. If
  2668. a buffer is provided, it is assumed to contain a flat array
  2669. of float coordinates (e.g. array.array('f', seq)).
  2670. + Added new ImageMath module.
  2671. + Fixed ImageOps.equalize when used with a small number of distinct
  2672. values (reported by David Kirtley).
  2673. + Fixed potential integer division in PSDraw.image (from Eric Etheridge).
  2674. *** Changes from release 1.1 to 1.1.5 ***
  2675. (1.1.5c2 and 1.1.5 final released)
  2676. + Added experimental PERSPECTIVE transform method (from Jeff Breiden-
  2677. bach).
  2678. (1.1.5c1 released)
  2679. + Make sure "thumbnail" never generates zero-wide or zero-high images
  2680. (reported by Gene Skonicki)
  2681. + Fixed a "getcolors" bug that could result in a zero count for some
  2682. colors (reported by Richard Oudkerk).
  2683. + Changed default "convert" palette to avoid "rounding errors" when
  2684. round-tripping white source pixels (reported by Henryk Gerlach and
  2685. Jeff Epler).
  2686. (1.1.5b3 released)
  2687. + Don't crash in "quantize" method if the number of colors requested
  2688. is larger than 256. This release raises a ValueError exception;
  2689. future versions may return a mode "RGB" image instead (reported
  2690. by Richard Oudkerk).
  2691. + Added WBMP read/write support (based on code by Duncan Booth).
  2692. (1.1.5b2 released)
  2693. + Added DPI read/write support to the PNG codec. The decoder sets
  2694. the info["dpi"] attribute for PNG files with appropriate resolution
  2695. settings. The encoder uses the "dpi" option (based on code by Niki
  2696. Spahiev).
  2697. + Added limited support for "point" mappings from mode "I" to mode "L".
  2698. Only 16-bit values are supported (other values are clipped), the lookup
  2699. table must contain exactly 65536 entries, and the mode argument must be
  2700. set to "L".
  2701. + Added support for Mac OS X icns files (based on code by Bob Ippolito).
  2702. + Added "ModeFilter" support to the ImageFilter module.
  2703. + Added support for Spider images (from William Baxter). See the
  2704. comments in PIL/SpiderImagePlugin.py for more information on this
  2705. format.
  2706. (1.1.5b1 released)
  2707. + Added new Sane release (from Ralph Heinkel). See the Sane/README
  2708. and Sane/CHANGES files for more information.
  2709. + Added experimental PngInfo chunk container to the PngImageFile
  2710. module. This can be used to add arbitrary chunks to a PNG file.
  2711. Create a PngInfo instance, use "add" or "add_text" to add chunks,
  2712. and pass the instance as the "pnginfo" option when saving the
  2713. file.
  2714. + Added "getpalette" method. This returns the palette as a list,
  2715. or None if the image has no palette. To modify the palette, use
  2716. "getpalette" to fetch the current palette, modify the list, and
  2717. put it back using "putpalette".
  2718. + Added optional flattening to the ImagePath "tolist" method.
  2719. tolist() or tolist(0) returns a list of 2-tuples, as before.
  2720. tolist(1) returns a flattened list instead.
  2721. (1.1.5a5 released)
  2722. + Fixed BILINEAR/BICUBIC/ANTIALIAS filtering for mode "LA".
  2723. + Added "getcolors()" method. This is similar to the existing histo-
  2724. gram method, but looks at color values instead of individual layers,
  2725. and returns an unsorted list of (count, color) tuples.
  2726. By default, the method returns None if finds more than 256 colors.
  2727. If you need to look for more colors, you can pass in a limit (this
  2728. is used to allocate internal tables, so you probably don't want to
  2729. pass in too large values).
  2730. + Build improvements: Fixed building under AIX, improved detection of
  2731. FreeType2 and Mac OS X framework libraries, and more. Many thanks
  2732. to everyone who helped test the new "setup.py" script!
  2733. (1.1.5a4 released)
  2734. + The "save" method now looks for a file format driver before
  2735. creating the file.
  2736. + Don't use antialiased truetype fonts when drawing in mode "P", "I",
  2737. and "F" images.
  2738. + Rewrote the "setup.py" file. The new version scans for available
  2739. support libraries, and configures both the libImaging core library
  2740. and the bindings in one step.
  2741. To use specific versions of the libraries, edit the ROOT variables
  2742. in the setup.py file.
  2743. + Removed threaded "show" viewer; use the old "show" implementation
  2744. instead (Windows).
  2745. + Added deprecation warnings to Image.offset, ImageDraw.setink, and
  2746. ImageDraw.setfill.
  2747. + Added width option to ImageDraw.line(). The current implementation
  2748. works best for straight lines; it does not support line joins, so
  2749. polylines won't look good.
  2750. + ImageDraw.Draw is now a factory function instead of a class. If
  2751. you need to create custom draw classes, inherit from the ImageDraw
  2752. class. All other code should use the factory function.
  2753. + Fixed loading of certain PCX files (problem reported by Greg
  2754. Hamilton, who also provided samples).
  2755. + Changed _imagingft.c to require FreeType 2.1 or newer. The
  2756. module can still be built with earlier versions; see comments
  2757. in _imagingft.c for details.
  2758. (1.1.5a3 released)
  2759. + Added 'getim' method, which returns a PyCObject wrapping an
  2760. Imaging pointer. The description string is set to IMAGING_MAGIC.
  2761. See Imaging.h for pointer and string declarations.
  2762. + Fixed reading of TIFF JPEG images (problem reported by Ulrik
  2763. Svensson).
  2764. + Made ImageColor work under Python 1.5.2
  2765. + Fixed division by zero "equalize" on very small images (from
  2766. Douglas Bagnall).
  2767. (1.1.5a2 released)
  2768. + The "paste" method now supports the alternative "paste(im, mask)"
  2769. syntax (in this case, the box defaults to im's bounding box).
  2770. + The "ImageFile.Parser" class now works also for PNG files with
  2771. more than one IDAT block.
  2772. + Added DPI read/write to the TIFF codec, and fixed writing of
  2773. rational values. The decoder sets the info["dpi"] attribute
  2774. for TIFF files with appropriate resolution settings. The
  2775. encoder uses the "dpi" option.
  2776. + Disable interlacing for small (or narrow) GIF images, to
  2777. work around what appears to be a hard-to-find bug in PIL's
  2778. GIF encoder.
  2779. + Fixed writing of mode "P" PDF images. Made mode "1" PDF
  2780. images smaller.
  2781. + Made the XBM reader a bit more robust; the file may now start
  2782. with a few whitespace characters.
  2783. + Added support for enhanced metafiles to the WMF driver. The
  2784. separate PILWMF kit lets you render both placeable WMF files
  2785. and EMF files as raster images. See
  2786. http://effbot.org/downloads#pilwmf
  2787. (1.1.5a1 released)
  2788. + Replaced broken WMF driver with a WMF stub plugin (see below).
  2789. + Fixed writing of mode "1", "L", and "CMYK" PDF images (based on
  2790. input from Nicholas Riley and others).
  2791. + Fixed adaptive palette conversion for zero-width or zero-height
  2792. images (from Chris Cogdon)
  2793. + Fixed reading of PNG images from QuickTime 6 (from Paul Pharr)
  2794. + Added support for StubImageFile plugins, including stub plugins
  2795. for BUFR, FITS, GRIB, and HDF5 files. A stub plugin can identify
  2796. a given file format, but relies on application code to open and
  2797. save files in that format.
  2798. + Added optional "encoding" argument to the ImageFont.truetype
  2799. factory. This argument can be used to specify non-Unicode character
  2800. maps for fonts that support that. For example, to draw text using
  2801. the Microsoft Symbol font, use:
  2802. font = ImageFont.truetype("symbol.ttf", 16, encoding="symb")
  2803. draw.text((0, 0), unichr(0xF000 + 0xAA))
  2804. (note that the symbol font uses characters in the 0xF000-0xF0FF
  2805. range)
  2806. Common encodings are "unic" (Unicode), "symb" (Microsoft Symbol),
  2807. "ADOB" (Adobe Standard), "ADBE" (Adobe Expert), and "armn" (Apple
  2808. Roman). See the FreeType documentation for more information.
  2809. + Made "putalpha" a bit more robust; you can now attach an alpha
  2810. layer to a plain "L" or "RGB" image, and you can also specify
  2811. constant alphas instead of alpha layers (using integers or colour
  2812. names).
  2813. + Added experimental "LA" mode support.
  2814. An "LA" image is an "L" image with an attached transparency layer.
  2815. Note that support for "LA" is not complete; some operations may
  2816. fail or produce unexpected results.
  2817. + Added "RankFilter", "MinFilter", "MedianFilter", and "MaxFilter"
  2818. classes to the ImageFilter module.
  2819. + Improved support for applications using multiple threads; PIL
  2820. now releases the global interpreter lock for many CPU-intensive
  2821. operations (based on work by Kevin Cazabon).
  2822. + Ignore Unicode characters in the PCF loader (from Andres Polit)
  2823. + Fixed typo in OleFileIO.loadfat, which could affect loading of
  2824. FlashPix and Image Composer images (Daniel Haertle)
  2825. + Fixed building on platforms that have Freetype but don't have
  2826. Tcl/Tk (Jack Jansen, Luciano Nocera, Piet van Oostrum and others)
  2827. + Added EXIF GPSInfo read support for JPEG files. To extract
  2828. GPSInfo information, open the file, extract the exif dictionary,
  2829. and check for the key 0x8825 (GPSInfo). If present, it contains
  2830. a dictionary mapping GPS keys to GPS values. For a list of keys,
  2831. see the EXIF specification.
  2832. The "ExifTags" module contains a GPSTAGS dictionary mapping GPS
  2833. tags to tag names.
  2834. + Added DPI read support to the PCX and DCX codecs (info["dpi"]).
  2835. + The "show" methods now uses a built-in image viewer on Windows.
  2836. This viewer creates an instance of the ImageWindow class (see
  2837. below) and keeps it running in a separate thread. NOTE: This
  2838. was disabled in 1.1.5a4.
  2839. + Added experimental "Window" and "ImageWindow" classes to the
  2840. ImageWin module. These classes allow you to create a WCK-style
  2841. toplevel window, and use it to display raster data.
  2842. + Fixed some Python 1.5.2 issues (to build under 1.5.2, use the
  2843. Makefile.pre.in/Setup.in approach)
  2844. + Added support for the TIFF FillOrder tag. PIL can read mode "1",
  2845. "L", "P" and "RGB" images with non-standard FillOrder (based on
  2846. input from Jeff Breidenbach).
  2847. (1.1.4 final released)
  2848. + Fixed ImageTk build problem on Unix.
  2849. (1.1.4b2 released)
  2850. + Improved building on Mac OS X (from Jack Jansen).
  2851. + Improved building on Windows with MinGW (from Klamer Shutte).
  2852. + If no font is specified, ImageDraw now uses the embedded default
  2853. font. Use the "load" or "truetype" methods to load a real font.
  2854. + Added embedded default font to the ImageFont module (currently
  2855. an 8-pixel Courier font, taken from the X window distribution).
  2856. (1.1.4b1 released)
  2857. + Added experimental EXIF support for JPEG files. To extract EXIF
  2858. information from a JPEG file, open the file as usual, and call the
  2859. "_getexif" method. If successful, this method returns a dictionary
  2860. mapping EXIF TIFF tags to values. If the file does not contain EXIF
  2861. data, the "_getexif" method returns None.
  2862. The "ExifTags" module contains a dictionary mapping tags to tag
  2863. names.
  2864. This interface will most likely change in future versions.
  2865. + Fixed a bug when using the "transparency" option with the GIF
  2866. writer.
  2867. + Added limited support for "bitfield compression" in BMP files
  2868. and DIB buffers, for 15-bit, 16-bit, and 32-bit images. This
  2869. also fixes a problem with ImageGrab module when copying screen-
  2870. dumps from the clipboard on 15/16/32-bit displays.
  2871. + Added experimental WAL (Quake 2 textures) loader. To use this
  2872. loader, import WalImageFile and call the "open" method in that
  2873. module.
  2874. (1.1.4a4 released)
  2875. + Added updated SANE driver (Andrew Kuchling, Abel Deuring)
  2876. + Use Python's "mmap" module on non-Windows platforms to read some
  2877. uncompressed formats using memory mapping. Also added a "frombuffer"
  2878. function that allows you to access the contents of an existing string
  2879. or buffer object as if it were an image object.
  2880. + Fixed a memory leak that could appear when processing mode "P"
  2881. images (from Pier Paolo Glave)
  2882. + Ignore Unicode characters in the BDF loader (from Graham Dumpleton)
  2883. (1.1.4a3 released; windows only)
  2884. + Added experimental RGBA-on-RGB drawing support. To use RGBA
  2885. colours on an RGB image, pass "RGBA" as the second string to
  2886. the ImageDraw.Draw constructor.
  2887. + Added support for non-ASCII strings (Latin-1) and Unicode
  2888. to the truetype font renderer.
  2889. + The ImageWin "Dib" object can now be constructed directly from
  2890. an image object.
  2891. + The ImageWin module now allows you use window handles as well
  2892. as device contexts. To use a window handle, wrap the handle in
  2893. an ImageWin.HWND object, and pass in this object instead of the
  2894. device context.
  2895. (1.1.4a2 released)
  2896. + Improved support for 16-bit unsigned integer images (mode "I;16").
  2897. This includes TIFF reader support, and support for "getextrema"
  2898. and "point" (from Klamer Shutte).
  2899. + Made the BdfFontFile reader a bit more robust (from Kevin Cazabon
  2900. and Dmitry Vasiliev)
  2901. + Changed TIFF writer to always write Compression tag, even when
  2902. using the default compression (from Greg Couch).
  2903. + Added "show" support for Mac OS X (from Dan Wolfe).
  2904. + Added clipboard support to the "ImageGrab" module (Windows only).
  2905. The "grabclipboard" function returns an Image object, a list of
  2906. filenames (not in 1.1.4), or None if neither was found.
  2907. (1.1.4a1 released)
  2908. + Improved support for drawing RGB data in palette images. You can
  2909. now use RGB tuples or colour names (see below) when drawing in a
  2910. mode "P" image. The drawing layer automatically assigns color
  2911. indexes, as long as you don't use more than 256 unique colours.
  2912. + Moved self test from MiniTest/test.py to ./selftest.py.
  2913. + Added support for CSS3-style color strings to most places that
  2914. accept colour codes/tuples. This includes the "ImageDraw" module,
  2915. the Image "new" function, and the Image "paste" method.
  2916. Colour strings can use one of the following formats: "#f00",
  2917. "#ff0000", "rgb(255,0,0)", "rgb(100%,0%,0%)", "hsl(0, 100%, 50%)",
  2918. or "red" (most X11-style colour names are supported). See the
  2919. documentation for the "ImageColor" module for more information.
  2920. + Fixed DCX decoder (based on input from Larry Bates)
  2921. + Added "IptcImagePlugin.getiptcinfo" helper to extract IPTC/NAA
  2922. newsphoto properties from JPEG, TIFF, or IPTC files.
  2923. + Support for TrueType/OpenType fonts has been added to
  2924. the standard distribution. You need the freetype 2.0
  2925. library.
  2926. + Made the PCX reader a bit more robust when reading 2-bit
  2927. and 4-bit PCX images with odd image sizes.
  2928. + Added "Kernel" class to the ImageFilter module. This class
  2929. allows you to filter images with user-defined 3x3 and 5x5
  2930. convolution kernels.
  2931. + Added "putdata" support for mode "I", "F" and "RGB".
  2932. + The GIF writer now supports the transparency option (from
  2933. Denis Benoit).
  2934. + A HTML version of the module documentation is now shipped
  2935. with the source code distribution. You'll find the files in
  2936. the Doc subdirectory.
  2937. + Added support for Palm pixmaps (from Bill Janssen). This
  2938. change was listed for 1.1.3, but the "PalmImagePlugin" driver
  2939. didn't make it into the distribution.
  2940. + Improved decoder error messages.
  2941. (1.1.3 final released)
  2942. + Made setup.py look for old versions of zlib. For some back-
  2943. ground, see: https://zlib.net/advisory-2002-03-11.txt
  2944. (1.1.3c2 released)
  2945. + Added setup.py file (tested on Unix and Windows). You still
  2946. need to build libImaging/imaging.lib in the traditional way,
  2947. but the setup.py script takes care of the rest.
  2948. The old Setup.in/Makefile.pre.in build method is still
  2949. supported.
  2950. + Fixed segmentation violation in ANTIALIAS filter (an internal
  2951. buffer wasn't properly allocated).
  2952. (1.1.3c1 released)
  2953. + Added ANTIALIAS downsampling filter for high-quality "resize"
  2954. and "thumbnail" operations. Also added filter option to the
  2955. "thumbnail" operation; the default value is NEAREST, but this
  2956. will most likely change in future versions.
  2957. + Fixed plugin loader to be more robust if the __file__
  2958. variable isn't set.
  2959. + Added seek/tell support (for layers) to the PhotoShop
  2960. loader. Layer 0 is the main image.
  2961. + Added new (but experimental) "ImageOps" module, which provides
  2962. shortcuts for commonly used operations on entire images.
  2963. + Don't mess up when loading PNG images if the decoder leaves
  2964. data in the output buffer. This could cause internal errors
  2965. on some PNG images, with some versions of ZLIB. (Bug report
  2966. and patch provided by Bernhard Herzog.)
  2967. + Don't mess up on Unicode filenames.
  2968. + Don't mess up when drawing on big endian platforms.
  2969. + Made the TIFF loader a bit more robust; it can now read some
  2970. more slightly broken TIFF files (based on input from Ted Wright,
  2971. Bob Klimek, and D. Alan Stewart)
  2972. + Added OS/2 EMX build files (from Andrew MacIntyre)
  2973. + Change "ImageFont" to reject image files if they don't have the
  2974. right mode. Older versions could leak memory for "P" images.
  2975. (Bug reported by Markus Gritsch).
  2976. + Renamed some internal functions to avoid potential build
  2977. problem on Mac OS X.
  2978. + Added DL_EXPORT where relevant (for Cygwin, based on input
  2979. from Robert Yodlowski)
  2980. + (re)moved bogus __init__ call in BdfFontFile (bug spotted
  2981. by Fred Clare)
  2982. + Added "ImageGrab" support (Windows only)
  2983. + Added support for XBM hotspots (based on code contributed by
  2984. Bernhard Herzog).
  2985. + Added write support for more TIFF tags, namely the Artist,
  2986. Copyright, DateTime, ResolutionUnit, Software, XResolution and
  2987. YResolution tags (from Greg Couch)
  2988. + Added TransposedFont wrapper to ImageFont module
  2989. + Added "optimize" flag to GIF encoder. If optimize is present
  2990. and non-zero, PIL will work harder to create a small file.
  2991. + Raise "EOFError" (not IndexError) when reading beyond the
  2992. end of a TIFF sequence.
  2993. + Support rewind ("seek(0)") for GIF and TIFF sequences.
  2994. + Load grayscale GIF images as mode "L"
  2995. + Added DPI read/write support to the JPEG codec. The decoder
  2996. sets the info["dpi"] attribute for JPEG files with JFIF dpi
  2997. settings. The encoder uses the "dpi" option:
  2998. im = Image.open("file.jpg")
  2999. dpi = im.info["dpi"] # raises KeyError if DPI not known
  3000. im.save("out.jpg", dpi=dpi)
  3001. Note that PIL doesn't always preserve the "info" attribute
  3002. for normal image operations.
  3003. (1.1.2c1 and 1.1.2 final released)
  3004. + Adapted to Python 2.1. Among other things, all uses of the
  3005. "regex" module have been replaced with "re".
  3006. + Fixed attribute error when reading large PNG files (this bug
  3007. was introduced in maintenance code released after the 1.1.1
  3008. release)
  3009. + Ignore non-string objects in sys.path
  3010. + Fixed Image.transform(EXTENT) for negative xoffsets
  3011. + Fixed loading of image plugins if PIL is installed as a package.
  3012. (The plugin loader now always looks in the directory where the
  3013. Image.py module itself is found, even if that directory isn't on
  3014. the standard search path)
  3015. + The Png plugin has been added to the list of preloaded standard
  3016. formats
  3017. + Fixed bitmap/text drawing in fill mode.
  3018. + Fixed "getextrema" to work also for multiband images.
  3019. + Added transparency support for L and P images to the PNG codec.
  3020. + Improved support for read-only images. The "load" method now
  3021. sets the "readonly" attribute for memory-mapped images. Operations
  3022. that modifies an image in place (such as "paste" and drawing operations)
  3023. creates an in-memory copy of the image, if necessary. (before this
  3024. change, any attempt to modify a memory-mapped image resulted in a
  3025. core dump...)
  3026. + Added special cases for lists everywhere PIL expects a sequence.
  3027. This should speed up things like "putdata" and drawing operations.
  3028. + The Image.offset method is deprecated. Use the ImageChops.offset
  3029. function instead.
  3030. + Changed ImageChops operators to copy palette and info dictionary
  3031. from the first image argument.
  3032. (1.1.1 released)
  3033. + Additional fixes for Python 1.6/2.0, including TIFF "save" bug.
  3034. + Changed "init" to properly load plugins when PIL is used as a
  3035. package.
  3036. + Fixed broken "show" method (on Unix)
  3037. *** Changes from release 1.0 to 1.1 ***
  3038. + Adapted to Python 1.6 ("append" and other method changes)
  3039. + Fixed Image.paste when pasting with solid colour and matte
  3040. layers ("L" or "RGBA" masks) (bug reported by Robert Kern)
  3041. + To make it easier to distribute prebuilt versions of PIL,
  3042. the tkinit binding stuff has been moved to a separate
  3043. extension module, named "_imagingtk".
  3044. *** Changes from release 0.3b2 to 1.0 final ***
  3045. + If there's no 16-bit integer (like on a Cray T3E), set
  3046. INT16 to the smallest integer available. Most of the
  3047. library works just fine anyway (from Bill Crutchfield)
  3048. + Tweaks to make drawing work on big-endian platforms.
  3049. (1.0c2 released)
  3050. + If PIL is built with the WITH_TKINTER flag, ImageTk can
  3051. automatically hook into a standard Tkinter build. You
  3052. no longer need to build your own Tkinter to use the
  3053. ImageTk module.
  3054. The old way still works, though. For more information,
  3055. see Tk/install.txt.
  3056. + Some tweaks to ImageTk to support multiple Tk interpreters
  3057. (from Greg Couch).
  3058. + ImageFont "load_path" now scans directory mentioned in .pth
  3059. files (from Richard Jones).
  3060. (1.0c1 released)
  3061. + The TIFF plugin has been rewritten. The new plugin fully
  3062. supports all major PIL image modes (including F and I).
  3063. + The ImageFile module now includes a Parser class, which can
  3064. be used to incrementally decode an image file (while down-
  3065. loading it from the net, for example). See the handbook for
  3066. details.
  3067. + "show" now converts non-standard modes to "L" or "RGB" (as
  3068. appropriate), rather than writing weird things to disk for
  3069. "xv" to choke upon. (bug reported by Les Schaffer).
  3070. (1.0b2 released)
  3071. + Major speedups for rotate, transform(EXTENT), and transform(AFFINE)
  3072. when using nearest neighbour resampling.
  3073. + Modified ImageDraw to be compatible with the Arrow graphics
  3074. interface. See the handbook for details.
  3075. + PIL now automatically loads file codecs when used as a package
  3076. (from The Dragon De Monsyne). Also included an __init__.py file
  3077. in the standard distribution.
  3078. + The GIF encoder has been modified to produce much smaller files.
  3079. PIL now uses a run-length encoding method to encode GIF files.
  3080. On a random selection of GIF images grabbed from the web, this
  3081. version makes the images about twice as large as the original
  3082. LZW files, where the earlier version made them over 5 times
  3083. larger. YMMV, of course.
  3084. + Added PCX write support (works with "1", "P", "L", and "RGB")
  3085. + Added "bitmap" and "textsize" methods to ImageDraw.
  3086. + Improved font rendering code. Fixed a bug or two, and moved
  3087. most of the time critical stuff to C.
  3088. + Removed "bdf2pil.py". Use "pilfont.py" instead!
  3089. + Improved 16-bit support (still experimental, though).
  3090. The following methods now support "I;16" and "I;16B" images:
  3091. "getpixel", "copy", "convert" (to and from mode "I"), "resize",
  3092. "rotate", and "transform" with nearest neighbour filters, and
  3093. "save" using the IM format. The "new" and "open" functions
  3094. also work as expected. On Windows, 16-bit files are memory
  3095. mapped.
  3096. NOTE: ALL other operations are still UNDEFINED on 16-bit images.
  3097. + The "paste" method now supports constant sources.
  3098. Just pass a colour value (a number or a tuple, depending on
  3099. the target image mode) instead of the source image.
  3100. This was in fact implemented in an inefficient way in
  3101. earlier versions (the "paste" method generated a temporary
  3102. source image if you passed it a colour instead of an image).
  3103. In this version, this is handled on the C level instead.
  3104. + Added experimental "RGBa" mode support.
  3105. An "RGBa" image is an RGBA image where the colour components
  3106. have have been premultiplied with the alpha value. PIL allows
  3107. you to convert an RGBA image to an RGBa image, and to paste
  3108. RGBa images on top of RGB images. Since this saves a bunch
  3109. of multiplications and shifts, it is typically about twice
  3110. as fast an ordinary RGBA paste.
  3111. + Eliminated extra conversion step when pasting "RGBA" or "RGBa"
  3112. images on top of "RGB" images.
  3113. + Fixed Image.BICUBIC resampling for "RGB" images.
  3114. + Fixed PCX image file handler to properly read 8-bit PCX
  3115. files (bug introduced in 1.0b1, reported by Bernhard
  3116. Herzog)
  3117. + Fixed PSDraw "image" method to restore the coordinate
  3118. system.
  3119. + Fixed "blend" problem when applied to images that was
  3120. not already loaded (reported by Edward C. Jones)
  3121. + Fixed -f option to "pilconvert.py" (from Anthony Baxter)
  3122. (1.0b1 released)
  3123. + Added Toby J. Sargeant's quantization package. To enable
  3124. quantization, use the "palette" option to "convert":
  3125. imOut = im.convert("P", palette=Image.ADAPTIVE)
  3126. This can be used with "L", "P", and "RGB" images. In this
  3127. version, dithering cannot be used with adaptive palettes.
  3128. Note: ADAPTIVE currently maps to median cut quantization
  3129. with 256 colours. The quantization package also contains
  3130. a maximum coverage quantizer, which will be supported by
  3131. future versions of PIL.
  3132. + Added Eric S. Raymond's "pildriver" image calculator to the
  3133. distribution. See the docstring for more information.
  3134. + The "offset" method no longer dumps core if given positive
  3135. offsets (from Charles Waldman).
  3136. + Fixed a resource leak that could cause ImageWin to run out of
  3137. GDI resources (from Roger Burnham).
  3138. + Added "arc", "chord", and "pieslice" methods to ImageDraw (inspired
  3139. by code contributed by Richard Jones).
  3140. + Added experimental 16-bit support, via modes "I;16" (little endian
  3141. data) and "I;16B" (big endian). Only a few methods properly support
  3142. such images (see above).
  3143. + Added XV thumbnail file handler (from Gene Cash).
  3144. + Fixed BMP image file handler to handle palette images with small
  3145. palettes (from Rob Hooft).
  3146. + Fixed Sun raster file handler for palette images (from Charles
  3147. Waldman).
  3148. + Improved various internal error messages.
  3149. + Fixed Path constructor to handle arbitrary sequence objects. This
  3150. also affects the ImageDraw class (from Richard Jones).
  3151. + Fixed a bug in JpegDecode that caused PIL to report "decoder error
  3152. -2" for some progressive JPEG files (reported by Magnus Källström,
  3153. who also provided samples).
  3154. + Fixed a bug in JpegImagePlugin that caused PIL to hang when loading
  3155. JPEG files using 16-bit quantization tables.
  3156. + The Image "transform" method now supports Image.QUAD transforms.
  3157. The data argument is an 8-tuple giving the upper left, lower
  3158. left, lower right, and upper right corner of the source quadri-
  3159. lateral. Also added Image.MESH transform which takes a list
  3160. of quadrilaterals.
  3161. + The Image "resize", "rotate", and "transform" methods now support
  3162. Image.BILINEAR (2x2) and Image.BICUBIC (4x4) resampling filters.
  3163. Filters can be used with all transform methods.
  3164. + The ImageDraw "rectangle" method now includes both the right
  3165. and the bottom edges when drawing filled rectangles.
  3166. + The TGA decoder now works properly for runlength encoded images
  3167. which have more than one byte per pixel.
  3168. + "getbands" on an YCbCr image now returns ("Y", "Cb", "Cr")
  3169. + Some file drivers didn't handle the optional "modify" argument
  3170. to the load method. This resulted in exceptions when you used
  3171. "paste" (and other methods that modify an image in place) on a
  3172. newly opened file.
  3173. *** Changes from release 0.2 (b5) to 0.3 (b2) ***
  3174. (0.3b2 released)
  3175. The test suite includes 825 individual tests.
  3176. + An Image "getbands" method has been added. It returns a tuple
  3177. containing the individual band names for this image. To figure
  3178. out how many bands an image has, use "len(im.getbands())".
  3179. + An Image "putpixel" method has been added.
  3180. + The Image "point" method can now be used to convert "L" images
  3181. to any other format, via a lookup table. That table should
  3182. contain 256 values for each band in the output image.
  3183. + Some file drivers (including FLI/FLC, GIF, and IM) accidentally
  3184. overwrote the offset method with an internal attribute. All
  3185. drivers have been updated to use private attributes where
  3186. possible.
  3187. + The Image "histogram" method now works for "I" and "F" images.
  3188. For these modes, PIL divides the range between the min and
  3189. max values used in the image into 256 bins. You can also
  3190. pass in your own min and max values via the "extrema" option:
  3191. h = im.histogram(extrema=(0, 255))
  3192. + An Image "getextrema" method has been added. It returns the
  3193. min and max values used in the image. In this release, this
  3194. works for single band images only.
  3195. + Changed the PNG driver to load and save mode "I" images as
  3196. 16-bit images. When saving, values outside the range 0..65535
  3197. are clipped.
  3198. + Fixed ImageFont.py to work with the new "pilfont" compiler.
  3199. + Added JPEG "save" and "draft" support for mode "YCbCr" images.
  3200. Note that if you save an "YCbCr" image as a JPEG file and read
  3201. it back, it is read as an RGB file. To get around this, you
  3202. can use the "draft" method:
  3203. im = Image.open("color.jpg")
  3204. im.draft("YCbCr", im.size)
  3205. + Read "RGBA" TGA images. Also fixed the orientation bug; all
  3206. images should now come out the right way.
  3207. + Changed mode name (and internal representation) from "YCrCb"
  3208. to "YCbCr" (!)
  3209. *** WARNING: MAY BREAK EXISTING CODE ***
  3210. (0.3b1 released)
  3211. The test suite includes 750 individual tests.
  3212. + The "pilfont" package is now included in the standard PIL
  3213. distribution. The pilfont utility can be used to convert
  3214. X BDF and PCF raster font files to a format understood by
  3215. the ImageFont module.
  3216. + GIF files are now interlaced by default. To write a
  3217. non-interlaced file, pass interlace=0 to the "save"
  3218. method.
  3219. + The default string format has changed for the "fromstring"
  3220. and "tostring" methods.
  3221. *** WARNING: MAY BREAK EXISTING CODE ***
  3222. NOTE: If no extra arguments are given, the first line in
  3223. the string buffer is the top line of the image, instead of
  3224. the bottom line. For RGB images, the string now contains
  3225. 3 bytes per pixel instead of 4. These changes were made
  3226. to make the methods compatible with the "fromstring"
  3227. factory function.
  3228. To get the old behaviour, use the following syntax:
  3229. data = im.tostring("raw", "RGBX", 0, -1)
  3230. im.fromstring(data, "raw", "RGBX", 0, -1)
  3231. + "new" no longer gives a MemoryError if the width or height
  3232. is zero (this only happened on platforms where malloc(0)
  3233. or calloc(0) returns NULL).
  3234. + "new" now adds a default palette object to "P" images.
  3235. + You can now convert directly between all modes supported by
  3236. PIL. When converting colour images to "P", PIL defaults to
  3237. a "web" palette and dithering. When converting greyscale
  3238. images to "1", PIL uses a thresholding and dithering.
  3239. + Added a "dither" option to "convert". By default, "convert"
  3240. uses floyd-steinberg error diffusion for "P" and "1" targets,
  3241. so this option is only used to *disable* dithering. Allowed
  3242. values are NONE (no dithering) or FLOYDSTEINBERG (default).
  3243. imOut = im.convert("P", dither=Image.NONE)
  3244. + Added a full set of "I" decoders. You can use "fromstring"
  3245. (and file decoders) to read any standard integer type as an
  3246. "I" image.
  3247. + Added some support for "YCbCr" images (creation, conversion
  3248. from/to "L" and "RGB", IM YCC load/save)
  3249. + "getpixel" now works properly with fractional coordinates.
  3250. + ImageDraw "setink" now works with "I", "F", "RGB", "RGBA",
  3251. "RGBX", "CMYK", and "YCbCr" images.
  3252. + ImImagePlugin no longer attaches palettes to "RGB" images.
  3253. + Various minor fixes.
  3254. (0.3a4 released)
  3255. + Added experimental IPTC/NAA support.
  3256. + Eliminated AttributeError exceptions after "crop" (from
  3257. Skip Montanaro)
  3258. + Reads some uncompressed formats via memory mapping (this
  3259. is currently supported on Win32 only)
  3260. + Fixed some last minute glitches in the last alpha release
  3261. (Types instead of types in Image.py, version numbers, etc.)
  3262. + Eliminated some more bogus compiler warnings.
  3263. + Various fixes to make PIL compile and run smoother on Macs
  3264. (from Jack Jansen).
  3265. + Fixed "fromstring" and "tostring" for mode "I" images.
  3266. (0.3a3 released)
  3267. The test suite includes 530 individual tests.
  3268. + Eliminated unexpected side-effect in "paste" with matte. "paste"
  3269. now works properly also if compiled with "gcc".
  3270. + Adapted to Python 1.5 (build issues only)
  3271. + Fixed the ImageDraw "point" method to draw also the last
  3272. point (!).
  3273. + Added "I" and "RGBX" support to Image.new.
  3274. + The plugin path is now properly prepended to the module search
  3275. path when a plugin module is imported.
  3276. + Added "draw" method to the ImageWin.Dib class. This is used by
  3277. Topaz to print images on Windows printers.
  3278. + "convert" now supports conversions from "P" to "1" and "F".
  3279. + "paste" can now take a colour instead of an image as the first argument.
  3280. The colour must match the colour argument given to the new function, and
  3281. match the mode of the target image.
  3282. + Fixed "paste" to allow a mask also for mode "F" images.
  3283. + The BMP driver now saves mode "1" images. When loading images, the mode
  3284. is set to "L" for 8-bit files with greyscale palettes, and to "P" for
  3285. other 8-bit files.
  3286. + The IM driver now reads and saves "1" images (file modes "0 1" or "L 1").
  3287. + The JPEG and GIF drivers now saves "1" images. For JPEG, the image
  3288. is saved as 8-bit greyscale (it will load as mode "L"). For GIF, the
  3289. image will be loaded as a "P" image.
  3290. + Fixed a potential buffer overrun in the GIF encoder.
  3291. (0.3a2 released)
  3292. The test suite includes 400 individual tests.
  3293. + Improvements to the test suite revealed a number of minor bugs, which
  3294. are all fixed. Note that crop/paste, 32-bit ImageDraw, and ImageFont
  3295. are still weak spots in this release.
  3296. + Added "putpalette" method to the Image class. You can use this
  3297. to add or modify the palette for "P" and "L" images. If a palette
  3298. is added to an "L" image, it is automatically converted to a "P"
  3299. image.
  3300. + Fixed ImageDraw to properly handle 32-bit image memories
  3301. ("RGB", "RGBA", "CMYK", "F")
  3302. + Fixed "fromstring" and "tostring" not to mess up the mode attribute
  3303. in default mode.
  3304. + Changed ImPlatform.h to work on CRAY's (don't have one at home, so I
  3305. haven't tried it). The previous version assumed that either "short"
  3306. or "int" were 16-bit wide. PIL still won't compile on platforms where
  3307. neither "short", "int" nor "long" are 32-bit wide.
  3308. + Added file= and data= keyword arguments to PhotoImage and BitmapImage.
  3309. This allows you to use them as drop-in replacements for the corre-
  3310. sponding Tkinter classes.
  3311. + Removed bogus references to the crack coder (ImagingCrack).
  3312. (0.3a1 released)
  3313. + Make sure image is loaded in "tostring".
  3314. + Added floating point packer (native 32-bit floats only).
  3315. *** Changes from release 0.1b1 to 0.2 (b5) ***
  3316. + Modified "fromstring" and "tostring" methods to use file codecs.
  3317. Also added "fromstring" factory method to create an image directly
  3318. from data in a string.
  3319. + Added support for 32-bit floating point images (mode "F"). You
  3320. can convert between "L" and "F" images, and apply a subset of the
  3321. available image processing methods on the "F" image. You can also
  3322. read virtually any data format into a floating point image memory;
  3323. see the section on "Decoding Floating Point Data" in the handbook
  3324. for more information.
  3325. (0.2b5 released; on windows only)
  3326. + Fixed the tobitmap() method to work properly for small bitmaps.
  3327. + Added RMS and standard deviation to the ImageStat.Stat class. Also
  3328. modified the constructor to take an optional feature mask, and also
  3329. to accept either an image or a list containing the histogram data.
  3330. + The BitmapImage code in ImageTk can now use a special bitmap
  3331. decoder, which has to be patched into Tk. See the "Tk/pilbitmap.txt"
  3332. file for details. If not installed, bitmaps are transferred to Tk as
  3333. XBM strings.
  3334. + The PhotoImage code in ImageTk now uses a Tcl command ("PyImagingPaste")
  3335. instead of a special image type. This gives somewhat better performance,
  3336. and also allows PIL to support transparency.
  3337. *** WARNING: TKAPPINIT MUST BE MODIFIED ***
  3338. + ImageTk now honours the alpha layer in RGBA images. Only fully
  3339. transparent pixels are made transparent (that is, the alpha layer
  3340. is treated as a mask). To treat the alpha laters as a matte, you
  3341. must paste the image on the background before handing it over to
  3342. ImageTk.
  3343. + Added McIdas reader (supports 8-bit images only).
  3344. + PIL now preloads drivers for BMP, GIF, JPEG, PPM, and TIFF. As
  3345. long as you only load and save these formats, you don't have to
  3346. wait for a full scan for drivers. To force scanning, call the
  3347. Image.init() function.
  3348. + The "seek" and "tell" methods are now always available, also for
  3349. single-frame images.
  3350. + Added optional mask argument to histogram method. The mask may
  3351. be an "1" or "L" image with the same size as the original image.
  3352. Only pixels where the mask is non-zero are included in the
  3353. histogram.
  3354. + The "paste" method now allows you to specify only the lower left
  3355. corner (a 2-tuple), instead of the full region (a 4-tuple).
  3356. + Reverted to old plugin scanning model; now scans all directory
  3357. names in the path when looking for plugins.
  3358. + Added PIXAR raster support. Only uncompressed ("dumped") RGB
  3359. images can currently be read (based on information provided
  3360. by Greg Coats).
  3361. + Added FlashPix (FPX) read support. Reads all pixel formats, but
  3362. only the highest resolution is read, and the viewing transform is
  3363. currently ignored.
  3364. + Made PNG encoding somewhat more efficient in "optimize" mode; a
  3365. bug in 0.2b4 didn't enable all predictor filters when optimized
  3366. storage were requested.
  3367. + Added Microsoft Image Composer (MIC) read support. When opened,
  3368. the first sprite in the file is loaded. You can use the seek method
  3369. to load additional sprites from the file.
  3370. + Properly reads "P" and "CMYK" PSD images.
  3371. + "pilconvert" no longer optimizes by default; use the -o option to
  3372. make the file as small as possible (at the expense of speed); use
  3373. the -q option to set the quality when compressing to JPEG.
  3374. + Fixed "crop" not to drop the palette for "P" images.
  3375. + Added and verified FLC support.
  3376. + Paste with "L" or "RGBA" alpha is now several times faster on most
  3377. platforms.
  3378. + Changed Image.new() to initialize the image to black, as described
  3379. in the handbook. To get an uninitialized image, use None as the
  3380. colour.
  3381. + Fixed the PDF encoder to produce a valid header; Acrobat no longer
  3382. complains when you load PDF images created by PIL.
  3383. + PIL only scans fully-qualified directory names in the path when
  3384. looking for plugins.
  3385. *** WARNING: MAY BREAK EXISTING CODE ***
  3386. + Faster implementation of "save" used when filename is given,
  3387. or when file object has "fileno" and "flush" methods.
  3388. + Don't crash in "crop" if region extends outside the source image.
  3389. + Eliminated a massive memory leak in the "save" function.
  3390. + The GIF decoder doesn't crash if the code size is set to an illegal
  3391. value. This could happen since another bug didn't handle local
  3392. palettes properly if they didn't have the same size as the
  3393. global palette (not very common).
  3394. + Added predictor support (TIFF 6.0 section 14) to the TIFF decoder.
  3395. + Fixed palette and padding problems in BMP driver. Now properly
  3396. writes "1", "L", "P" and "RGB" images.
  3397. + Fixed getpixel()/getdata() to return correct pixel values.
  3398. + Added PSD (PhotoShop) read support. Reads both uncompressed
  3399. and compressed images of most types.
  3400. + Added GIF write support (writes "uncompressed" GIF files only,
  3401. due to unresolvable licensing issues). The "gifmaker.py" script
  3402. can be used to create GIF animations.
  3403. + Reads 8-bit "L" and "P" TGA images. Also reads 16-bit "RGB"
  3404. images.
  3405. + Added FLI read support. This driver has only been tested
  3406. on a few FLI samples.
  3407. + Reads 2-bit and 4-bit PCX images.
  3408. + Added MSP read and write support. Both version 1 and 2 can be
  3409. read, but only version 1 (uncompressed) files are written.
  3410. + Fixed a bug in the FLI/FLC identification code that caused the
  3411. driver to raise an exception when parsing valid FLI/FLC files.
  3412. + Improved performance when loading file format plugins, and when
  3413. opening files.
  3414. + Added GIF animation support, via the "seek" and "tell" methods.
  3415. You can use "player.py" to play an animated GIF file.
  3416. + Removed MNG support, since the spec is changing faster than I
  3417. can change the code. I've added support for the experimental
  3418. ARG format instead. Contact me for more information on this
  3419. format.
  3420. + Added keyword options to the "save" method. The following options
  3421. are currently supported:
  3422. format option description
  3423. --------------------------------------------------------
  3424. JPEG optimize minimize output file at the
  3425. expense of compression speed.
  3426. JPEG progressive enable progressive output. the
  3427. option value is ignored.
  3428. JPEG quality set compression quality (1-100).
  3429. the default value is 75.
  3430. JPEG smooth smooth dithered images. value
  3431. is strength (1-100). default is
  3432. off (0).
  3433. PNG optimize minimize output file at the
  3434. expense of compression speed.
  3435. Expect more options in future releases. Also note that
  3436. file writers silently ignore unknown options.
  3437. + Plugged memory leaks in the PNG and TIFF decoders.
  3438. + Added PNG write support.
  3439. + (internal) RGB unpackers and converters now set the pad byte
  3440. to 255 (full opacity).
  3441. + Properly handles the "transparency" property for GIF, PNG
  3442. and XPM files.
  3443. + Added a "putalpha" method, allowing you to attach a "1" or "L"
  3444. image as the alpha layer to an "RGBA" image.
  3445. + Various improvements to the sample scripts:
  3446. "pilconvert" Carries out some extra tricks in order to make
  3447. the resulting file as small as possible.
  3448. "explode" (NEW) Split an image sequence into individual frames.
  3449. "gifmaker" (NEW) Convert a sequence file into a GIF animation.
  3450. Note that the GIF encoder create "uncompressed" GIF
  3451. files, so animations created by this script are
  3452. rather large (typically 2-5 times the compressed
  3453. sizes).
  3454. "image2py" (NEW) Convert a single image to a python module. See
  3455. comments in this script for details.
  3456. "player" If multiple images are given on the command line,
  3457. they are interpreted as frames in a sequence. The
  3458. script assumes that they all have the same size.
  3459. Also note that this script now can play FLI/FLC
  3460. and GIF animations.
  3461. This player can also execute embedded Python
  3462. animation applets (ARG format only).
  3463. "viewer" Transparent images ("P" with transparency property,
  3464. and "RGBA") are superimposed on the standard Tk back-
  3465. ground.
  3466. + Fixed colour argument to "new". For multilayer images, pass a
  3467. tuple: (Red, Green, Blue), (Red, Green, Blue, Alpha), or (Cyan,
  3468. Magenta, Yellow, Black).
  3469. + Added XPM (X pixmap) read support.
  3470. (0.2b3 released)
  3471. + Added MNG (multi-image network graphics) read support. "Ming"
  3472. is a proposed animation standard, based on the PNG file format.
  3473. You can use the "player" sample script to display some flavours
  3474. of this format. The MNG standard is still under development,
  3475. as is this driver. More information, including sample files,
  3476. can be found at <ftp://swrinde.nde.swri.edu/pub/mng>
  3477. + Added a "verify" method to images loaded from file. This method
  3478. scans the file for errors, without actually decoding the image
  3479. data, and raises a suitable exception if it finds any problems.
  3480. Currently implemented for PNG and MNG files only.
  3481. + Added support for interlaced GIF images.
  3482. + Added PNG read support -- if linked with the ZLIB compression library,
  3483. PIL reads all kinds of PNG images, except interlaced files.
  3484. + Improved PNG identification support -- doesn't mess up on unknown
  3485. chunks, identifies all possible PNG modes, and verifies checksum
  3486. on PNG header chunks.
  3487. + Added an experimental reader for placable Windows Meta Files (WMF).
  3488. This reader is still very incomplete, but it illustrates how PIL's
  3489. drawing capabilities can be used to render vector and metafile
  3490. formats.
  3491. + Added restricted drivers for images from Image Tools (greyscale
  3492. only) and LabEye/IFUNC (common interchange modes only).
  3493. + Some minor improvements to the sample scripts provided in the
  3494. "Scripts" directory.
  3495. + The test images have been moved to the "Images" directory.
  3496. (0.2b2 released)
  3497. (0.2b1 released; Windows only)
  3498. + Fixed filling of complex polygons. The ImageDraw "line" and
  3499. "polygon" methods also accept Path objects.
  3500. + The ImageTk "PhotoImage" object can now be constructed directly
  3501. from an image. You can also pass the object itself to Tkinter,
  3502. instead of using the "image" attribute. Finally, using "paste"
  3503. on a displayed image automatically updates the display.
  3504. + The ImageTk "BitmapImage" object allows you to create transparent
  3505. overlays from 1-bit images. You can pass the object itself to
  3506. Tkinter. The constructor takes the same arguments as the Tkinter
  3507. BitmapImage class; use the "foreground" option to set the colour
  3508. of the overlay.
  3509. + Added a "putdata" method to the Image class. This can be used to
  3510. load a 1-layer image with data from a sequence object or a string.
  3511. An optional floating point scale and offset can be used to adjust
  3512. the data to fit into the 8-bit pixel range. Also see the "getdata"
  3513. method.
  3514. + Added the EXTENT method to the Image "transform" method. This can
  3515. be used to quickly crop, stretch, shrink, or mirror a subregion
  3516. from another image.
  3517. + Adapted to Python 1.4.
  3518. + Added a project makefile for Visual C++ 4.x. This allows you to
  3519. easily build a dynamically linked version of PIL for Windows 95
  3520. and NT.
  3521. + A Tk "booster" patch for Windows is available. It gives dramatic
  3522. performance improvements for some displays. Has been tested with
  3523. Tk 4.2 only, but is likely to work with Tk 4.1 as well. See the Tk
  3524. subdirectory for details.
  3525. + You can now save 1-bit images in the XBM format. In addition, the
  3526. Image class now provides a "tobitmap" method which returns a string
  3527. containing an XBM representation of the image. Quite handy to use
  3528. with Tk.
  3529. + More conversions, including "RGB" to "1" and more.
  3530. (0.2a1 released)
  3531. + Where earlier versions accepted lists, this version accepts arbitrary
  3532. Python sequences (including strings, in some cases). A few resource
  3533. leaks were plugged in the process.
  3534. + The Image "paste" method now allows the box to extend outside
  3535. the target image. The size of the box, the image to be pasted,
  3536. and the optional mask must still match.
  3537. + The ImageDraw module now supports filled polygons, outlined and
  3538. filled ellipses, and text. Font support is rudimentary, though.
  3539. + The Image "point" method now takes an optional mode argument,
  3540. allowing you to convert the image while translating it. Currently,
  3541. this can only be used to convert "L" or "P" images to "1" images
  3542. (creating thresholded images or "matte" masks).
  3543. + An Image "getpixel" method has been added. For single band images,
  3544. it returns the pixel value at a given position as an integer.
  3545. For n-band images, it returns an n-tuple of integers.
  3546. + An Image "getdata" method has been added. It returns a sequence
  3547. object representing the image as a 1-dimensional array. Only len()
  3548. and [] can be used with this sequence. This method returns a
  3549. reference to the existing image data, so changes in the image
  3550. will be immediately reflected in the sequence object.
  3551. + Fixed alignment problems in the Windows BMP writer.
  3552. + If converting an "RGB" image to "RGB" or "L", you can give a second
  3553. argument containing a colour conversion matrix.
  3554. + An Image "getbbox" method has been added. It returns the bounding
  3555. box of data in an image, considering the value 0 as background.
  3556. + An Image "offset" method has been added. It returns a new image
  3557. where the contents of the image have been offset the given distance
  3558. in X and/or Y direction. Data wraps between edges.
  3559. + Saves PDF images. The driver creates a binary PDF 1.1 files, using
  3560. JPEG compression for "L", "RGB", and "CMYK" images, and hex encoding
  3561. (same as for PostScript) for other formats.
  3562. + The "paste" method now accepts "1" masks. Zero means transparent,
  3563. any other pixel value means opaque. This is faster than using an
  3564. "L" transparency mask.
  3565. + Properly writes EPS files (and properly prints images to postscript
  3566. printers as well).
  3567. + Reads 4-bit BMP files, as well as 4 and 8-bit Windows ICO and CUR
  3568. files. Cursor animations are not supported.
  3569. + Fixed alignment problems in the Sun raster loader.
  3570. + Added "draft" and "thumbnail" methods. The draft method is used
  3571. to optimize loading of JPEG and PCD files, the thumbnail method is
  3572. used to create a thumbnail representation of an image.
  3573. + Added Windows display support, via the ImageWin class (see the
  3574. handbook for details).
  3575. + Added raster conversion for EPS files. This requires GNU or Aladdin
  3576. Ghostscript, and probably works on UNIX only.
  3577. + Reads PhotoCD (PCD) images. The base resolution (768x512) can be
  3578. read from a PhotoCD file.
  3579. + Eliminated some compiler warnings. Bindings now compile cleanly in C++
  3580. mode. Note that the Imaging library itself must be compiled in C mode.
  3581. + Added "bdf2pil.py", which converts BDF fonts into images with associated
  3582. metrics. This is definitely work in progress. For info, see description
  3583. in script for details.
  3584. + Fixed a bug in the "ImageEnhance.py" module.
  3585. + Fixed a bug in the netpbm save hack in "GifImagePlugin.py"
  3586. + Fixed 90 and 270 degree rotation of rectangular images.
  3587. + Properly reads 8-bit TIFF palette-color images.
  3588. + Reads plane separated RGB and CMYK TIFF images.
  3589. + Added driver debug mode. This is enabled by setting Image.DEBUG
  3590. to a non-zero value. Try the -D option to "pilfile.py" and see what
  3591. happens.
  3592. + Don't crash on "atend" constructs in PostScript files.
  3593. + Only the Image module imports _imaging directly. Other modules
  3594. should refer to the binding module as "Image.core".
  3595. *** Changes from release 0.0 to 0.1 (b1) ***
  3596. + A handbook is available (distributed separately).
  3597. + The coordinate system is changed so that (0,0) is now located
  3598. in the upper left corner. This is in compliancy with ISO 12087
  3599. and 90% of all other image processing and graphics libraries.
  3600. + Modes "1" (bilevel) and "P" (palette) have been introduced. Note
  3601. that bilevel images are stored with one byte per pixel.
  3602. + The Image "crop" and "paste" methods now accepts None as the
  3603. box argument, to refer to the full image (self, that is).
  3604. + The Image "crop" method now works properly.
  3605. + The Image "point" method is now available. You can use either a
  3606. lookup table or a function taking one argument.
  3607. + The Image join function has been renamed to "merge".
  3608. + An Image "composite" function has been added. It is identical
  3609. to copy() followed by paste(mask).
  3610. + An Image "eval" function has been added. It is currently identical
  3611. to point(function); that is, only a single image can be processed.
  3612. + A set of channel operations has been added. See the "ImageChops"
  3613. module, test_chops.py, and the handbook for details.
  3614. + Added the "pilconvert" utility, which converts image files. Note
  3615. that the number of output formats are still quite restricted.
  3616. + Added the "pilfile" utility, which quickly identifies image files
  3617. (without loading them, in most cases).
  3618. + Added the "pilprint" utility, which prints image files to Postscript
  3619. printers.
  3620. + Added a rudimentary version of the "pilview" utility, which is
  3621. simple image viewer based on Tk. Only File/Exit and Image/Next
  3622. works properly.
  3623. + An interface to Tk has been added. See "Lib/ImageTk.py" and README
  3624. for details.
  3625. + An interface to Jack Jansen's Img library has been added (thanks to
  3626. Jack). This allows you to read images through the Img extensions file
  3627. format handlers. See the file "Lib/ImgExtImagePlugin.py" for details.
  3628. + Postscript printing is provided through the PSDraw module. See the
  3629. handbook for details.