{"id":20207725,"url":"https://github.com/k3b/losslessjpgcrop","last_synced_at":"2025-04-13T06:40:39.699Z","repository":{"id":145475743,"uuid":"182095633","full_name":"k3b/LosslessJpgCrop","owner":"k3b","description":"Android lossles jpg cropping app without reencoding quality-losses","archived":false,"fork":false,"pushed_at":"2025-03-07T08:31:55.000Z","size":2936,"stargazers_count":62,"open_issues_count":9,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-26T23:07:16.948Z","etag":null,"topics":["android","android-image-cropper","cropper","images","intent-interface","jpg","libjpeg","lossless","mozjpeg","photos"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/k3b.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-18T13:45:41.000Z","updated_at":"2025-03-07T08:31:59.000Z","dependencies_parsed_at":"2023-04-04T06:03:38.775Z","dependency_job_id":null,"html_url":"https://github.com/k3b/LosslessJpgCrop","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k3b%2FLosslessJpgCrop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k3b%2FLosslessJpgCrop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k3b%2FLosslessJpgCrop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k3b%2FLosslessJpgCrop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/k3b","download_url":"https://codeload.github.com/k3b/LosslessJpgCrop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248675434,"owners_count":21143763,"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":["android","android-image-cropper","cropper","images","intent-interface","jpg","libjpeg","lossless","mozjpeg","photos"],"created_at":"2024-11-14T05:31:38.303Z","updated_at":"2025-04-13T06:40:39.675Z","avatar_url":"https://github.com/k3b.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg src=\"https://raw.githubusercontent.com/k3b/LosslessJpgCrop/master/app/src/main/res/mipmap-xxhdpi/ll_crop.png\" alt=\"llcrop logo\" height=\"30\"/\u003e LLCrop\nLoss Less Cropping and Image Rotation: Remove unwanted parts of jpg photo without quality loss.\n\n\u003cimg src=\"https://raw.githubusercontent.com/k3b/LosslessJpgCrop/master/fastlane/metadata/android/en-US/images/featureGraphic.png\" alt=\"Featuregraphic of llcrop\" height=\"250\" /\u003e\n\nWhile there are many apps capable of cropping images (often with additional features), \nthey generally cause quality loss because they \n[re-encode to JPEG again](https://en.wikipedia.org/wiki/Lossy_compression) when saving the output file.\n\nLLCrop (the \"LL\" stands for lossless) can [crop JPEG images without quality loss](https://en.wikipedia.org/wiki/Lossy_compression#JPEG) \nbecause it crops the raw JPEG image without re-encoding the file. It also preserves embedded metadata (EXIF/IPTC and XMP).\n\nSimply load a JPEG image from the in-app image browser, adjust the rectangular selection, rotate it if necessary and save it as a new image file.\n\nNote: This app is focused on lossless JPEG image manipulation, so issues that propose additional \nfeatures (e.g. support for other file formats, add resize-support or adding text to images) are out of scope.\n\n---\n\n## Supported Workflows and Features:\n\n* Workflow [#1](https://github.com/k3b/LosslessJpgCrop/issues/1) : From Android **app launcher**:\n    * Pick an image and crop it to a new public file \u003cimg src=\"https://raw.githubusercontent.com/k3b/LosslessJpgCrop/master/app/src/debug/res/web/ic_menu_save.png\" alt=\"save icon\" height=\"30\"/\u003e\n* Workflow [#1](https://github.com/k3b/LosslessJpgCrop/issues/1) : From any **file manager** or **gallery app** that supports [intent-action-EDIT](https://developer.android.com/reference/android/content/Intent#ACTION_EDIT) for MIME *image/jpeg*:\n    * Crop current selected image to a new public file \u003cimg src=\"https://raw.githubusercontent.com/k3b/LosslessJpgCrop/master/app/src/debug/res/web/ic_menu_save.png\" alt=\"save icon\" height=\"30\"/\u003e\n* Workflow [#2](https://github.com/k3b/LosslessJpgCrop/issues/2) : From any app that supports [intent-action-SEND](https://developer.android.com/reference/android/content/Intent#ACTION_SEND) or [intent-action-SEND-TO](https://developer.android.com/reference/android/content/Intent#ACTION_SENDTO) for MIME *image/jpeg*\n    * Send/SendTo/Share a cropped version of the currently selected image \u003cimg src=\"https://raw.githubusercontent.com/k3b/LosslessJpgCrop/master/app/src/debug/res/web/ic_menu_share.png\" alt=\"share icon\" height=\"30\"/\u003e\n* Workflow [#3](https://github.com/k3b/LosslessJpgCrop/issues/3)/[#8](https://github.com/k3b/LosslessJpgCrop/issues/8) : From any app that supports [intent-action-GET-CONTENT](https://developer.android.com/reference/android/content/Intent#ACTION_GET_CONTENT) or intent-action-PICK for MIME *image/jpeg*\n    * Open/Pick the cropping of an uncropped image\n* Feature [#17](https://github.com/k3b/LosslessJpgCrop/issues/17)  (Since Version 1.2) : added support for image rotation\u003cimg src=\"https://raw.githubusercontent.com/k3b/LosslessJpgCrop/master/app/src/debug/res/web/ic_menu_rotate.png\" alt=\"rotate icon\" height=\"30\"/\u003e\n* Feature [#35](https://github.com/k3b/LosslessJpgCrop/issues/35) (Since [Version 1.3](https://github.com/k3b/LosslessJpgCrop/milestone/5)) : Display current crop box coordinates and size\n    * Show XY offset of top left corner of crop box displayed along with it's dimensions. \n    * You can get more predictable results by sticking to 8 or 16 multiples for offset and box size allows to target aspect ratio.\n* Feature [#15](https://github.com/k3b/LosslessJpgCrop/issues/15) (Since [Version 1.3](https://github.com/k3b/LosslessJpgCrop/milestone/5))  : Define crop box size or aspect ratio \u003cimg src=\"https://raw.githubusercontent.com/k3b/LosslessJpgCrop/master/app/src/debug/res/web/ic_menu_crop.png\" alt=\"aspect ratio icon\" height=\"30\"/\u003e\n  * if you set width and height to a value below 100 then you define the aspect ratio of the cropping result. Example 9x13\n  * if you set width and height to a value above 100 then you define the absolute size in pixel of the cropping result. Example 400x600\n\n---\n\n## Requirements\n\n* Android 4.4 KitKat (API 19) or newer\n* CPU arm64-v8a, arbeabi-v7a, x86 or x86_64 because of the C++ cropping code\n* Permissions\n  * READ_EXTERNAL_STORAGE (to open a local image)\n  * WRITE_EXTERNAL_STORAGE (to save the cropped image)\n\n---\n\n[\u003cimg src=\"https://github.com/k3b/APhotoManager/wiki/fdroid.png\" alt=\"available on F-Droid app store\" height=\"82\" width=\"200\"\u003e](https://f-droid.org/packages/de.k3b.android.lossless_jpg_crop)\u003cbr/\u003e\n[\u003cimg src=\"https://github.com/k3b/LosslessJpgCrop/raw/master/app/src/debug/res/drawable/qr_code_url_llcrop_fdroid.png\" alt=\"available on F-Droid app store\" height=\"200\" width=\"200\"\u003e](https://f-droid.org/packages/de.k3b.android.lossless_jpg_crop)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk3b%2Flosslessjpgcrop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fk3b%2Flosslessjpgcrop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk3b%2Flosslessjpgcrop/lists"}