- Format dates in item lists (#1707)
- Guard dtype types (#1711, #1714, #1716)
- Better handle IndicaLabs tiff files (#1717)
- Better detect files with geotransform data that aren't geospatial (#1718)
- Better scale float-valued tiles (#1725)
- Fix an issue searching for annotation metadata on items that a user doesn't have permissions to view (#1723)
- Fix a typo in a column header (#1727)
- Support setting axis actual values in the zarr sink. Display these in the frame selector (#1625)
- Speed up recursive item lists (#1694)
- Better handle images with signed pixel data (#1695)
- Reduce loading geojs when switching views in Girder (#1699)
- Don't compute channel window in zarr sinks (#1705)
- Support generalized application buttons (#1692)
- Don't use a default for yaml config files except .large_image_config.yaml (#1685)
- Some checks for repeated values in the item lists were wrong (#1686)
- Better support creating zarr sinks from multiple processes (#1687)
- Add support for Python 3.13 (#1675)
- Better handle images without enough tile layers (#1648)
- Add users option to config files; have a default config file (#1649)
- Remove no longer used code; adjust item list slightly (#1651, #1668)
- Reduce updates when showing item lists; add a waiting spinner (#1653)
- Update item lists check for large images when toggling recurse (#1654)
- Support named item lists (#1665)
- Add options to group within item lists (#1666)
- Make the filter field in item lists wider (#1669, #1671)
- Add a navigate option to item lists (#1659)
- Handle a rasterio deprecation (#1655)
- Handle a variation in a bioformats exception (#1656)
- Increase logging slow histograms (#1658)
- Use paginated item lists (#1664)
- When in-line editing yaml and other files, the tab key now uses spaces (#1667)
- Changed the parsing of the open parameter in the algorithm progression example (#1677)
- Fix styling images with empty tile layers (#1650)
- Add a guard around sorting item lists (#1663)
- Fix some issues with possible numpy 2.x overflows (#1672)
- Update zarr dependencies (#1646)
- Fixed an issue correlating bounding boxes across multiple annotations (#1647)
- Only list computable plot columns if there are other numeric columns (#1634)
- Allow canceling plottable data requests (#1645)
- List official yaml mime type for the multi source (#1636)
- Speed up correlating data files with annotations (#1642)
- Support dict with MultiFileTileSource (#1641)
- The PIL source reads more multi-frame images (#1643)
- Add an extension and mimetype to the listed openjpeg handlers (#1644)
- Fix an issue when asking not to resample a GDAL tile iterator (#1640)
- Fix scaling small images in the multi source (#1633)
- Add the option to compute additional columns for plottable data (#1626)
- Fix scaling small images in the multi source with bicubic smoothing (#1627)
- Fix correlating annotation bounding boxes on adjacent items for plottable data (#1628, (#1632)
- Speed up getting plottable data from adjacent items; plot more data (#1613, #1614)
- Better handle mixed dtype sources in the multi source (#1616)
- Add a utility function to minimize caching (#1617)
- Allow passing through converter options when writing a zarr sink to a non-zarr format (#1618)
- Do less calculations when applying affine transforms in the multi-source (#1619)
- Improve logging in the image converter (#1621)
- Harden converting sources that report varied tile bands (#1615)
- Harden many of the sources from reading bad files (#1623)
- Some projected bounds in the rasterio source could be off (#1624)
- Use math.prod in preference to np.prod (#1606)
- Make the plottable data class threadsafe (#1588)
- Speed up getting plottable data from items (#1589)
- Add an index to speed up getting plottable data from annotation elements (#1590)
- Speed up checks for old annotations (#1591)
- Improve plottable data endpoint to better fetch folder data (#1594)
- Show a frame slider when appropriate in jupyter widgets (#1595)
- Improve options for creating or check large images for each item in a folder (#1586)
- Add a lock to avoid mongo excessively computing random numbers (#1601)
- Better merge source channel names in multi source (#1605)
- Don't redirect tile frame images via 303; they aren't rendered correctly (#1596)
- Improve plottable data endpoint to better fetch varied data. Refactors some columns names (#1587)
- Improve plottable data endpoint to better fetch adjacent items and annotations (#1573, #1574, #1575, #1580, #1583)
- Support Girder flat-mount paths (#1576)
- Lazily import some modules to speed up large_image import speed (#1577)
- Create or check large images for each item in a folder (#1572)
- Support multiprocessing and pickling with a zarr sink (#1551)
- Allow checking for geospatial sources to use a specific source list (#1582)
- Read scales from some OME tiff files parsed with the tifffile source (#1584)
- Remove old code that handled old pyproj packages (#1581)
- Harden marking S3 uploads as large images (#1579)
- Show a loading spinner on the image display in geojs in girder (#1559)
- Better handle images that are composed of a folder and an item (#1561)
- Allow specifying which sources are checked with canReadList (#1562)
- Added endpoints to get plottable data related to annotations (#1524)
- Fix a compositing error in transformed multi source images (#1560)
- Prevent using vips input in image conversion if vips parses the image as a different size than large_image (#1569)
- Improved zarr sink metadata handling (#1508)
- Speed up decoding jp2k tiff with an optional library (#1555)
- Work with newer python-mapnik (#1550)
- Use the new official yaml mime-type of application/yaml (#1558)
- Fix an issue emitting rectangles in geojson (#1552)
- Fix an issue writing zarr channel metadata (#1557)
- Add redis as cache backend option (#1469)
- Better detect available memory in containers (#1532)
- Reject the promise from a canceled annotation (#1535)
- Disallow certain names from being read by any but specific sources (#1537)
- Add the ability to specify the dtype of a multi-source file (#1542)
- Handle bounds on openslide sources to handle sparse sources (#1543)
- Annotations are sometimes paged when they shouldn't be (#1529)
- Improve uint16 image scaling (#1511)
- Read some untiled tiffs using the tiff source (#1512)
- Speed up multi source compositing in tiled cases (#1513)
- Speed up some tifffile and multi source access cases (#1515)
- Allow specifying a minimum number of annotations elements when maxDetails is used (#1521)
- Improved import of GeoJSON annotations (#1522)
- Limit internal metadata on multi-source files with huge numbers of sources (#1514)
- Make DICOMweb assetstore imports compatible with Girder generics (#1504)
- Fix touch actions in the image viewer in some instances (#1516)
- Fix multisource dtype issues that resulted in float32 results (#1520)
- When writing zarr sinks through the converter, use jpeg compression for lossy data (#1501)
- Improve algorithm sweep example options (#1498)
- Zarr tile sink (#1446)
- Prioritize tile sinks (#1478)
- Add a dependency to the zarr source to read more compression types (#1480)
- Guard fetching internal metadata on zarr sources that have less data (#1481)
- Add a method to list registered extensions and mimetypes (#1488)
- Reduce bioformats keeping file handles open (#1492)
- Use more tile-frame textures in high frame count images (#1494)
- Zarr tile sink: generate downsampled levels (#1490)
- Prohibit bioformats from reading zip directly (#1491)
- Fix an issue with single band on multi source with non uniform sources (#1474)
- Allow alternate name axes in the multi source schema (#1476)
- Adjust default threading on tile-frame generation to match documentation (#1495)
- Fix how zarr sink directory is cleaned up (#1496)
- Add a guard when reading incorrect associated images (#1472)
- Log and recover from occasional openslide failures (#1461)
- Add support for Imaging Data Commons (#1450)
- Speed up some retiling (#1471)
- Make GDAL an optional dependency for the converter (#1464)
- Fix an issue with uniform band depth on multi source with non uniform sources (#1459)
- Fix histogram request bug in band compositing mode (#1463)
- Prevent duplicating config files with multiple writes (#1467)
- Support range requests when downloading DICOMweb files (#1444)
- Bypass some scaling code when compositing multi sources (#1447, #1449)
- Do not create needless alpha bands in the multi source (#1451)
- Infer DICOM file size, when possible (#1448)
- Swap styles faster in the frame viewer (#1452)
- Reduce color fringing in multi source compositing (#1456)
- Retry read_region if openslide reports an error (#1457)
- Fix an issue with compositing sources in the multi source caused by alpha range (#1453)
- Read config values from the environment variables (#1422)
- Optimizing when reading arrays rather than images from tiff files (#1423)
- Better filter DICOM adjacent files to ensure they share series instance IDs (#1424, #1436, #1442)
- Optimizing small getRegion calls and some tiff tile fetches (#1427)
- Started adding python types to the core library (#1432, #1433, #1437, #1438, #1439)
- Use parallelism in computing tile frames (#1434)
- Support downloading DICOMweb files (#1429)
- Cleanup some places where get was needlessly used (#1428)
- Moved some internal code out of the base class (#1429)
- Handle changes to wsidicom (#1435)
- Refactored the tile iterator to its own class (#1441)
- Support affine transforms in the multi-source (#1415)
- Remove NaN values from band information (#1414)
- Add a singleBand option to the multi-source specification (#1416)
- Allow better detection of multiple file dicom (#1417)
- Better missing data detection from tifffile (#1421)
- Remove an unused parameter in a private method (#1419)
- Reduce stderr noise in PIL and rasterio sources (#1397)
- Harden OME tiff reader (#1398)
- Improve checks for formats we shouldn't read (#1399)
- Support negative x, y in addTile (#1401)
- Add a utility function for getting loggers (#1403)
- Get bioformats jar version if bioformats was started (#1405)
- Improve thread safety of concurrent first reads using bioformats (#1406)
- Read more metadata from DICOMweb (#1378)
- Remove logic for determining DICOMweb transfer syntax (#1393)
- Speed up tile output (#1407)
- Speed up import time (#1408)
- Speed up some tile iteration by reducing the chance of multiple image decodes (#1410)
- Use an enum for priority constants (#1400)
- Don't automatically flush memcached tile cache on exit (#1409)
- Shift where netcdf information is reported (#1413)
- Fix an issue emitting geojson annotations (#1395)
- Fix an issue when tifffile reports no key frame (#1396)
- Frame Selector: Auto-Range format for saving presets (#1404)
- Fix the DICOM limit to say "Series" instead of "Studies" (#1379)
- Add token authentication option for DICOMweb (#1349)
- Use vips resize rather than reduce to increase speed (#1384)
- Added annotation to geojson endpoint and utility (#1385)
- Handle setup_requires deprecation (#1390)
- Fix an issue applying ICC profile adjustments to multiple image modes (#1382)
- Guard against bad tifffile magnification values (#1383)
- Frame Selector component: ensure that no color can be assigned twice (#1387)
- Remove white space in frame selector internal fields (#1389)
- Fix a comparison between integer enums in configured item lists (#1391)
- Have zarr use read-only mode (#1360)
- Use minified geojs (#1362)
- Configurable item list grid view (#1363)
- Allow labels in item list view (#1366)
- Improve cache key guard (#1368)
- Improve handling dicom files in the working directory (#1370)
- General handling of skipped levels (#1373)
- Update WsiDicomWebClient init call (#1371)
- Rename DICOMweb AssetstoreImportView (#1372)
- Harden bioformats shutdown (#1375)
- Default to "None" for the DICOM assetstore limit (#1359)
- Fix series detection for some bioformats files (#1365, #1367)
- Fix time comparison in annotation history check (#1369)
- Fix an issue with apply a frame style to ome tiffs (#1374)
- Guard against bad tifffile magnification values (#1376)
- Add a Zarr tile source (including ome.zarr) (#1350)
- Style can specify a dtype of 'source' to maintain the original dtype even when compositing frames (#1326)
- Max Merge option in Frame Selector (#1306, #1330, #1336)
- Improve tifffile associated image detection (#1333)
- Guard against throwing a javascript warning (#1337)
- Test on Python 3.12 (#1335)
- Added filtering and limit options to the DICOMweb assetstore (#1327)
- Support more formats through PIL (#1351)
- Prohibit bioformats and vips from reading mrxs directly (#1328)
- Handle Python 3.12 deprecating utcnow (#1331)
- Turn down logging about annotation ACLs (#1332)
- Add scope to the dicomweb import endpoint access decorator (#1347)
- Drop support for Python 3.6 and Python 3.7 (#1352)
- Standardize DICOMweb assetstore parameter names/style (#1338)
- DICOMweb support, including a Girder assetstore (#1303)
- Frame selection presets have configurable defaults (#1301)
- Improved DICOM metadata extraction (#1305)
- Support more region shapes in the annotation widget (#1323)
- Remove a needless guard around getting an icc profile (#1316)
- Refactor fetching extra associated images from openslide (#1318)
- Minor refactor of some of the internals of the tiff source (#1322)
- Guard against potential bad event stream timestamp (#1306)
- Added a noCache option to opening tile sources (#1296)
- Added a display/visible value to the annotation schema (#1299)
- Band compositing is shown for single band images (#1300)
- Changed the cdn used for the SlideAtlas viewer (#1297)
- Band compositing wasn't working (#1300)
- Add [common] extra_requires (#1288)
- Add more logic for determining associated images in tiff source (#1291)
- Internal metadata get endpoint is now public (#1285)
- Fix an issue with presets and single frame images (#1289)
- Allow scheduling histogram computation in Girder (#1282)
- Closing some styled sources could lead to prematurely closing file handles (#1283)
- Band order could matter in styles (#1284)
- Better expose ipyleaflet maps from remote files (#1280)
- Fix modifying annotations anonymously (#1279)
- Harden when the bioformats reader claims it has a zero sized image (#1268)
- Harden internal retiling. This sometimes affected histograms (#1269)
- Set annotation update user in client so it appears faster (#1270)
- Harden reading with tifffile on images with bad axes information (#1273)
- Include projection in metadata (#1277)
- Better expose ipyleaflet maps (#1278)
- Adjust tifffile log level (#1265)
- Use a newer version of the hammerjs touch events library in Girder (#1266)
- Allow users with only annotation access to edit annotations (#1267)
- Fix filtering item lists in Girder by multiple phrases (#1272)
- Style functions after band compositing had a styleIndex value set (#1274)
- Frame selection presets (#1237)
- Adjust the bounds on non geospatial leaflet maps (#1249)
- Allow hiding metadata on item pages (#1250)
- Allow caching rounded histograms (#1252)
- Add an endpoint to make it easier to replace thumbnails (#1253)
- Presets from Large Image Configuration file (#1248, #1256)
- Reduce memory allocation during some region tiling operations (#1261)
- Reduce memory allocation during some styling operations (#1262, #1263)
- Added a max_annotation_input_file_length setting (#1264)
- Minor code changes based on suggestions from ruff linting (#1257)
- Reduce pyvips log level (#1259)
- Don't use dask threads when using nd2 to fetch tiles (#1260)
- Allow editing metadata in item lists (#1235)
- Frame selector hotkeys for channel or bands (#1233)
- More consistency in how local and remote image conversions are performed in Girder (#1238)
- Support showing data from subkeys in annotation lists (#1241)
- The nd2 reader throws a different exception with JP2 files (#1242)
- Better guards on ACL migration (#1243)
- Harden reading some nc files (#1218)
- Increase the cache used for opening directories in the pylibtiff source (#1221)
- Refactor style locking to increase parallelism (#1224, #1234)
- Better isGeospatial consistency (#1228)
- Better channel handling on frame selector (#1222)
- Clean up some old slideatlas url references (#1223)
- Band compositing defaults to visible bands (#1230)
- Pass style to histogram endpoint as json (#1220)
- Don't show frame controls outside of the geojs viewer (#1226)
- Fix updating the hidden style field for the frame selector (#1227)
- Fix a bug calculating some histograms (#1231)
- Fix showing the frame selector when there is no axis information (#1230)
- Harden the nd2 source to allow it to read more files (#1207)
- Add ipyleaflet representation for JupyterLab (#1065)
- When restyling a source, share band range calculations (#1215)
- Change how extensions and fallback priorities in Girder interact (#1208)
- Reduce the default max texture size for frame quads (#1212)
- Fix clearing the style threshold cache (#1210)
- Fix a scope issue when deleting metadata (#1203)
- Better DICOM multi-level detection (#1196)
- Added an internal field to report populated tile levels in some sources (#1197, #1199)
- Allow specifying an empty style dict (#1200)
- Allow rounding histogram bin edges and reducing bin counts (#1201)
- Allow configuring which metadata can be added to items (#1202)
- Change how extensions and fallback priorities interact (#1192)
- Refactor reading the .large_image_config.yaml file on the girder client (#1193)
- Refactor of the which-folders-have-annotations pipeline (#1194)
- Fix an issue converting multiframe files that vips reads as single frame (#1195)
- Alter jpeg priority with the PIL source (#1191)
- Fix NeededInitPrefix namespace errors (#1190)
- Reduce memory use in a mongo aggregation pipeline (#1183)
- Remove rasterio dep on pyproj (#1182)
- Filter on specific metadata from item lists (#1184)
- Add a button to clear the filter on item lists (#1185)
- Improve JSONDict usage (#1189)
- Log more often when importing files or making large images (#1187)
- Parse qptiff and imagej vendor information (#1168)
- getPixel method and endpoint now returns rawer values (#1155)
- Allow more sophisticated filtering on item lists from the Girder client (#1157, #1159, #1161)
- Rename tiff exceptions to be better follow python standards (#1162)
- Require a newer version of girder (#1163)
- Add manual mongo index names where index names might get too long (#1166)
- Avoid using $unionWith for annotation searches as it isn't supported everywhere (#1167)
- The deepzoom tile source misreported the format of its tile output (#1158)
- Guard against errors in a log message (#1164)
- Fix thumbnail query typo (#1165)
- Store current frame and style in the DOM for easier access (#1136)
- Convert long girder GET and PUT requests to POSTs (#1137)
- Propagate more feature events from geojs on annotations (#1147)
- Add another mime type to those considered to be yaml (#1149)
- Add a guard if PIL doesn't support ImageCms (#1132)
- Allow putting a yaml config file from a Girder API endpoint (#1133)
- Allow clearing the min/max fields of the frame selector (#1130)
- Fix a bug with caching tiles and styling (#1131)
- Fix setting minimum values on bands from the frame selector (#1138)
- Fix a version reference in the source extras_require (#1150)
- Improve access and repr of metadata and style (#1121)
- Remove psutil hard dependency (#1127)
- Better cache handling with Etags (#1097)
- Reduce duplicate computation of slow cached values (#1100)
- Reconnect to memcached if the connection fails (#1104)
- Better frame selector on Girder item page (#1086)
- Tile serving can bypass loading a source if it is in memory (#1102)
- Don't copy style lock when semi-duplicating a tile source (#1114)
- On the large image item page, guard against overflow (#1096)
- Specify version of simplejpeg for older python (#1098)
- Better expose the Girder yaml config files from python (#1099)
- Update dicom source for upstream changes (#1092)
- Allow ICC correction to specify intent (#1066)
- Make tile sources pickleable (#1071)
- Extract scale information from more bioformats files (#1074)
- Speed up validating annotations with user fields (#1078)
- Speed up validating annotation colors (#1080)
- Support more complex bands from the test source (#1082)
- Improve error thrown for invalid schema with multi source (#1083)
- Support multi-frame PIL sources (#1088)
- The cache could reuse a class inappropriately (#1070)
- Increase size of annotation json that will be parsed (#1075)
- Quote ETag tags (#1084)
- Stop packaging the slideatlas viewer directly (#1085)
- Fix packaging listing various source requirements (#1064)
-
ICC color profile support (#1037, #1043, #1046, #1048, #1052)
Note: ICC color profile adjustment to sRGB is the new default. This can be disabled with a config setting or on a per tile source basis.
-
Support arbitrary axes in the test and multi sources (#1054)
- Speed up generating tiles for some multi source files (#1035, #1047)
- Render item lists faster (#1036)
- Reduce bioformats source memory usage (#1038)
- Better pick the largest image from bioformats (#1039, #1040)
- Speed up some images handled with bioformats (#1063)
- Cache histogram thresholds (#1042)
- Add
_repr_png_
for Jupyter (#1058) - Ignore bogus tifffile resolutions (#1062)
- Speed up rendering Girder item page metadata in some instances (#1031)
- Speed up opening some multi source files (#1033)
- Test nd2 source on Python 3.11 (#1034)
- Fix an issue with non-square tiles in the multi source (#1032)
- Better parse svs pixel size in tiff and tifffile sources (#1021)
- Add geojson to known mime types (#1022)
- Handle upcoming matplotlib deprecations (#1025)
- Handle upcoming numpy deprecations (#1026)
- Improve tifffile associated image detection (#1019)
- Add a frames property to the tile source as a short hand for getting the number of frames from the metadata (#1014)
- Better release file handles (#1007)
- Support tiny images from the test source (#1013)
- Speed up loading or parsing some multi sources (#1015)
- Better scale uint32 images (#1017)
- Don't report filename in internal PIL metadata (#1006)
- Add a DICOM tile source (#1005)
- Better control dtype on multi sources (#993)
- Don't use dask threads when using nd2 to fetch tiles (#994)
- Set mime type for imported girder files (#995)
- Specify token scopes for girder endpoints (#999, #1000)
- Set the qptiff extension to prefer the tiff reader (#1003)
- Use open.read rather than download to access files in Girder (#989)
- Fix nd2 source scale (#990)
- Do not raise a login request when checking if the user can write annotations (#991)
- Test on Python 3.11 (#986)
- Fixed overcaching annotations (#983)
- Depending on timing, annotations could be inappropriately paged (#984)
- Fallback when server notification streams are turned off (#967)
- Show and edit yaml and json files using codemirror (#969, #971)
- Show configured item lists even if there are no large images (#972)
- Add metadata and annotation metadata search modes to Girder (#974)
- Add the ability to show annotation metadata in item annotation lists (#977)
- Support ETAG in annotation rest responses for better browser caching (#978)
- Thumbnail maintenance endpoints (#980)
- Handle lif file extensions (#981)
- Fixed an issue with compositing multiple frames (#982)
- Reduce rest calls to get settings (#953)
- Add an endpoint to delete all annotations in a folder (#954)
- Support relabeling axes in the multi source (#957)
- Reduce a restriction on reading some tiff files (#958)
- Improve internals for handling large annotation elements (#961)
- Harden adding images to the item list (#955)
- Fix checking user annotation document length (#956)
- Improve scaled overlays (#959)
- Add a general filter control to item lists (#938, #941)
- Item list modal dialogs are wider (#939)
- Improve mimetypes on upload to Girder (#944)
- Fix iterating tiles where the overlap larger than the tile size (#940)
- Better ignore tiff directories that aren't part of the pyramid (#943)
- Fix an issue with styling frames in ome tiffs (#945)
- Better handle large user records in annotation elements (#949)
- Harden which output formats are supported (#950)
- Adjusted rest request logging rates for region endpoint (#948)
- Add annotation access controls at the folder level (#905)
- Reduce error messages and make canRead results more accurate (#918, #919, #920)
- Sort columns in item lists based (#925, #928)
- Better handle tiffs with orientation flags in pil source (#924)
- Support a bands parameter for the test source (#935)
- Add annotation creation access flag (#937)
- Remove some extraneous values from metadata responses (#932)
- Reduce some messages to stderr from other libraries (#919)
- Avoid some warnings in Python 3.10 (#913)
- Add a tifffile tile source (#885, #896, #903)
- Added a canReadList method to large_image to show which source can be used (#895)
- Optionally show metadata in item lists (#901)
- Register the tile output formats from PIL (#904)
- Copy tilesource instances to add styles (#894)
- Pass options to the annotationLayer mode (#881)
- Support more style range options (#883)
- When converting girder images locally, prefer mount paths (#886)
- Store the id of job results for easier post-job work (#887)
- Harden style compositing of partial tiles (#889)
- Cache read_tiff calls to speed up restyling (#891)
- Speed up styling by doing less (#892)
- Add local color definitions (#858)
- Inheritable config files (#897)
- Add geospatial property (#818, #908)
- Improve repr of image bytes (#902)
- Handle nodata style when specified as a string (#914)
- Be more consistent in source class name attribute assignment (#884)
- When scaling heatmap annotations, use an appropriate value (#878)
- Use the girder client build time for cache control (#879)
- Abstract caching and support entrypoints (#876)
- Fix getPixel for single channel sources (#875)
- Speed up ingesting annotations (#870)
- Reduce the chance of blinking on annotation layers (#871)
- Reduce updates when modifying annotations (#872)
- Improve annotation upload; support full annotation documents (#869)
- Better handle editing polygons with holes (#857)
- Support fetching yaml config files (#860)
- Optionally include bounding box information with annotation queries (#851)
- Reduce memory copying in the nd2 reader (#853)
- Add support for boolean annotation operations (#865)
- Speed up removing all annotations from an item (#863)
- Fix issues with the nd2 reader (#866, #867)
- Honor the highlight size limit with centroid annotations (#861)
- Support polygon annotations with holes (#844)
- New annotations get a default name if they do not have one (#843)
- Explicitly mark vips output as tiled (#848)
- Change how annotations are uploaded from the UI (#845)
- Improve handling for vips pixel formats in addTile (#838)
- Add validateCOG method to GDALFileTileSource (#835)
- The default logger now uses the null handler (#840)
- The sources extra_installs didn't include all sources (#833)
- Handle file URLs with GDAL (#820)
- Add a hasAlpha flag to image annotations (#823)
- Allow dict for style (#817)
- Support drawing multipolygon regions (#832)
- Fix a range check for pixelmap annotations (#815)
- Harden checking if a PIL Image can be read directly from a file pointer (#822)
- Handle PIL deprecations (#824)
- Add support for ellipse and circle annotations (#811)
- Support pickle output of numpy arrays for region, thumbnail, and tile_frames endpoints (#812)
- Improve parsing OME TIFF channel names (#806)
- Improve handling when a file vanishes (#807)
- Add TileSourceXYZRangeError (#809)
- Refactor the nd2 source to use the nd2 library (#797)
- Add options to threshold near min/max based on the histogram (#798)
- Mark vsi extensions as being preferred by the bioformats source (#793)
- Add mouse events to overlay annotations (#794)
- Use orjson instead of ujson for annotations (#802)
- Use simplejpeg for jpeg encoding rather than PIL (#800)
- Use pylibtiff instead of libtiff (#799)
- Harden annotation ACL migration code (#804)
- Emit events when an overlay annotation layer is created (#787)
- Minor improvements to setFrameQuad to make it more flexible (#790)
- Support drawing polygon selection regions (#791)
- Add some automating options to getTileFramesQuadInfo (#792)
- Change how we do a version check (#785)
- Add options to get frame quad info from python (#783)
- Release memory associated with a lazy tile if it has been loaded (#780)
- Tile overlaps on subset regions could be wrong (#781)
- Initial implementation of multi-source tile source (#764)
- Added pixelmap annotation element (#767, #776)
- Add more opacity support for image overlays (#761)
- Make annotation schema more uniform (#763)
- Improve TileSource class repr (#765)
- Improve frame slider response with base quads (#771)
- Default to nearest-neighbor scaling in lossless image conversion (#772)
- Improve the import time (#775, #777)
- The tile iterator could return excess tiles with overlap (#773)
- Added image annotation element (#742, #750)
- Allow the discrete scheme to be used on all tile sources (#755)
- Fix expanding a style palette with a single named color (#754)
- The openjpeg girder source handles uploaded files better (#721)
- Suppress some warnings on Girder and on bioformats (#727)
- Reduce extraneous files in large_image distribution (#718)
- Include the converter in the girder tasks dependency (#707)
- Add the image converter to the extra requires (#677)
- All file tile sources can take either strings or pathlib.Path values (#683)
- On Girder with read-only assetstores, return results even if caching fails (#684)
- Handle geospatial files with no explicit projection (#686)
- Fix default properties on annotations when emitted as centroids (#687)
- A change in the Glymur library affected how missing files were handled (#675)
- Better Girder client exports (#674)
- Improve warnings on inefficient tiff files (#668)
- Add more options to setFrameQuad (#669, #670)
- Improved concurrency of opening multiple distinct tile sources (#671)
- Better handle item changes with tile caching (#666)
- Make the image viewer control css class more precise (#665)
- Allow GDAL source to read non-geospatial files (#655)
- Rename Exceptions to Errors, improve file-not-found errors (#657)
- More robust OME TIFF handling (#660)
- large-image-converter can exclude specified associated images (#663)
- Harden on some openslide errors (#664)
- getBandInformation could fail on high bands in some cases (#651)
- Band information should always be 1-indexed (#659)
- Use GDAL to subset a non-geospatial image (#662)
- Harden tile source detection (#644)
- Provide band information on all tile sources (#622, #623)
- Add a tileFrames method to tile sources and appropriate endpoints to composite regions from multiple frames to a single output image (#629)
- The test tile source now support frames (#631, #632, #634, #634)
- Better handle TIFFs with missing levels and tiles (#624, #627)
- Better report inefficient TIFFs (#626)
- Smoother cross-frame navigation (#635)
- Better reporting of memcached cache (#613)
- Better handle whether proj string need the +init prefix (#620)
- Avoid a bad version of Pillow (#619)
- Allow specifying content disposition filenames in Girder REST endpoints (#604)
- Improve caching of unstyled tiles when compositing styled types (#605)
- Speed up compositing some styled tiles (#606, #609)
- Handle some nd2 files with missing metadata (#608)
- Allow setting default tile query parameters in the Girder client (#611)
- Don't use underscore parameters in image caching keys (#610)
- Allow setting the cache memory portion and maximum for tilesources (#601)
- Add heatmap and griddata to the annotation schema (#589)
- Regions can be output as tiled tiffs with scale or geospatial metadata (#594)
- Cache histogram requests (#598)
- Allow configuring bioformats ignored extensions (#603)
- Tilesources always have self.logger for logging (#602)
- Use float rather than numpy.float (#600)
- The nd2reader module now requires files to have an nd2 extension (#599)
- Fix the progress bar when uploading annotations (#589)
- Allow converting a single frame of a multiframe image (#579)
- Add a convert endpoint to the Girder plugin (#578)
- Added support for creating Aperio svs files (#580)
- Added support for geospatial files with GCP (#588)
- More untiled tiff files are handles by the bioformats reader (#569)
- Expose a concurrent option on endpoints for converting images (#583)
- Better concurrency use in image conversion (#587)
- Handle more OME tiffs (#585, #591)
- Better memcached error logging (#592)
- Exceptions on cached items are no longer within the KeyError context (#584)
- Simplified thumbnail generation by removing the level-0 option (#593)
- Updated dependencies to work with changes to the nd2reader (#596)
- In Girder, prefer geospatial sources for geospatial data (#564)
- The GDAL source failed when getting band ranges on non-integer data (#565)
- Added a Girder endpoint to get metadata on associated images (#561)
- Added an option to try all Girder items for use as large images (#562)
- Reduce gdal warning about projection strings (#559)
- Don't report needless frame information for some single frame files (#558)
- Send Backbone events on frame changes in the viewer (#563)
- The PIL tilesource priority is slightly higher than other fallback sources (#560)
- Fix compositing when using different frame numbers and partial tiles (#557)
- Warn when opening an inefficient tiff file (#555)
- Added a
canRead
method to the core module (#512) - Image conversion supports JPEG 2000 (jp2k) compression (#522)
- Image conversion can now convert images readable by large_image sources but not by vips (#529)
- Added an
open
method to the core module as an alias togetTileSource
(#550) - Added an
open
method to each file source module (#550) - Numerous improvement to image conversion (#533, #535, #537, #541, #544, #545, #546, #549)
- Better release bioformats resources (#502)
- Better handling of tiff files with JPEG compression and RGB colorspace (#503)
- The openjpeg tile source can decode with parallelism (#511)
- Geospatial tile sources are preferred for geospatial files (#512)
- Support decoding JP2k compressed tiles in the tiff tile source (#514)
- Hardened tests against transient timing issues (#532, #536)
- The image conversion task has been split into two packages, large_image_converter and large_image_tasks. The tasks module is used with Girder and Girder Worker for converting images and depends on the converter package. The converter package can be used as a stand-alone command line tool (#518)
- Harden updates of the item view after making a large image (#508, #515)
- Tiles in an unexpected color mode weren't consistently adjusted (#510)
- Harden trying to add an annotation before the viewer is ready (#547)
- Correctly report the tile size after resampling in the tileIterator (#538)
- Reduce caching associated images when the parent item changes (#491)
- Test with Python 3.9 (#493)
- Add a hideAnnotation function in the client (#490)
- Expose more resample options for region and histogram endpoints (#496)
- Improve OME tiff preferred level calculation for OME tiffs with subifds (#496)
- Include the annotationType to the annotation conversion method in the client (#490)
- This will be the last version to support Python 2.7 and 3.5.
- Include ETag support in some Girder rest requests to reduce data transfer (#488)
- Don't let bioformats handle pngs (#487)
- Expose more internal metadata (#479)
- Improve how Philips XML internal metadata is reported (#475)
- Show aperio version in internal metadata (#474)
- Add css classes to metadata on the item page (#472)
- The Girder web client exports the ItemViewWidget (#483)
- Read more associated images in openslide formats (#486)
- Add a reference to updated time to avoid overcaching associated images (#477)
- Fix a typo in the settings page (#473)
- Added endpoints to remove old annotations (#432)
- Show auxiliary images and metadata on Girder item pages (#457)
- Migrate some database values on start to allow better annotation count reporting (#431)
- Speed up Girder item list annotation counts (#454)
- Read more OME Tiff files (#450)
- Handle subimages of different component depths (#449)
- When scaling, adjust reported mm_x/y (#441)
- Standardize metadata for tile sources with multiple frames (#433)
- Unify code to check if a tile exists (#462)
- Switch to ElementTree, as cElementTree is deprecate (#461)
- Refactor how frame information is added to metadata (#460)
- Upgrade GeoJS to the latest version (#451)
- Fix a threading issue with multiple styled tiles (#444)
- Guard against reading tiff tiles outside of the image (#458)
- Guard against a missing annotation value (#456(
- Fix handling Girder filenames with multiple periods in a row (#459)
- Work around a file descriptor issue in cheroot (#465)
- Added nd2 tile source (#419)
- Fixed an issue where, if users or groups were deleted outside of normal methods, checking an annotation's access would delete its elements (#428)
- Fix an issue where retiling some tile sources could fail (#427)
- Testing fully with Python 3.8 (#429)
- Fixed an issue where retiling some tile sources could fail (#427)
- Added gdal tile source (#418)
- Added a GET large_image/sources endpoint to list versions of all installed sources (#421)
- Fixed an issue where changing the annotation history setting when Girder's settings' cache was enable wouldn't take effect until after a restart (#422)
- Fixed an issue when used as a Girder plugin and served with a proxy with a prefix path (#423)
- Better handling of imported file formats with adjacent files (#424)
- Add style options for all tile sources to remap channels and colors (#397)
- Better support for high bit-depth images (#397)
- Make it easier to load the annotation-enable web viewers (#402)
- Improved support for z-loops in OMETiff files (#397)
- Support using Glymur 0.9.1 (#411)
- Fixed an issue where a Girder image conversion task could raise an error about a missing file (#409)
- Get annotations elements by centroid (#371)
- Added an annotation badge to the image list (#372)
- Added openjpeg tile source (#380)
- Handle different tiff orientations in the tiff tile source (#390)
- Increased the annotation page limit (#367)
- Increased the annotations response time limit (#389)
- Improved handling of tiff files with multiple tiled images (#373)
- Don't reset backbone models on saving existing annotations (#399)
- Fixed the pyproj minimum version (#366)
- Guard against GDAL open errors (#375)
- Better handle annotations with zero elements (#398)
- Sorting tile layers could use a dictionary comparison (#396)
This is a substantial refactor from preliminary versions. Now that setuptools_scm is used for versioning, all merges to master are automatically published to pypi as development versions.
Tile sources are now fully modular and are installed via pip. File extensions and mime type are now used as part of the order that tile sources are checked, giving more control over which tile source is used by default.
The Girder plugin has been divided into the parts requiring annotations and the parts that are only necessary for large images.
Python 3.4 support was dropped.