base on C library for reading virtual slide images # OpenSlide OpenSlide is a C library for reading whole slide image files (also known as virtual slides). It provides a consistent and simple API for reading files from multiple vendors. ## Features OpenSlide can read brightfield whole slide images in [several formats][]: * [Aperio][] (`.svs`, `.tif`) * [DICOM][] (`.dcm`) * [Hamamatsu][] (`.ndpi`, `.vms`, `.vmu`) * [Leica][] (`.scn`) * [MIRAX][] (`.mrxs`) * [Philips][] (`.tiff`) * [Sakura][] (`.svslide`) * [Trestle][] (`.tif`) * [Ventana][] (`.bif`, `.tif`) * [Zeiss][] (`.czi`) * [Generic tiled TIFF][] (`.tif`) OpenSlide can also provide access to ICC profiles, textual metadata, and associated images such as a slide label and thumbnail. [several formats]: https://openslide.org/formats/ [Aperio]: https://openslide.org/formats/aperio/ [DICOM]: https://openslide.org/formats/dicom/ [Hamamatsu]: https://openslide.org/formats/hamamatsu/ [Leica]: https://openslide.org/formats/leica/ [MIRAX]: https://openslide.org/formats/mirax/ [Philips]: https://openslide.org/formats/philips/ [Sakura]: https://openslide.org/formats/sakura/ [Trestle]: https://openslide.org/formats/trestle/ [Ventana]: https://openslide.org/formats/ventana/ [Zeiss]: https://openslide.org/formats/zeiss/ [Generic tiled TIFF]: https://openslide.org/formats/generic-tiff/ ## Documentation The [API reference][API] is available on the web, and is also included as `doc/html/openslide_8h.html` in the source tarball. [Additional documentation][docs] is available on the [OpenSlide website][website]. [API]: https://openslide.org/api/openslide_8h.html [docs]: https://openslide.org/#documentation [website]: https://openslide.org/ ## License OpenSlide is released under the terms of the [GNU Lesser General Public License, version 2.1](https://openslide.org/license/). OpenSlide is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. ## Compiling To build OpenSlide, you will need: - GCC or Clang - Meson - cairo ≥ 1.2 - glib ≥ 2.56 - libdicom ≥ 1.2 (automatically built if missing) - libjpeg-turbo ≥ 1.3 or libjpeg ≥ 9c - libpng - libtiff ≥ 4.0 - libxml2 - OpenJPEG ≥ 2.1 - SQLite ≥ 3.14 - zlib - Zstandard Then: ``` meson setup builddir meson compile -C builddir meson install -C builddir ``` ## Acknowledgements OpenSlide has been developed by Carnegie Mellon University and other contributors. OpenSlide has been supported by the National Institutes of Health and the Clinical and Translational Science Institute at the University of Pittsburgh. Development of DICOM and ICC functionality was supported by NCI Imaging Data Commons and has been funded in whole or in part with Federal funds from the National Cancer Institute, National Institutes of Health, under Task Order No. HHSN26110071 under Contract No. HHSN261201500003l. ", Assign "at most 3 tags" to the expected json: {"id":"3680","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"