{"id":18280294,"url":"https://github.com/hrj/t-flif","last_synced_at":"2025-04-05T06:30:21.506Z","repository":{"id":137967422,"uuid":"87055146","full_name":"hrj/t-flif","owner":"hrj","description":"Tiled FLIF","archived":false,"fork":false,"pushed_at":"2017-04-04T04:15:16.000Z","size":16,"stargazers_count":7,"open_issues_count":6,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-20T22:52:59.101Z","etag":null,"topics":["flif","image-processing","tile-server","tiles"],"latest_commit_sha":null,"homepage":null,"language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hrj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-03T08:52:38.000Z","updated_at":"2018-06-23T07:11:20.000Z","dependencies_parsed_at":"2023-07-03T15:15:31.702Z","dependency_job_id":null,"html_url":"https://github.com/hrj/t-flif","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrj%2Ft-flif","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrj%2Ft-flif/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrj%2Ft-flif/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrj%2Ft-flif/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hrj","download_url":"https://codeload.github.com/hrj/t-flif/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247299766,"owners_count":20916183,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flif","image-processing","tile-server","tiles"],"created_at":"2024-11-05T12:36:11.065Z","updated_at":"2025-04-05T06:30:21.500Z","avatar_url":"https://github.com/hrj.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"## t-flif\n\nSupport for tiled FLIF images. With the help of `t-flif`, a large image can be stored as a 2D matrix of tiles and a sub-image\ncan be decoded on the fly.\n\n## Advantages\nWhy use tiles? The FLIF format (as of writing) interweaves pixel and bit data from all over the image. Hence it is not possible\nto decode only a sub-region of a FLIF image. Nor is it possible to parallelise the decoding of a single FLIF file.\n\nBy splitting the image into smaller tiles, only the required subset of data can be decoded and it can be decoded in parallel, utilising\nall the processing cores available in the CPU. Moreover, sub-regions of the image can be updated by re-encoding and updating only the\nrelevant tiles.\n\n## Status\nThis is a very early, but useable, prototype. It is a peg in the ground to collect more feedback and\nto evolve the idea further.\n\nCurrently, this tool just calls the FLIF CLI tools for decoding, but that will change later. In fact, a lot\nof the implementation details will change later.\n\n## How to use\n* Install FLIF CLI tool such that it is available in `$PATH`\n* Create the tiles. The `misc/create-tiles.sh` script is provided for convenience.\n* Install sbt (Scala build tool)\n* Type `sbt run --help` for the command line help. The various options define the size and location of tiles, the\n  dimensions of the subimage and other decoding options.\n\n## Features\n* Decode an arbitrary sub-image of the tile-set\n* Supports down sampling the image while decoding\n\n## Roadmap\n\n### Immediate\n* Various simple optimisations, such as [caching the decoded output](https://github.com/hrj/t-flif/issues/1), [parallel decoding](https://github.com/hrj/t-flif/issues/2)\n* [Support for different types of images](https://github.com/hrj/t-flif/issues/3) (grey-scale, RGB, RGBA, 16-bit, etc)\n* [An `http` server](https://github.com/hrj/t-flif/issues/4) with [zoomable, pannable demo](https://github.com/hrj/t-flif/issues/5)\n* [Support for interpolated output](https://github.com/hrj/t-flif/issues/6)\n* Re-encode output as FLIF\n\n### Long term\n* Javascript version of t-flif using ScalaJS and PolyFLIF.\n* More complex optimisations, such as embedding the decoder, using a low-level language, etc\n* Support for more image formats\n* Fast re-encoding of output in FLIF format\n\n## Copyright and License\n\nCopyright 2017 Harshad RJ\n\nLicensed under Apache V2 (See LICENSE.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhrj%2Ft-flif","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhrj%2Ft-flif","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhrj%2Ft-flif/lists"}