{"id":23461547,"url":"https://github.com/tito21/sample-img-format","last_synced_at":"2025-10-12T21:44:59.341Z","repository":{"id":147328626,"uuid":"584252050","full_name":"tito21/sample-img-format","owner":"tito21","description":"Simple image compressor and decoder","archived":false,"fork":false,"pushed_at":"2023-01-02T02:10:28.000Z","size":2057,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-12T21:44:58.843Z","etag":null,"topics":["image-compression","image-processing","image-quality"],"latest_commit_sha":null,"homepage":"","language":"C++","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/tito21.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":"2023-01-02T02:04:50.000Z","updated_at":"2023-01-02T18:28:35.000Z","dependencies_parsed_at":"2023-05-30T14:00:48.511Z","dependency_job_id":null,"html_url":"https://github.com/tito21/sample-img-format","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tito21/sample-img-format","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tito21%2Fsample-img-format","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tito21%2Fsample-img-format/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tito21%2Fsample-img-format/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tito21%2Fsample-img-format/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tito21","download_url":"https://codeload.github.com/tito21/sample-img-format/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tito21%2Fsample-img-format/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279013126,"owners_count":26085232,"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","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-compression","image-processing","image-quality"],"created_at":"2024-12-24T07:45:29.599Z","updated_at":"2025-10-12T21:44:59.300Z","avatar_url":"https://github.com/tito21.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Image Compressor\n\nThis is a simple implementation of a lossy image compressor. It is inspired by\nJPEG. As JPEG the image is decomposed into square blocks and transformed with\na Discrete Cosine Transform (DCT) and high frequencies are discarded. The image\nis transformed to YCrCb color space before compression.\n\nIt doesn't really outperforms any image saving method but my goal was to learn\nabout openCV and saving and loading files in C++.\n\n![Sample image](screenshots/astro.png)\n\n## Usage\n\nBuild with `make`\n\nTo compress an image run `./img-compressor input_image_path output_image_path\n-num-freq=2 -block-size=8` If the output_path ends in `.cmp` a compressed image\nis saved. If it ends in `.raw` a direct uncompressed image is saved. If you run\nonly with one path is giving the image is decoded and displayed.\n\n## Areas for improvement\n\n- Add support for image sizes that are not integer multiple of the block size\n- Allow for different resolutions per channel.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftito21%2Fsample-img-format","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftito21%2Fsample-img-format","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftito21%2Fsample-img-format/lists"}