GithubHelp home page GithubHelp logo

corbindavenport / photostack Goto Github PK

View Code? Open in Web Editor NEW
52.0 7.0 5.0 5.47 MB

Progressive Web App for editing multiple photos at once.

Home Page: https://photostack.app

License: GNU General Public License v3.0

CSS 1.48% HTML 45.82% JavaScript 52.70%
progressive-web-app pwa pwa-apps photo photo-editing photo-editor bootstrap

photostack's Introduction

photostack's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

photostack's Issues

Watermarking support

  • UI should be similar to Lightroom's watermark tool
  • Ability to save and export watermarks (probably as JSON file, with image as base64 data?)
  • Maybe have watermark management in separate page, and only have a drop-down select on the main page

Create API for other applications

Example endpoint, where the images are URLs converted into URI components:

https://photostack.app/v1/?import=img1.jpg,img2.png

Stuff that needs to happen:

  • Create documentation for API, with links to sample usage
  • Keep all redirecting/JS code in the single page
  • Minify page for quick access
  • Determine if it would be possible to support data URLs, if not, then implement data URL blocker
  • Add API page to service worker so it works offline

Create companion browser extension

One nice use for a browser extension would be to add PhotoStack functionality to the Lightroom web app.

When selecting multiple images in the album view of the Lightroom web app, the DIV element containing the photos have a .selected class. The first child DIV of the selected DIV has a background image with a URL like this:

https://lightroom.adobe.com/v2c/catalogs/ABC/revisions/XZY

By covering the URL into this format, you get the full-quality edited image rendered as a JPEG:

https://dl.lightroom.adobe.com/catalogs/ABC/assets/XYZ

With this method, it wouldn't be too hard to add a 'Open in PhotoStack' button to the multi-select bar:

image

Another potential use for a browser extension companion could be adding an 'Open in Photostack' menu item when right-clicking on images on any page.

Exporter v2

For simplicity's sake, all of PhotoStack's image processing (importing/exporting photos, mainly) is currently done in Data URL format. Images should be processed in Blob format instead, to reduce memory usage and increase performance.

Import photos from ZIP file

Not sure how feasible this is, but it would be nice for pictures downloaded from Google Photos and other similar services.

Add Install button to landing page

The index page should be an information page, with a button at the top for launching the web app (which could be moved to /app or /editor.html?).

The landing page should showcase features, highlight how PhotoStack is open-source, and include links to donate.

Image conversion

Add option to export final images as every file type supported by HTML Canvas, with a quality slider for JPG images (there's a slider Bootstrap element).

There may be JS libraries for exporting to non-native file formats too. WebP would be nice.

Images imported from Dropbox are saved to local cache

Add page to offline cache: https://dl.dropboxusercontent.com/1/view/qu97tup2p1onhi0/Memes/beep%20beep%20uber%20here.jpg sw.js:28:17
Loaded image URL: https://dl.dropboxusercontent.com/1/view/qu97tup2p1onhi0/Memes/beep%20beep%20uber%20here.jpg editor.js:177:21
Add page to offline cache: https://dl.dropboxusercontent.com/1/view/bcnl24s5dw0ba23/Memes/Birdbath%20dog.jpg sw.js:28:17
Loaded image URL: https://dl.dropboxusercontent.com/1/view/bcnl24s5dw0ba23/Memes/Birdbath%20dog.jpg editor.js:177:21

Dark mode

There should be a dark mode switch somewhere, as well as support for the CSS dark mode attribute. The app can switch to this Bootstrap theme when dark mode is activated: https://bootswatch.com/darkly/

Export images without ZIP

Some browsers block multiple downloads, so there needs to be a warning that the export won't work.

Watermark file improvements

  • Allow importing more than one .json file at once
  • Read each value in the .json file to localStorage (with error handling), instead of just copying the entire file
  • Allow importing .json files from Dropbox, with multi-select

Settings import/export

All app settings should be able to be exported to a file, for importing on another device/browser. The settings file should contain any saved watermarks, probably as Data URLs.

Import images using Web Share API v2

https://github.com/WICG/web-share-target/blob/master/docs/explainer.md

PhotoStack should act as a target for URLs, then run the existing Import from URL function. There would need to be additional client-side logic to check if the file is actually an image (MIME type?). If possible, the check should be added to the existing URL import feature, so it will improve both URL and Web Share imports.

Beyond that, PhotoStack should act as a receiver for images, if possible.

Add simple keyboard shortcuts

Maybe "i" for import, "e" for export, and so on. There also needs to be a help dialog with a list of the shortcuts.

Tutorials

On first visit, a pop-up should appear giving basic instructions on how to use the app, with text for both desktop and mobile layouts.

Import image from tweet

It would be neat if pasting a tweet link in the Import URL box would pull images from the tweet. We could also use a regex to pull the full-resolution orig file.

The best solution might be to pull the source code using CORS Anywhere and look for <img> tags.

Interface V2

An updated UI is being worked on in the dev branch.

Goals for desktop:

  • Three-column UI on wide screens, on both editor and watermark pages
  • Updated preview that doesn't require vertical scrolling, even for tall images

Goals for mobile:

  • Move export and import buttons to bottom toolbar
  • Move image preview to floating window when the preview is scrolled past (maybe possible with position: sticky?)

Goals for both:

  • Replace all alert() and prompt() messages with Bootstrap modals, to avoid breakage when the user's browser is set to block all JavaScript alerts
  • Progress bar for multi-file imports that blocks interaction
  • Basic tutorial mode
  • Installation prompts on PWA-capable browsers
  • Button in first page of export popup to send notification when export is completed
  • More visible donate links
  • Maintain compatibility with older browsers/Internet Explorer

Image resizing

Add option to resize image to a certain maximum width/height.

Reduce size of image preview

To speed up performance, the image preview on the main editor page should be downscaled before adding watermarks and applying other effects.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.