From a290cecd2ff21d94fe8dd80b4940472db120f9ac Mon Sep 17 00:00:00 2001 From: Rob Faust Date: Sun, 24 Dec 2023 12:55:43 -0600 Subject: [PATCH] Updating README --- LabelZoom_Logo_f_400px.png | Bin 0 -> 6949 bytes README.md | 15 ++++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 LabelZoom_Logo_f_400px.png diff --git a/LabelZoom_Logo_f_400px.png b/LabelZoom_Logo_f_400px.png new file mode 100644 index 0000000000000000000000000000000000000000..6e728db4637d5276fafff7dfb06449927f6c95fe GIT binary patch literal 6949 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 5961591..a50a2e3 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,15 @@ +![LabelZoom Logo](LabelZoom_Logo_f_400px.png) + # labelzoom-api -LabelZoom API + +[![Build Status](https://github.com/labelzoom/labelzoom-api/actions/workflows/gradle-build.yml/badge.svg?branch=main)](https://github.com/labelzoom/labelzoom-api/actions?query=branch%3Amain) + +The LabelZoom API is the foundation on which all of LabelZoom's products and services are built. The API serves to define the following: +- **Data model:** [/src/main/java/com/labelzoom/api/model](/src/main/java/com/labelzoom/api/model) - The data model of a LabelZoom label +- **I/O interfaces** + - **Input**: [/src/main/java/com/labelzoom/api/input](/src/main/java/com/labelzoom/api/input) - The LabelReader interface, which can be implemented to convert other types of files into LabelZoom labels + - **Output:** [/src/main/java/com/labelzoom/api/output](/src/main/java/com/labelzoom/api/output) - The LabelWriter interface, which can be implemented to convert LabelZoom labels into other types of files +- **Services:** [/src/main/java/com/labelzoom/api/services](/src/main/java/com/labelzoom/api/services) - Various interfaces that support the implementations of the I/O interfaces +- **Utilities** + - [/src/main/java/com/labelzoom/api/diagnostics](/src/main/java/com/labelzoom/api/diagnostics) - Lightweight utilities to measure the performance of the implemented interfaces + - [/src/main/java/com/labelzoom/api/util](/src/main/java/com/labelzoom/api/util) - Domain-centric utilities aligned to the business domain (e.g. 2D graphics, image manipulation, etc.)