{"id":13617358,"url":"https://github.com/nackily/imglib","last_synced_at":"2025-04-13T10:44:03.650Z","repository":{"id":65553962,"uuid":"563718751","full_name":"nackily/imglib","owner":"nackily","description":"A lightweight image processing library of JAVA for simplifying development.","archived":false,"fork":false,"pushed_at":"2023-11-30T02:59:34.000Z","size":7697,"stargazers_count":227,"open_issues_count":1,"forks_count":18,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T02:09:30.900Z","etag":null,"topics":["image-processing","java","thumbnails"],"latest_commit_sha":null,"homepage":"","language":"Java","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/nackily.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2022-11-09T07:27:09.000Z","updated_at":"2025-03-18T07:40:52.000Z","dependencies_parsed_at":"2023-11-30T03:43:53.164Z","dependency_job_id":null,"html_url":"https://github.com/nackily/imglib","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nackily%2Fimglib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nackily%2Fimglib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nackily%2Fimglib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nackily%2Fimglib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nackily","download_url":"https://codeload.github.com/nackily/imglib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248702058,"owners_count":21148114,"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":["image-processing","java","thumbnails"],"created_at":"2024-08-01T20:01:40.465Z","updated_at":"2025-04-13T10:44:03.614Z","avatar_url":"https://github.com/nackily.png","language":"Java","readme":"\n# Imglib: lightweight *Im*a*g*e processing *lib*rary\n\n[![maven-central](https://img.shields.io/maven-central/v/io.github.nackily/imglib-all?color=blue)](https://search.maven.org/artifact/io.github.nackily/imglib-all)\n[![jdk8+](https://img.shields.io/badge/jdk-8%2B-green)](https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html)\n[![license](https://img.shields.io/badge/license-Apache%202-blue)](https://www.apache.org/licenses/LICENSE-2.0)\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n[![switch](https://img.shields.io/badge/-%E4%B8%AD%E6%96%87%EF%BC%88%E7%AE%80%E4%BD%93%EF%BC%89-orange)](README.md)\n\n## What is *imglib*?\n\n*Imglib* is a lightweight image processing library for JAVA, which committed to simplifying frequently image processing.\n\n## What can *imglib* do?\n\n*Imglib* mainly provides three capabilities:\n\n* **Image Collection**\n\n  *Imglib* provides the ability to collect images, allowing developers to create images from nothing, such as creating \ntransparent image, hash image, and capturing screenshot. At the same time, developers can extract images from files, \nsuch as extract whole page as image from PDF file or extract frame as image from GIF file.\n\n* **Image Processing**\n\n  With *Thumbnailator*, we can easily implement the basic operations of images, including scaling, cropping, rotation, \nimage watermarking and format conversion. On this basis, *imglib* extends processors such as adding border, lossless \nmagnification, mosaics, rounded corner, graying, binarization, and drawing shapes on image.\n\n* **Merging and Splitting**\n\n  *Imglib* provides merging and splitting capabilities, including merging multiple images into a single image and \nsplitting image into multiple images. It supports cutting and jigsaw of images according to grid, and encode multiple \nimages into GIF file. Developers can also expand freely according to actual needs.\n\n## How simple is *imglib*?\nLike *Thumbnailator*, *imglib* shields developers from complex I/O operations and eliminates the need to manually \nmanipulate images through Graphics2D objects. *imglib* has done all this for you. It's chained API allows you to \nconfigure and execute a complex image processing task step by step.\n\n\u003e For example, the task of create a hash avatar for the user, the avatar setting to 8px\\*8px, the image size setting \n\u003e to 300px\\*300px, and add a border with a margin of 20px. This image generation task can be completed through the \n\u003e following code fragments:\n\n```java\nImagePipes.ofEmptySource()\n        .register(new HashImageGenerator.Builder(\"Imglib\")      // add a hash image generator\n                .gridVerticalNum(8)                             // number of lattice in horizontal direction\n                .bgColor(ColorUtils.of(240, 240, 240))          // the background color of hash image\n                .fgColor(ColorUtils.of(50, 150, 50))            // the foreground color of hash image\n                .build())   \n        .toThumbnails()                                         // get object of Thumbnails\n        .addFilter(new HighQualityExpandHandler.Builder()       // add a filter of lossless expansion handler\n                .finalWidth(150)                                // the final width after expanded\n                .keepAspectRatio(true)                          // setting of keep the aspect ratio\n                .build())   \n        .addFilter(new BorderHandler.Builder()                  // add a filter of border handler\n                .fillColor(ColorUtils.of(240, 240, 240))        // fill color of the border\n                .vMargins(15)                                   // vertical margin\n                .hMargins(15)                                   // horizontal margin\n                .alpha(1.0f)                                    // the transparency of the border\n                .build())\n        .scale(1.0)\n        .toFile(\".../avatar.png\");\n```\n\n\u003e By executing the above code fragment, we will get the following user avatar.\n\n![avatar](docs/res/avatar.png)\n\n## How to use *imglib*?\n\n**Maven**\n\nAdd the following maven dependencies in the pom.xml of your project.\n\n```xml\n  \u003cdependency\u003e\n    \u003cgroupId\u003eio.github.nackily\u003c/groupId\u003e\n    \u003cartifactId\u003eimglib-all\u003c/artifactId\u003e\n    \u003cversion\u003e{*.*.*}\u003c/version\u003e\n  \u003c/dependency\u003e\n```\n\n**Jar**\n\nYou can also visit [**maven-repository**](https://repo1.maven.org/maven2/io/github/nackily/imglib-all/), \ndownload the corresponding version of `imglib-all-*.*.*.jar` and import it into your project.\n\n**Tips**\n\nIt is worth mentioning that *imglib* is not a project started from nothing, it just stands on the shoulders \nof giants! *imglib* is based on [Thumbnailator](https://github.com/coobird/thumbnailator) in image processing, \nrelies on [pdfbox](https://github.com/apache/pdfbox) in PDF document parsing, and references \n[animated-gif-lib-for-java](https://github.com/rtyley/animated-gif-lib-for-java) in GIF document processing.\nAlthough *imglib* relies on these excellent third-party dependencies in some image processing capabilities, \n*imglib* does not include relevant dependencies after packaging. If necessary, you should add corresponding \ndependencies to the project independently.Please refer to [Dependencies](/docs/Dependencies.md) for detailed\nlists.\n\n## See more\nGet more information about *imglib* by visit the following links:\n\n+ [**Examples**](/docs/Examples.en.md)\n+ [**Dependencies**](/docs/Dependencies.en.md)\n+ [**API Documentation**](/docs/APIs.en.md)\n+ [**Frequently Asked Questions**](/docs/FAQ.en.md)\n","funding_links":[],"categories":["Java"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnackily%2Fimglib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnackily%2Fimglib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnackily%2Fimglib/lists"}