This app aims to be a one stop shop for resizing and compressing images to be web-ready.
Image processing is done using WASM-ImageMagick which is a Web Assembly version of ImageMagick -- a powerful image manipulation tool.
Currently this tool uses the -resize
, -quality
, and -strip
options.
Shrink-Ray's UI is built with Adobe React Spectrum, a React implementation of Adobe's Spectrum Design System.
Shrink-Ray uses JSZip to build a zip folder for the images to be placed in for download.
This Smashing Magazine Article by Chidi Orji was a huge help in creating the Drop Zone implemented in Shrink-Ray
This project is fully open to useful contributions. If you would like to contribute, please read the short mission statement and follow the contributing guidelines as best you can.
Shrink-Ray was designed to be a client-side only tool that has no interest in placing cookies, tracking users, or moving the image files to a server for processing. When the tool loads in the browser it should have everything it needs to operate.
Please review the active issues on the main repo to see what might need done. There may be a bug fix or enhancement calling out to you!
- Fork the main project repo
- Make your own branch off of the
dev
branch - Try to keep commits small and commit messages meaningful as you work
- Do not make large, wide-scoped changes all at once. If you want to work on multiple features / bugs please make a branch / PR for each one individually
- Put in a PR from your Fork to the
dev
branch of the main project repo - In the PR write specific but brief details about what was done (e.g. "Added loading screen while images are processed; Loading screen now triggers when
processing === 'processing'
", etc..)
Have an idea for a new feature? Found a bug that you can't shake? Review the existing issues carefully and see if someone else got there first. If so, feel free to add your comment to the issue. If not, please add an issue with as much detail about the new feature / bug as you can.
- New Features -- How would / should it work? Are you willing/able to add this feature?
- Bugs -- What are you doing with the tool when it happens? How many files, what type, what operating system / device, etc...
- Up to 5 images can be added to the tool at a time
- Up to 5 'renditions' of each image can be made
- User can rename the file and every rendition takes this new name
- User can choose to resize and reduce file size of each rendition
- User can set the resize width
- Drop Zone changes to something indicating processing
- Finished files are zipped together for download
- User can reset the app without reloading the page
- About page - how the tools works
- About page - security of app (no cookies, no tracking, etc.)
- Link on page to contribute to this repo