February 27, 2015

Photopea 1.1

New release of Photopea is out! It has 24 163 lines of code. Play with it at the main site.

New features

  • New and correct Hue - Saturation - Lightness editor
  • Bevel and Emboss style
  • Contour editor (you can use your own .SHC contours)
  • 15% faster rendering of layer styles
  • Caching layer styles (smoother workflow)
  • Blending layers as RGBA format (20% faster)

Bevel and Emboss

When I was implementing first layer styles (year and a half ago), Bevel and Emboss seemed too complicated and I didn't know how exactly each parameter works. I decided not to do anything else (with PP), until I solve this. It took me one Friday + weekend to figure it out.

The effect does not look 100% the same, as in Adobe Photoshop, but it is very similar. Computation is quite hard, it may take about 150 ms for 500x500px layer. Most of this time PP is computing distance transform.

Last two features

Last two features improve the "smoothness" of Photopea dramatically. Previously, when you edited a project (e.g. moved a layer or entered a new character into text field), PP used to redraw the whole project, recompute each drop shadow or stroke of each layer, and blend it all together. Starting from this version, layer style is re-rendered ony when it is changed, or layers pixels are changed (or global angle is changed etc.). Working with Photopea is much smoother now.

But smoothness was not the main reason of these two features. Thanks to "thrifty" rendering of styles and keeping pixels in RGBA format (instead of each channel in separate array), PP is ready to move to WebGL-accelerated rendering of layers. Each layer and layer style would have its copy in WebGL memory. Composing layers would be blazing fast, allowing you to smoothly edit large projects with lots of layers. Or, at least, that's what I expect :)