{"id":18777732,"url":"https://github.com/daelsepara/pixel-scaler-for-windows-plugin","last_synced_at":"2025-09-13T14:15:51.058Z","repository":{"id":142354083,"uuid":"111795093","full_name":"daelsepara/Pixel-Scaler-for-Windows-Plugin","owner":"daelsepara","description":"How to create a plugin DLL for Pixel Scaler","archived":false,"fork":false,"pushed_at":"2017-11-23T13:22:07.000Z","size":23,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-09T14:07:17.150Z","etag":null,"topics":["image-scaling","pixel-filter","pixel-scaling","plugin","scaling-algorithms"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daelsepara.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2017-11-23T10:20:17.000Z","updated_at":"2021-03-26T07:10:57.000Z","dependencies_parsed_at":"2023-04-19T00:47:16.622Z","dependency_job_id":null,"html_url":"https://github.com/daelsepara/Pixel-Scaler-for-Windows-Plugin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/daelsepara/Pixel-Scaler-for-Windows-Plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelsepara%2FPixel-Scaler-for-Windows-Plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelsepara%2FPixel-Scaler-for-Windows-Plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelsepara%2FPixel-Scaler-for-Windows-Plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelsepara%2FPixel-Scaler-for-Windows-Plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daelsepara","download_url":"https://codeload.github.com/daelsepara/Pixel-Scaler-for-Windows-Plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daelsepara%2FPixel-Scaler-for-Windows-Plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274976032,"owners_count":25384283,"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-09-13T02:00:10.085Z","response_time":70,"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-scaling","pixel-filter","pixel-scaling","plugin","scaling-algorithms"],"created_at":"2024-11-07T20:13:30.022Z","updated_at":"2025-09-13T14:15:51.050Z","avatar_url":"https://github.com/daelsepara.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pixel Scaler for Windows Plugin\nHow to create a filter plugin DLL for Pixel Scaler\n\n## Image format\n\nThe filter's input and output format is raw 8-bit RGB without an alpha channel. This is essentially an __unsigned char__  array in C/C++ terms. The size of the array is __Width * Height * 3__, i.e. *1 byte* for each color channel. In the future this might change.\n\n## Required Exports\n\nAlthough there is strictly no pre-defined way to code a filter plugin that will work with PixelScaler, the following functions are expected by the program\n\n__void Release()__\n\nThis is where you perform clean-up procedures such as freeing resources, especially the filter's scaled output. This is called before the DLL is unloaded by PixelScaler.\n\n__void Apply(int argc, void** argv)__\n\nActual application of the filter occurs here. Two arguments are passed in this function, the number of arguments __*argc*__, and an array of pointers __*argv*__ to the actual parameters. PixelScaler assumes that the first 3 arguments are:\n\n* pointer to the input image (in 8-bit RGB format as described above), i.e. __unsigned char* Input__\n* pointer to an integer variable indicating the width of the input, i.e. __int* Width__\n* pointer to an integer variable indicating the height of the input, i.e. __int* Height__\n\nBeyond the first three parameters, you have absolute freedom on how to process it. In the sample code provided here, the parameter values are read in the following manner:\n\n```c\nauto Input = ((unsigned char*)(argv[0]));\nauto srcx = *((int*)(argv[1]));\nauto srcy = *((int*)(argv[2]));\n```\nCode to process other parameters (__argv[3]__ and beyond) can easily adapted from the above example\n\n__void Threshold(bool threshold)__\n\nPassing a __true__ value to this function indicates that the color comparison in *FilterCommon.h* should use *Luminance*, *Chromaticity U*, and *V* thresholds when comparing pixel colors. The default setting for the internal variable is __false__. \n\n__int ID()__\n\nThis  returns a numeric (*integer*) ID for your filter plugin. This may or may not be unique.\n\n__int Scale()__\n\nIndicates scaling factor of the filter's output. For *2 X* magnification, this should return __2__\n\n__int Parameters()__\n\nThis just returns the number of special parameters that your plugin can handle. PixelScaler does not *actively* use this yet, but this is for future expansions. For now, it returns __0__\n\n__const char* Name()__\n\nThe name of the plugin\n\n__const char* Description()__\n\nBrief description of the plugin\n\n__unsigned char* Image()__\n\nReturns a pointer to the raw 8-bit RGB __unsigned char__ buffer containing the most recent output (if any) of the filter, otherwise, it is __null__.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaelsepara%2Fpixel-scaler-for-windows-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaelsepara%2Fpixel-scaler-for-windows-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaelsepara%2Fpixel-scaler-for-windows-plugin/lists"}