{"id":235,"date":"2023-01-10T20:21:38","date_gmt":"2023-01-10T20:21:38","guid":{"rendered":"https:\/\/trewest.dev\/blog\/?p=235"},"modified":"2023-12-05T09:34:35","modified_gmt":"2023-12-05T09:34:35","slug":"project-imgalib","status":"publish","type":"post","link":"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/10\/project-imgalib\/","title":{"rendered":"Project: Imgalib"},"content":{"rendered":"<div class=\"wp-post-series-box series-project-overviews wp-post-series-box--expandable\">\n\t\t\t<input id=\"collapsible-series-project-overviews69de875877b80\" class=\"wp-post-series-box__toggle_checkbox\" type=\"checkbox\">\n\t\n\t<label\n\t\tclass=\"wp-post-series-box__label\"\n\t\t\t\t\tfor=\"collapsible-series-project-overviews69de875877b80\"\n\t\t\ttabindex=\"0\"\n\t\t\t\t>\n\t\t<p class=\"wp-post-series-box__name wp-post-series-name\">\n\t\t\tThis is post 2 of 21 in the series <em>&ldquo;Project Overviews&rdquo;<\/em>\t\t<\/p>\n\t\t\t\t\t<div class=\"wp-post-series-box__description wp-post-series-description\">\n\t\t\t\t<p>A series of posts detailing and highlighting projects that I&#8217;ve made.<\/p>\n\t\t\t<\/div>\n\t\t\t<\/label>\n\n\t\t\t<div class=\"wp-post-series-box__posts\">\n\t\t\t<ol>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/10\/project-bugtrakt\/\">Project: Bugtrakt<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><span class=\"wp-post-series-box__current\">Project: Imgalib<\/span><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/10\/project-go-fish\/\">Project: Go Fish!<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/11\/project-trewest-dev\/\">Project: trewest.dev<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/11\/arduino-light-effects\/\">Arduino Light effects<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/11\/project-mini-stacker\/\">Project: Mini Stacker<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/12\/project-arduino-nes-controller\/\">Project: Arduino NES Controller<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/12\/project-metroidvania-like\/\">Project: Metroidvania-Like<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/12\/project-susminer\/\">Project: Susminer<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/12\/project-farming-demo\/\">Project: Farming Demo<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/13\/project-vrc-basement\/\">Project: VRC Basement<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/13\/project-hash-clear\/\">Project: Hash Clear<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/13\/project-titan-help\/\">Project: Titan Help<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/13\/project-computer-craft-scripts\/\">Project: Computer Craft Scripts<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/15\/project-esp8266-plant-watering\/\">Project: ESP8266 Plant Watering<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/15\/project-golf-demo\/\">Project: Golf Demo<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/15\/project-ghost-holic\/\">Project: Ghost Holic<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/03\/27\/project-multi-chat-viewer\/\">Project: Multi-Chat Viewer<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2024\/08\/22\/project-interview-simulator\/\">Project: Interview Simulator<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2024\/10\/18\/project-healers-journey\/\">Project: Healer&#8217;s Journey<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2024\/10\/18\/project-biota\/\">Project: Biota<\/a><\/li>\n\t\t\t\t\t\t\t<\/ol>\n\t\t<\/div>\n\t<\/div>\n\n<p>Status: <span style=\"color:green;\">Complete<\/span>\u2714<br>Type: Website<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"http:\/\/trewest.dev\/projects\/imgalib\">Try it out!<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/trewest.dev\">Back to Portfolio<\/a><\/div>\n<\/div>\n\n\n\n<p>Imgalib was a project I undertook when I had been challenging myself to leave my Windows desktop on as long as possible.  Whilst doing so, Windows File Explorer stopped generating thumbnail images, and the image viewer built into windows as effectively useless for browsing.  And so I undertook a dirty workaround for image hosting.  I decided that I&#8217;d be best off doing something that&#8217;d allow me to make a lot of images viewable at once, and hopefully make this a quick thing that&#8217;ll allow myself to share these images with family in the case of vacations or family photos, so a website was a sensible choice. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"764\" src=\"https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2023\/01\/image-14-1024x764.png\" alt=\"\" class=\"wp-image-236\" srcset=\"https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2023\/01\/image-14-1024x764.png 1024w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2023\/01\/image-14-300x224.png 300w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2023\/01\/image-14-768x573.png 768w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2023\/01\/image-14-1536x1146.png 1536w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2023\/01\/image-14.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Having all these images easily viewable poses quite a few challenges, such as what to do with duplicates, how should I manage all these pictures, sorting, filtering, etc.  All data management issues.  Additionally a big challenge was that I didn&#8217;t want to use a proper database, the most I wanted to allow was a JSON file.  So how did I answer these?  Well I did do my best to add sorting and filtering and as long as images stay within the same instance it will be fine but as soon as they leave, not so much.  And as for JSON stuff&#8230;  I really didn&#8217;t do anything about it.  Admittedly this is a &#8220;Quick and dirty&#8221; project not something I was doing for entertainment (Though I did enjoy making it) but it was more so for the utility of it.  A good comparison is adding a lightbar to a car to see better in the dark.  It&#8217;s part you want it, part you could really use it, but in reality it&#8217;s not completely necessary for everyone.  <\/p>\n\n\n\n<p>One of the big features I felt I had to add to Imgalib was infinite scrolling, meaning as long as there&#8217;s content you can simply load it by scrolling down, take a look!  (There&#8217;s a few repeats since the gallery was set to random)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"293\" height=\"1024\" src=\"https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2023\/01\/image-15-293x1024.png\" alt=\"\" class=\"wp-image-237\" srcset=\"https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2023\/01\/image-15-293x1024.png 293w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2023\/01\/image-15-86x300.png 86w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2023\/01\/image-15-768x2683.png 768w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2023\/01\/image-15-440x1536.png 440w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2023\/01\/image-15-586x2048.png 586w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2023\/01\/image-15.png 1920w\" sizes=\"auto, (max-width: 293px) 100vw, 293px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>mgalib was a project I undertook when I had been challenging myself to leave my Windows desktop on as long as possible.  Whilst doing so, Windows File Explorer stopped generating thumbnail images, and the image viewer built into windows as effectively useless for browsing.  And so I undertook a dirty workaround for image hosting&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,36,33,8,32],"tags":[38,37,30,31],"post_series":[53],"class_list":["post-235","post","type-post","status-publish","format-standard","hentry","category-coding","category-overview","category-php","category-project","category-website","tag-gallery","tag-images","tag-php","tag-website","post_series-project-overviews"],"_links":{"self":[{"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/posts\/235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=235"}],"version-history":[{"count":2,"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/posts\/235\/revisions"}],"predecessor-version":[{"id":239,"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/posts\/235\/revisions\/239"}],"wp:attachment":[{"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=235"},{"taxonomy":"post_series","embeddable":true,"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/post_series?post=235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}