Hexcede

Saving Files more quickly (Suggestion)

Recommended Posts

Time and time again my progress is slowed down by the way png saving works in PDN. I often work in files with many layers. When I save my layered files to png (or other) files I always get the "flatten" popup as well as the save dialogue and then I must unflatten the image which massively mucks up my workflow. I don't know why this prompt exists still but it honestly annoys the hell out of me and it takes several seconds extra to save my images when it could be much quicker. This is especially bad when I am making small tweaks to my files in quick succession. I save my files a lot and a lot of the time I spend on image editing is taken up by the saving process.

An example of what I do which causes this problem:  Image design for a website. I save the image, and refresh the page to view the logo again. The reloading process only takes a second to do but to make tiny adjustments it can take up a huge amount of the time I spend.

I propose a two possible solutions to this.
1. Allow for users to automatically flatten images instead of asking every time. This is quick and you can just press ctrl+z after saving to unflatten the image.
2. Flatten the image, save it, and unflatten it. This would be the fastest option and I'd prefer it over the first one because of this.

Share this post


Link to post
Share on other sites

1) Ctrl+Shift+F

2) Ctrl+S

3) Ctrl+Z

 

My stopwatch clocks in at ~1.5 seconds. Some people are even faster with their keyboard.

You could even create a keyboard macro do it this for you.

  • Upvote 1

Share this post


Link to post
Share on other sites

  

14 hours ago, toe_head2001 said:

1) Ctrl+Shift+F

2) Ctrl+S

3) Ctrl+Z

 

My stopwatch clocks in at ~1.5 seconds. Some people are even faster with their keyboard.

You could even create a keyboard macro do it this for you.

 

It's particularly slow on my machine then. I measured ~5 seconds mostly due to the time it takes to save the file/unflatten/flatten. I am not on a low end PC either.

Here are my specs:

Windows 10 64 bit
3.25 GHz (Overclocked to 3.75 GHz) AMD Ryzen 3 2200G
4.0 GB of RAM (I know it's not that much haha)
Two identical SPCC SSDs (I get good write/read speeds usually and saving a small image file wouldn't take that long).
An NVIDIA GeForce GT 730 (This card isn't that terrible. I am able to get FPS in the 80s and 90s in a lot of modern 3D games, for example Minecraft. I don't have performance problems with most software/games.)
Paint.net version 4.2.6.

Additionally you are saving to a non layered file if you are using Ctrl+S otherwise it would overwrite my layered pdn file. Here is what I do:
Ctrl+S
Ctrl+Shift+S
Select png, press enter, press enter to override
Press enter to accept save options
Press enter to flatten
Press ctrl+z to unflatten.

For one thing, I shouldn't have to write a macro to save files. Secondly, I wouldn't be making a post if this wasn't effecting me my workflow. Trust me when I say that I sometimes spend more time waiting for PDN to save than actually working.

Edited by Hexcede

Share this post


Link to post
Share on other sites

It sounds like what you really want is a "File -> Export" or "File -> Save a Copy" feature. @Bruce Bowyer-Smyth was working on this earlier in the year but development stalled on some design/workflow questions, and I haven't given it enough attention or priority. It's a popular feature request, I should probably get back to it now that a lot of other work has been completed and it's not quite yet time for work on 4.3 to ramp up fully.

 

FWIW I've been looking into how to make general history operations a lot faster (which will make your save workflow faster). Right now it's bottlenecked by being synchronous ("not in the background"), by the CPU speed of NTFS compression, and then lastly by disk speed (almost all SSDs aren't bottlenecked at all here though). I can make it a lot faster, but it either takes a lot more disk space and disk activity, or a lot more memory. Right now I'm minimizing memory, minimizing disk space use and disk activity, but maximizing human waiting time and CPU time. It's no longer the right compromise.

 

If I had to pick 1 thing for you to invest in it would be RAM. Thankfully RAM is really cheap right now! You can grab a pair of 8GB DDR4-2666 sticks (16GB total) for about $50 USD: https://www.newegg.com/p/pl?N=100007611 600521523 600006072 600561671&Order=PRICE

  • Upvote 2

Share this post


Link to post
Share on other sites
18 hours ago, toe_head2001 said:

1) Ctrl+Shift+F

2) Ctrl+S

3) Ctrl+Z

 

My stopwatch clocks in at ~1.5 seconds. Some people are even faster with their keyboard.

You could even create a keyboard macro do it this for you.

 

Alternative keyboard combo without the need to flatten;

 

Ctrl + Shift + C (copy merged i.e. all visible layers)

Ctrl + Alt + V (paste into a new image)

Ctrl + S (save)

  • Like 1
  • Upvote 2

Share this post


Link to post
Share on other sites
6 hours ago, Rick Brewster said:

It sounds like what you really want is a "File -> Export" or "File -> Save a Copy" feature. @Bruce Bowyer-Smyth was working on this earlier in the year but development stalled on some design/workflow questions, and I haven't given it enough attention or priority. It's a popular feature request, I should probably get back to it now that a lot of other work has been completed and it's not quite yet time for work on 4.3 to ramp up fully.

 

FWIW I've been looking into how to make general history operations a lot faster (which will make your save workflow faster). Right now it's bottlenecked by being synchronous ("not in the background"), by the CPU speed of NTFS compression, and then lastly by disk speed (almost all SSDs aren't bottlenecked at all here though). I can make it a lot faster, but it either takes a lot more disk space and disk activity, or a lot more memory. Right now I'm minimizing memory, minimizing disk space use and disk activity, but maximizing human waiting time and CPU time. It's no longer the right compromise.

 

If I had to pick 1 thing for you to invest in it would be RAM. Thankfully RAM is really cheap right now! You can grab a pair of 8GB DDR4-2666 sticks (16GB total) for about $50 USD: https://www.newegg.com/p/pl?N=100007611 600521523 600006072 600561671&Order=PRICE

Thank you for the information! Some kind of export/save a copy feature definitely does sound like a good alternative. I've struggled before with synchronous code and it's especially annoying to handle a bunch of threads with little interaction. (That's one reason why I've switched to node.js for a lot of my web design and scripting because of Promises). I'm not sure how or if you've even decided on how this would work, but at least for my case I tend to keep my pdn and png files the same name so being able to quickly save a pdn file to a png through the use of a keybind would be an awesome improvement to my workflow.

 

 

3 hours ago, Ego Eram Reputo said:

 

Alternative keyboard combo without the need to flatten;

 

Ctrl + Shift + C (copy merged i.e. all visible layers)

Ctrl + Alt + V (paste into a new image)

Ctrl + S (save)

This is actually a really good tip and it'll definitely help out! I hadn't thought much of the paste to new image action when I saw it but now that you point this out it definitely does seem like it can be useful. Thank you for sharing this.

Edited by Hexcede

Share this post


Link to post
Share on other sites

Another neat feature of Ctrl + Shift + C is that it uses the entire canvas if no selection is active. Hence no need to pre-empt the combo with Ctrl + A (select all) ;)

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.