{"adoption": {"forks": 310, "observed_at": "2026-08-28T04:04:54.800041+00:00", "stars": 1504}, "canonical_url": "https://ross.abutalabs.com/products/canhub-android-image-cropper", "card": {"archived": false, "artifact_type": "library", "description": "Image Cropping Library for Android, optimised for Camera / Gallery.", "domain": ["mobile-development", "image-processing"], "enriched": true, "function": ["image-processing", "ui-components"], "health_score": 84, "homepage": null, "language": "Kotlin", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["CanHub/Android-Image-Cropper"], "name": "CanHub/Android-Image-Cropper", "platform": ["jvm"], "pushed_at": "2026-04-28T07:09:28+00:00", "repo": "CanHub/Android-Image-Cropper", "stars": 1504, "tags": ["image-cropping", "camera", "gallery", "android-library", "android"], "topics": ["android", "android-image-cropper", "android-image-crop", "canhub", "cropper", "camera", "gallery", "hacktoberfest", "android-library", "kotlin"], "urls": [], "use_cases": ["crop profile pictures picked from gallery", "crop photos taken with the camera before upload", "embed an interactive crop view in an Android activity", "crop images to circular or custom shapes", "let users rotate and zoom images before cropping"], "what_it_is": "A Kotlin image cropping library for Android, optimized for images picked from the camera or gallery. It provides a customizable CropImageView with zoom, rotation, shape and limit controls, plus an ActivityResult contract for launching crop flows.", "when_to_avoid": ["you are not building an Android app", "you need server-side or desktop image cropping", "you only need simple resizing without interactive cropping UI"], "when_to_choose": ["you need a battle-tested, customizable image cropper on Android", "you want camera/gallery image picking integrated with cropping", "you need zoom, rotation, and shape customization out of the box"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/canhub-android-image-cropper", "repo": "CanHub/Android-Image-Cropper", "role": "main", "score": 65}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.800041+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:32:43.857063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1104eaeba5238e864c91ebff6f07fe38ccc172062c4e6afd3ce899c505d8d1dd", "fetched_at": "2026-08-28T04:04:54.800041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CanHub/Android-Image-Cropper"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.800041+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:32:43.857063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1104eaeba5238e864c91ebff6f07fe38ccc172062c4e6afd3ce899c505d8d1dd", "fetched_at": "2026-08-28T04:04:54.800041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CanHub/Android-Image-Cropper"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:32:43.857063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1104eaeba5238e864c91ebff6f07fe38ccc172062c4e6afd3ce899c505d8d1dd", "fetched_at": "2026-08-28T04:04:54.800041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CanHub/Android-Image-Cropper"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.800041+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.800041+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.800041+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:32:43.857063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1104eaeba5238e864c91ebff6f07fe38ccc172062c4e6afd3ce899c505d8d1dd", "fetched_at": "2026-08-28T04:04:54.800041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CanHub/Android-Image-Cropper"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.800041+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.800041+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:32:43.857063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1104eaeba5238e864c91ebff6f07fe38ccc172062c4e6afd3ce899c505d8d1dd", "fetched_at": "2026-08-28T04:04:54.800041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CanHub/Android-Image-Cropper"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.800041+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.800041+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.800041+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:32:43.857063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1104eaeba5238e864c91ebff6f07fe38ccc172062c4e6afd3ce899c505d8d1dd", "fetched_at": "2026-08-28T04:04:54.800041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CanHub/Android-Image-Cropper"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.800041+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.800041+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:32:43.857063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1104eaeba5238e864c91ebff6f07fe38ccc172062c4e6afd3ce899c505d8d1dd", "fetched_at": "2026-08-28T04:04:54.800041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CanHub/Android-Image-Cropper"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:32:43.857063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1104eaeba5238e864c91ebff6f07fe38ccc172062c4e6afd3ce899c505d8d1dd", "fetched_at": "2026-08-28T04:04:54.800041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CanHub/Android-Image-Cropper"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:32:43.857063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1104eaeba5238e864c91ebff6f07fe38ccc172062c4e6afd3ce899c505d8d1dd", "fetched_at": "2026-08-28T04:04:54.800041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CanHub/Android-Image-Cropper"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:32:43.857063+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1104eaeba5238e864c91ebff6f07fe38ccc172062c4e6afd3ce899c505d8d1dd", "fetched_at": "2026-08-28T04:04:54.800041+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CanHub/Android-Image-Cropper"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 79, "longevity": 100, "rhythm": 27}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2111, "days_push": 127, "days_rel": 278, "gap_med": null, "n_releases_24m": 1}, "score": 65, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}