{"id":25668483,"url":"https://github.com/borud/points","last_synced_at":"2025-10-16T19:17:46.328Z","repository":{"id":37068631,"uuid":"187488140","full_name":"borud/points","owner":"borud","description":"Artyfarty halftone filter","archived":false,"fork":false,"pushed_at":"2022-06-21T15:43:52.000Z","size":439,"stargazers_count":48,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-23T00:18:17.205Z","etag":null,"topics":["golang","graphics","halftone","svg"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/borud.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}},"created_at":"2019-05-19T14:36:15.000Z","updated_at":"2025-03-18T05:27:55.000Z","dependencies_parsed_at":"2022-09-15T06:40:50.026Z","dependency_job_id":null,"html_url":"https://github.com/borud/points","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borud%2Fpoints","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borud%2Fpoints/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borud%2Fpoints/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borud%2Fpoints/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/borud","download_url":"https://codeload.github.com/borud/points/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250343960,"owners_count":21415042,"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":["golang","graphics","halftone","svg"],"created_at":"2025-02-24T10:34:12.723Z","updated_at":"2025-10-16T19:17:46.235Z","avatar_url":"https://github.com/borud.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Points\n\n[![Build Status](https://travis-ci.org/borud/points.svg?branch=master)](https://travis-ci.org/borud/points)\n\n![Mona Lisa](images/repository-points.png)\n\nSimple utility for turning a bitmap into colored dots whose diameter\nis proportional to the luminescence of the region the dot represents\nand the color is the average color of the area.  \n\nThe program outputs SVG since this is usually more useful than a\nbitmap if you plan to use the output as part of a workflow.\n\nThis program is probably slow, and fairly suboptimal stemming from the\nfact that I have absolutely no experience writing graphics utilities.\nBut hopefully it is easy to read and understand.\n\n## Building and installing\n\nTo install \n\n    go get -u github.com/borud/points\n\n\n## Usage\n\n    points \u003cflags\u003e\n\n  - **`-f \u003cfilename\u003e`** : the input filename.  Accepts JPEG, PNG and GIF as input.\n  - **`-o \u003cfilename\u003e`** : the output filename. Default is original name with SVG suffix.\n  - **`-b \u003cint\u003e`** : the box size in pixels.\n  - **`-s \u003cint\u003e`** : the scale with which svg fill will be scaled compared to original file.\n  - **`-t`** : luma threshold (0.0 to 1.0)\n  - **`-l`** : use BT.701 luma function instead of BT.601 to give more\n    weight to red and blue\n  - **`-c`** : use average color for area rather than just black (default true)\n  - **`-a`** : use the luma as the surface area instead of the radius (default false)\n\nExample usages\n\n    ./points -f test.jpg -o mytest.svg -b 50 -t 0.6 \n\t\nThis produces the file `test.svg` with a box size of 50, a luma\nthreshold of 0.6 and writes it to `mytest.svg`.\n\n## Box size\n\nThe box size refers to the size of the box each circle represents.\nSince the box is square it represents the length of a side measured in\npixels.  So a value of 30 means that the image is divided into boxes\nthat are 30x30 pixels in size.\n\n## Luma Threshold\n\nThe Luma Threshold is used to eliminate small dots to make a more\npleasing picture.  Since the diameter of the dots represents how dark\nthey are, dots representing bright areas will be very small and thus\nmake the picture look noisy.\n\n  - A value of 1.0 includes all the dots.\n  - A value of 0.0 removes all the dots.\n\n# Some examples\n\n    ./points -f mona.jpg -b 15\n![Mona Lisa](images/mona-15-1.0.svg)\n\n    ./points -f mona.jpg -b 80\n![Mona Lisa](images/mona-80-1.0.svg)\n\n    ./points -f mona.jpg -b 10 -m -t 0.3\n![Mona Lisa](images/mona-10-0.3-m.svg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborud%2Fpoints","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fborud%2Fpoints","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborud%2Fpoints/lists"}