{"id":16480658,"url":"https://github.com/hpjansson/smolscale","last_synced_at":"2025-03-21T07:30:29.745Z","repository":{"id":77507529,"uuid":"195717497","full_name":"hpjansson/smolscale","owner":"hpjansson","description":"Fast, embeddable C code for smooth image scaling and pixel format conversion","archived":false,"fork":false,"pushed_at":"2024-01-04T22:36:25.000Z","size":1412,"stargazers_count":34,"open_issues_count":19,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-15T05:48:02.988Z","etag":null,"topics":["avx2","c","embeddable","fast","graphics","image-processing","images","pixels"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hpjansson.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-07-08T01:45:22.000Z","updated_at":"2025-03-04T11:48:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"98bd6836-b0bf-461a-9226-277c89c039eb","html_url":"https://github.com/hpjansson/smolscale","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpjansson%2Fsmolscale","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpjansson%2Fsmolscale/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpjansson%2Fsmolscale/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hpjansson%2Fsmolscale/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hpjansson","download_url":"https://codeload.github.com/hpjansson/smolscale/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244119231,"owners_count":20400961,"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":["avx2","c","embeddable","fast","graphics","image-processing","images","pixels"],"created_at":"2024-10-11T13:04:55.032Z","updated_at":"2025-03-21T07:30:29.388Z","avatar_url":"https://github.com/hpjansson.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Smolscale\n=========\n\nSmolscale is a smol piece of C code for quickly scaling images to a reasonable\nlevel of quality using CPU resources only (no GPU). It operates on 4-channel\ndata with 32 bits per pixel, i.e. packed RGBA, ARGB, BGRA etc, as well as\n3-channel data without an alpha channel. It supports both premultiplied and\nunassociated alpha and can convert between the two. It is host byte ordering\nagnostic. The maximum image dimensions are 65535x65535 pixels.\n\nThe design goals are:\n\n* High throughput: Optimized code, within reason. Easily parallelizable.\n\n* Decent quality: No aliasing as produced by nearest-neighbor scaling.\n\n* Low memory overhead.\n\n* Simplicity: A modern C toolchain as the only dependency.\n\n* Ease of use: One-shot and row-batch APIs.\n\nUsage\n-----\n\nFirst, read COPYING. If your project meets the requirements, you should be\nable to copy the following files into it and add it to your build with\nminimal fuss:\n\n  smolscale.c\n  smolscale.h\n  smolscale-private.h\n\nIf you want AVX2 SIMD support, optionally copy this additional file and\ncompile everything with -DSMOL_WITH_AVX2:\n\n  smolscale-avx2.c\n\nKeep in mind that this file is mostly just a straight copy of the generic\ncode for the time being. Still, you will get a performance boost by building\nit with -mavx2 and letting Smolscale pick the implementation at runtime.\n\nThe API documentation lives in smolscale.h along with the public declarations.\n\nTests\n-----\n\nThere is a testing and benchmarking program included. It lives in test.c.\nYou should be able to build it by simply issuing 'gmake' or 'make'. It also\nallows you to test a few non-smol image scaling implementations.\n\nYou need the development files for the following dependencies installed first\n(these are for test.c only and are not needed for Smolscale proper):\n\n* gdx-pixbuf\n\n* libpng\n\n* libswscale\n\n* pixman\n\n* SDL_gfx\n\nYou can also optionally build in Skia support, but then you have to build\nSkia in the skia/ subdir and edit the Makefile (WITH_SKIA=yes).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhpjansson%2Fsmolscale","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhpjansson%2Fsmolscale","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhpjansson%2Fsmolscale/lists"}