{"id":21595246,"url":"https://github.com/euank/ppmview","last_synced_at":"2025-03-18T11:09:38.340Z","repository":{"id":17737525,"uuid":"20577405","full_name":"euank/ppmview","owner":"euank","description":"A simple ppm viewer","archived":false,"fork":false,"pushed_at":"2014-06-06T20:37:41.000Z","size":172,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-24T17:19:49.997Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","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/euank.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":"2014-06-06T20:36:02.000Z","updated_at":"2024-07-09T09:24:09.000Z","dependencies_parsed_at":"2022-09-24T18:31:27.878Z","dependency_job_id":null,"html_url":"https://github.com/euank/ppmview","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/euank%2Fppmview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/euank%2Fppmview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/euank%2Fppmview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/euank%2Fppmview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/euank","download_url":"https://codeload.github.com/euank/ppmview/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244207736,"owners_count":20416107,"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":[],"created_at":"2024-11-24T17:35:01.093Z","updated_at":"2025-03-18T11:09:38.323Z","avatar_url":"https://github.com/euank.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ppmview - A simple ppm viewer (with OpenGL)\n\n## Building\n\nStandard CMake\n```\ncmake .; make\n```\n\n### Documentation:\n```\ncmake .; make docs; firefox docs/html/files.html\n```\n\n## Usage\n```\n./ppmview \u003cin.ppm\u003e [\u003cout.ppm\u003e]\n```\n### Controls\nr, g, b, o - Control the visible colour channels. Red, green, blue, and all respectively.\ni - Invert the image.\nq or clicking - Quit\n\n## Code\n\nThis code reads a ppm file, whose name is given as the first argument, and displays it using opengl textures. It will also write a similar ppm if a second argument is given indicating the output filename.\n\nMasking features for Red, Green, and Blue channels are avaliable by pressing 'r', 'g', and 'b' respectively. 'o' reverts the image. The image can also be inverted by pressing 'i'. 'q' or clicking will exit the program.\n\nBecause OpenGL textures are used, resizing will automatically stretch the image.\nDocumentation is provided in the form of regular comments and doxygen formatted comments.\n\n## Issues\nFor reasons that I could not discern, the image is inverted on my Samsung Chromebook, but not on any other computers I tried. If you know why, I'd be interested.\n\nIt also takes a large amount of ram for large images, but that's basically a given.\n\n### Error handling\nErrors are rarely actually fatal. The program will print messages to stderr on potential issues, and then attempt to continue anyways. It happily will display an incorrect image rather than nothing at all. This is intentional and in line with the recommendations of the ppm spec. The program tries to never crash in the process of going on into the unknown, however.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feuank%2Fppmview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feuank%2Fppmview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feuank%2Fppmview/lists"}