fauxfaux / quad-image Goto Github PK
View Code? Open in Web Editor NEWA minimal Rust image paste service
License: Other
A minimal Rust image paste service
License: Other
I quickly pushed the crate to reserve the name. Review:
categories
)RUSTFLAGS
)JPEG has a notoriously janky way of recording rotation. Currently, we strip it out, leading to rotated images.
Ideally, I would like to apply this rotation metadata to the image directly, and write out a file without metadata, but which looked correct.
Alternatively, we could preserve just this metadata. This would only be okay if it was correctly parsed, and re-serialised correctly from simple types (a single Option<u8>
?); no copying.
Should we ship the built-in statics server?
If so, should it bundle the statics?
In release mode only?
The image library we're using supports the GIF format, but doesn't automatically round-trip multi-image GIFs (videos), so we currently don't bother, we transcode them to PNG, which is superior in every way for single-frame images.
If an actual multi-frame video GIF arrives, we should re-present it as a (cleaned) GIF.
Here are a few thoughts/bugs/feature requests regarding galleries:
/api/gallery
call to fail. Missing files could maybe be gracefully handled, which would correct this.targetGallery
, which is what I want to do once I've uploaded a batch of images to some gallery.Hopefully you can make something of that, and thank you for writing this lovely piece of software! :-)
This causes all of the global JS to fail to execute. As of the fix for #3, at least you get a "NO JS" warning.
Currently, at least Chrome report pastes of JPEGs in ways that make us thing they are PNGs.
The user gets to wait ages for this to upload, then the server tries to compress it as a PNG, decides it is too big, and re-compresess it as a JPEG. What a waste.
Can we detect the paste of JPEGs?
It'd be nice to drop all the unix-specific bits. It's probably just "use path/url apis" (which is a good idea), and change the permissions code to not run.
Hi, this project is very cool - thanks for creating it. I recently ditched IRC Cloud for The Lounge and was looking for something to replace the image sharing feature and this fits perfectly. But I've had an issue that I haven't been able to understand or fix when running this in docker. I've tried using the rust base image, alpine, and ubuntu bionic. It gets to this line and then takes 2+ minutes to finish writing 400kb to the temp file. I was hoping you had a guess as to why. It works without this issue running outside of a docker container.
If you visit quad-image in a browser with no state (e.g. an incognito session), it will render a full screen upload with no gallery history. If you refresh, you will get an empty gallery history.
Seems like this should be consistent, one way or the other.
-- @williamparry.
It would be useful to return thumbnails for the current main UI, and for any gallery tool, and for any possible mobile app. Re-serving someone the image they just uploaded is a huge waste of mobile bandwidth, but a preview would be nice.
I propose generating :thumb
files, e.g. /e/NCxAn3UCHg.jpg:thumb
, of a fixed size and low quality.
320x160, with some low quality JPEG mode?
What about letterboxing, borders, etc.? PNG with transparent letterboxes? 320x160 noise.png is 120kB, which feels like too much.
We need a way to back-fill this for missing files. On start, walk the directory, and fill anything that's missing?
If the user selects an invalid file, nothing happens. An error should be displayed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.