{"id":20610529,"url":"https://github.com/reugn/sketch","last_synced_at":"2025-04-15T04:32:33.407Z","repository":{"id":45619613,"uuid":"434865646","full_name":"reugn/sketch","owner":"reugn","description":"An image manipulation library for Kotlin","archived":false,"fork":false,"pushed_at":"2021-12-04T10:47:24.000Z","size":336,"stargazers_count":48,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T16:03:28.368Z","etag":null,"topics":["image","image-effects","image-manipulation","image-processing","image-transformations","java","kotlin","kotlin-library"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/reugn.png","metadata":{"files":{"readme":"README.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}},"created_at":"2021-12-04T10:03:50.000Z","updated_at":"2025-01-20T15:53:32.000Z","dependencies_parsed_at":"2022-08-30T14:10:15.814Z","dependency_job_id":null,"html_url":"https://github.com/reugn/sketch","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/reugn%2Fsketch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reugn%2Fsketch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reugn%2Fsketch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reugn%2Fsketch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reugn","download_url":"https://codeload.github.com/reugn/sketch/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249006599,"owners_count":21197307,"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","image-effects","image-manipulation","image-processing","image-transformations","java","kotlin","kotlin-library"],"created_at":"2024-11-16T10:17:07.102Z","updated_at":"2025-04-15T04:32:33.388Z","avatar_url":"https://github.com/reugn.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sketch [![Build](https://github.com/reugn/sketch/actions/workflows/build.yml/badge.svg)](https://github.com/reugn/sketch/actions/workflows/build.yml)\n\nAn image manipulation library for Kotlin.\n\n`Sketch` doesn't require any external installation like OpenCV or OCR and can be used right away. It's actually a\nzero-dependency library designed for simplicity that wraps the Java AWT BufferedImage. The library provides an\nasynchronous interface for all image operations.\n\n## Requirements\n\n* Java 8+\n\n## Installation\n\n\u003e The library is intended to be published to Maven Central.\n\nIn the meantime, it can be installed locally:\n\n```sh\n./gradlew publishToMavenLocal\n```\n\nAdd the library as a dependency to your project:\n\n```kotlin\ndependencies {\n    implementation(\"io.github.reugn:sketch:0.1.0\")\n}\n```\n\n## Features\n\nBelow is a list of the supported transformations/effects with the resulting image.  \nClick the heading to get the test code that generated the example.\n\n| Original Image |\n|----------------|\n|![dstImage](docs/images/hummingbird_original.jpg)|\n\n### Transformations\n\n| [Rotate][rotate] | [Resize][resize] | [Crop rectangle][crop] | [Crop circle][crop] |\n|------------------|------------------|------------------------|---------------------|\n|![dstImage](docs/images/hummingbird_rotate.png)|![dstImage](docs/images/hummingbird_resized.jpg)|![dstImage](docs/images/hummingbird_crop_rect.jpg)|![dstImage](docs/images/hummingbird_crop_circle.png)|\n\n[rotate]: src/test/kotlin/io/github/reugn/sketch/SketchRotateTest.kt\n\n[resize]: src/test/kotlin/io/github/reugn/sketch/SketchResizeTest.kt\n\n[crop]: src/test/kotlin/io/github/reugn/sketch/SketchCropTest.kt\n\n| [Border radius][border] | [Add border][border] | [Add border with radius][border] |\n|-------------------------|----------------------|----------------------------------|\n|![dstImage](docs/images/hummingbird_border_radius.png)|![dstImage](docs/images/hummingbird_border.png)|![dstImage](docs/images/hummingbird_border_with_radius.png)|\n\n[border]: src/test/kotlin/io/github/reugn/sketch/SketchBorderTest.kt\n\n| [Inline text][inline] | [Inline image][inline] | [Set pixels][pixels] |\n|-----------------------|------------------------|----------------------|\n|![dstImage](docs/images/hummingbird_inline_text.jpg)|![dstImage](docs/images/hummingbird_inline_image.jpg)|![dstImage](docs/images/hummingbird_set_pixels.jpg)|\n\n[inline]: src/test/kotlin/io/github/reugn/sketch/SketchInlineTest.kt\n\n[pixels]: src/test/kotlin/io/github/reugn/sketch/SketchSetPixelsTest.kt\n\n### Effects\n\n| [Brightness][filter] | [Contrast][filter] | [Opacity][filter] |\n|--------------------------|----------------------|--------------------|\n|![dstImage](docs/images/hummingbird_brightness_filter.jpg)|![dstImage](docs/images/hummingbird_contrast_filter.jpg)|![dstImage](docs/images/hummingbird_opacity_filter.jpg)|\n\n| [Color Mask][filter]  | [Grayscale][filter]  | [Invert Colors][filter] |\n|-----------------------|----------------------|-------------------------|\n|![dstImage](docs/images/hummingbird_color_mask_filter.jpg)|![dstImage](docs/images/hummingbird_grayscale_filter.jpg)|![dstImage](docs/images/hummingbird_invert_filter.jpg)|\n\n[filter]: src/test/kotlin/io/github/reugn/sketch/SketchFiltersTest.kt\n\n| [Blur][blur] | [Blur partial][blur] |\n|--------------|----------------------|\n|![dstImage](docs/images/hummingbird_blur_full.jpg)|![dstImage](docs/images/hummingbird_blur_partial.jpg)|\n\n[blur]: src/test/kotlin/io/github/reugn/sketch/SketchBlurTest.kt\n\n| [Pixelate][pixelate] | [Pixelate partial][pixelate] |\n|----------------------|------------------------------|\n|![dstImage](docs/images/hummingbird_pixelate_full.jpg)|![dstImage](docs/images/hummingbird_pixelate_partial.jpg)|\n\n[pixelate]: src/test/kotlin/io/github/reugn/sketch/SketchPixelateTest.kt\n\n## License\n\nLicensed under the [Apache 2.0 License](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freugn%2Fsketch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freugn%2Fsketch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freugn%2Fsketch/lists"}