Show HN: I built an online image editor using WebGL and CSS transforms
pqina.nl
pqina.nl
Can't help but to mention photopea; https://www.photopea.com/ Pretty impressive stuff made by one guy (it was initially). Basically a viable alternative to photoshop in a browser.
Sometimes it has network connectivity issues that prevents the app from working -- even if you download the "offline" app.
Like 2 days ago I couldn't add text to an image because the font list couldn't be loaded over the network due to the site having connectivity issues (and it doesn't work when offline). I had to resort to using gimp otherwise it would have delayed a video from being published.
Of all of the online or offline non-Flash image editors that try to replace Photoshop this one is my favorite. I hope it continues to get more developed. It lacks a lot of things but it's good enough for whipping together basic multi-layer layouts. Little things like being able to auto-center things vertically and horizontally by just dragging things around saves so much time. Also supporting Photoshop style layers for doing outlines and shadows speed things up.
Photopea is used by 120,000 people every. We rarely get reports about the site not loading correctly. We received one in June from a user from Malaysia. After some communication, we noticed that it worked well when he used his mobile data, and did not work only on WiFi, so probably the problem was with ISP.
If it happens again, just let us know!
Same process works for Photopea.
It's just photopea.com is down for me completely and that prevents the app from allowing you to use text since that depends on network loaded fonts.
It's actually still happening now every once in a while over 24 hours later. Like right now it took 2 minutes to access the program but it eventually loaded (this was due to the site having 100% packet loss at the time).
A few "is it down for me?" sites are reporting it down as well but it seems to be pretty spotty (sometimes they report up, sometimes down). I'm from the east US if it helps.
Is there any way you can have the program use local fonts when no network is detected? With the current behavior when there's no network you click the text tool and then it sits forever while the font selection window fails to load.
Could you write me an email to support@photopea.com, and help me investigate it?
Sadly, if websites knew about specific fonts in your computer, it would be considered "fingerprinting" :( so browsers do not let us access fonts.
I sent you an email with the trace results.
Edit: Never mind, I just realized this showcases Doka, a commercial component for image processing on the client so that you don't need to do the image processing in the server. Neat product as well.
It isn't open source, I do use income from Doka to finance my other open source products (like FilePond).
What I like:
* Image orientation (from EXIF) support
* I like how intuitive it is
* I will absolutely use some minor ideas in my product that I have not considered using.
What I dislike:
* I have uploaded 10000 x 6672 image (this one https://unsplash.com/photos/2S4FDh3AtGw) and I see that you scale it down. My experience shows that both Firefox and Chrome handles such large image without problems.
* Delay between action and reaction is too high for my taste. It feels unnecessary sluggish. UPDATE: tested with Chromium and it feels response. Only Firefox is sluggish.
* Flip does not center around zoom
Anyway, awesome work as I know some pain points you might have experienced :)
In my experience loading huge images like those and animating them is way too slow so the preview is limited to 1500x1500 pixels (I'm testing on a MacBook from 2014). I have some ideas to work around that. With the recent switch from CSS transforms to WebGL (for the image preview) I've added some additional options.
Good luck with your project!
Indeed progressively loading high res textures or tiling is a solution to this.
If you're feeling up to it you might want to file an issue with Mozilla on this.
BTW, does anyone know if there is a transpiler I could use to write an image processing/geometry algorithm/animation algorithm once and then target whatever output language/platform combo is desired? I really dislike JavaScript, I am way more productive in e.g. C++, but I need to rewrite my algorithms from C++ into Java/Swift/JavaScript/Python/CUDA/Kotlin, depending on a platform I address, and frankly I am getting tired of that. I just want to have a vanilla algorithmic code that is pretty transferable across platforms (desktop/web/iOS/Android) automatically transpiled to another language as I need (with platform-specific stuff done in a custom fashion of course); I don't care about performance optimizations for that (no time for that per platform anyway). WebAssembly is supposed to help but it's still not there yet.
Thanks for any advice!
https://www.figma.com/blog/building-a-professional-design-to...
https://www.figma.com/blog/webassembly-cut-figmas-load-time-...
- paste image 1 from clipboard on canvas
- paste image 2 from clipboard on canvas
- play with canvas overall size to adjust surface of ima1+ima2
- anotate (text, arrow, square)
- maybe some template background colors
- copy entire canvas to clipboard or download png
today i've came back to native powerpoint on my machine with a template that i have to clean on startup (no blank template possible :()
Can you help ?
- https://whimsical.com/a => not quick and dirty enought - https://screenzy.io/ => do not manage 2 images
I need to crop and annotate images all the time for work. I used to use Skitch when I had a Mac, but since moving over to Linux there seems to be a complete lack of simple tools to do basic editing and markup.
<SetDimensions>: Failed to create WebGL context: WebGL creation failed: * Refused to create native OpenGL context because of blacklist entry: FEATURE_FAILURE_GLXTEST_FAILED * Exhausted GL driver options.
This is my work laptop so I never bothered to setup Mesa/GL correctly .. probably the issue. The app should still do a check and report that WebGL isn't enable to the user.
Suggestion: in the aspect ratio constraint picker, change “free” to “unconstrained”, “variable”, or “fully variable” to avoid the confusion with “no charge”.
Multiple times this week I had to pad height or width to a trimmed image to look good on apps like Instagram, or Tinder, or a Facebook cover page.
I'm hooked on SVG's promise of semantic graphics, but every time I tried building something with SVG in a browser the performance just wasn't there, especially on low-end devices.
Filters of course work best in webgl. But the rest?
Also, do you use offscreencanvas in chrome?
I currently use WebGL for display preview and 2D canvas for generating the actual image.
I suspect you'll run into performance issues if you plan to animate the image in a 2D canvas context (like I do when rotating / flipping / etc.)
I've been planning to use offscreencanvas but haven't gotten around to it yet.
SVGs currently don't support hardware acceleration, so that's why I went with CSS transforms for other parts of the UI. The only things rendered with SVG at the moment are the markup, the UI icons, and the rotation control.
Browser: Brave on Ubuntu
It's a pretty normal and reasonable charge for that kind of scenario, in which the company licensing it would likely be charging/earning vastly more than this from their clients or end-users.