{"id":19431256,"url":"https://github.com/cloudofoz/js-exif-printer","last_synced_at":"2025-02-25T05:45:14.463Z","repository":{"id":212160346,"uuid":"730844646","full_name":"cloudofoz/js-exif-printer","owner":"cloudofoz","description":"A small web tool to automatically read and draw on photos their technical information (EXIF data), such as the camera model or focal length used.","archived":false,"fork":false,"pushed_at":"2023-12-15T06:25:22.000Z","size":599,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-07T20:16:14.871Z","etag":null,"topics":["canvas2d","exif","exif-data-extraction","exif-metadata","front-end","js","materialize-css","photography","responsive-web-design","vector-graphics","webapp"],"latest_commit_sha":null,"homepage":"https://cloudofoz.com/exif-printer/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudofoz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.MD","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-12-12T19:54:53.000Z","updated_at":"2024-01-31T23:05:57.000Z","dependencies_parsed_at":"2023-12-15T07:32:29.648Z","dependency_job_id":null,"html_url":"https://github.com/cloudofoz/js-exif-printer","commit_stats":null,"previous_names":["cloudofoz/js-exif-printer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudofoz%2Fjs-exif-printer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudofoz%2Fjs-exif-printer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudofoz%2Fjs-exif-printer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudofoz%2Fjs-exif-printer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudofoz","download_url":"https://codeload.github.com/cloudofoz/js-exif-printer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240612533,"owners_count":19829027,"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":["canvas2d","exif","exif-data-extraction","exif-metadata","front-end","js","materialize-css","photography","responsive-web-design","vector-graphics","webapp"],"created_at":"2024-11-10T14:28:51.340Z","updated_at":"2025-02-25T05:45:14.442Z","avatar_url":"https://github.com/cloudofoz.png","language":"JavaScript","readme":"![Version](https://img.shields.io/badge/version-v0.1.0-informational) ![License](https://img.shields.io/github/license/cloudofoz/js-exif-printer)\n\n\u003ch3 align=\"center\"\u003e\n  \u003cimg src=\"icons/app_icon.svg\" width=\"512\"/\u003e\n\u003c/h3\u003e\n\n\u003cbr/\u003e\n\n\u003ch3 align=\"center\"\u003e\nA small web tool to automatically read and draw on photos their technical information (EXIF data), such as the camera model or focal length used. It is aimed at amateur and enthusiast photographers who want to share this data alongside their images.\n\u003c/h3\u003e\n\n\u003ch2 align=\"center\"\u003e\n  For the online version: \u003ca href=\"https://www.cloudofoz.com/exif-printer/\"\u003eclick here\u003c/a\u003e\n\u003c/h2\u003e\n\n\u003ch3 align=\"center\"\u003e\n  \u003cimg src=\"https://www.cloudofoz.com/exif-printer/screenshots/screen_01.jpg\" align=\"right\" style=\"margin-bottom:20px;\"/\u003e\n\u003c/h3\u003e\n\n\n### Main features\n* Responsive web design (desktop and mobile)\n* Full resolution-indipendent vector graphics\n* Theme editor for changing colors, styles (with color pickers and sliders) and metrics (line-spacing, icons and text size)\n* Easily extendable (EXIF/IPTC tags are managed through a JSON)\n* Tag Icons: Support for any \u003ca href=\"https://fonts.google.com/icons\"\u003eGoogle Material Symbol\u003c/a\u003e\n* Tag Icons: Basic support for custom SVG icons (with a parser to convert from SVG to a Path2D compatible with the renderer)\n* Support for custom tags\n* 100% front-end: data is never uploaded to the server\n\n\u003cbr/\u003e\n\n### How to\n#### Use the tool\nInstructions on how to use it are provided automatically when you open the page.\n#### Add a new tag\nAdding a new tag is very simple. In this example I'll show you how to enable the display of the photo `copyright` tag.\nSimply add this entry to `ep_tags_data.json`:\n```\n\"copyright\": {\n    \"iconID\": \"copyright\",\n    \"iconType\": \"material_symbol\",\n    \"name\": \"Copyright\",\n    \"desc\": \"Who owns the copyright of this image.\",\n    \"tagID\": \"Copyright\",\n    \"tagType\": \"exif\"\n}\n```\n* `iconID`: It can be the code of a **Google Material Symbol**, like in this case, or a path to a **SVG**.\n* `iconType`: It can be `material_symbol` if `iconID` is the code of a **Material Symbol** or `local_svg` if `iconID` is the path of an **SVG**. An SVG icon has to be centered in a box of `(0, 0, 24, 24)` pixels and can have only a combination of ***two*** styles named `fillStyle` and `strokeStyle`. **EXIF Printer** will fill any path called `fillStyle` and draw the outline of any path called `strokeStyle`. Real colouring and styling are completely managed by **EXIF Printer**.\n* `name`: It's the name displayed when you click on the icon\n* `desc`: It'a brief description of the tag, it will displayed alongsie `name`.\n* `tagID`: It's the **key** used by `exif-js` to store the EXIF/IPTC tag. It can be a **custom unique id** for custom tags.\n* `tagType`: It can be `exif` if `tagID` is an **EXIF** tag id. Other possible values are: `iptc` or `custom`. Custom tags have to be manually implemented inside the code.\n### Test the project locally\n**Python** can be used to start a server in the project path:\n* Navigate to the **EXIF Printer** directory.\n* Execute the command to start the server:\n  \n**Python 2** — `python -m SimpleHTTPServer 8000`\n\n**Python 3** — `python -m http.server 8000`\n* Open a web browser at `http://localhost:8000/`.\n\n\u003cbr/\u003e\n\n### Dependencies\n* [Materialize CSS](https://materializecss.com/)\n* [exif-js](https://github.com/exif-js/exif-js) - A library for reading EXIF meta data from image files.\n* [tinycolor](https://github.com/bgrins/TinyColor) - A small, fast library for color manipulation and conversion.\n* [pickr](https://github.com/simonwep/pickr) - Flat, Simple, Hackable Color-Picker.\n\n\u003cbr/\u003e\n\n### License\n[MIT License](/LICENSE.md)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudofoz%2Fjs-exif-printer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudofoz%2Fjs-exif-printer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudofoz%2Fjs-exif-printer/lists"}