Jump to content

Image content degrades over time from edits; Pixel Artists Beware!


Recommended Posts

I've been piecing together a large image of the first level of the Sierra/GameArts video game "Thexder" from many screenshots. I open each screenshot PNG in Photo, crop off the bottom game UI, copy the image, close it, and paste that copied content into my main document. As I paste these shots into my primary document, the sharp solid colors in the image start to degrade at their edges, in ways you would see if you resampled an image to scale it. I am NOT scaling anything. Sometimes it's REALLY bad upon pasting a new chunk of image into the main document. In THIS specific case, it seems that undoing the paste, zooming WAY out in the document, and pasting again results in a correct paste (this time it pastes in at the top left corner of my document, where as before it pasted where I was working).

Moving layers around shows the color shifts happening as part of rendering the layers on screen, but merging down, etc, will eventually start to show that the edges of hard color borders are "smudged" with slight color shifts.

Anyone who plans to use Affinity Photo to create pixel art should beware. This could be especially problematic when changing between set palettes and full-color. It also has me wondering how much degradation is going on all the time. How much blur is Affinity Photo adding to everyone's images while they're working on them, unsuspectingly? I only noticed this because of working at the pixel level, zoomed in at them, and knowing the explicit limit of 16-colors in these screenshots (the game only shows 16 colors from an MCGA palette). 

My main document is a regular Affinity Photo document. I am importing PNG images from Boxer (DOSBox shell in Mac OS) which are 320x200.

I've attached an image showing what's happening. I have zoomed way in so that you can see the individual pixels (very important with pixel art). The left side of the image shows sharper content while the right side has areas that have been through layer movement and merging down. One edge even turned partially transparent.

EDIT: It seems to be getting progressively worse as I extend my canvas to the right and downward, as the older content to the upper left does not seem degraded.

example of image degredation.png

Edited by dysamoria
More info

• iMac 12,2, 16GB RAM, with Mac OS 10.13.6 (17G14033), Wacom Intuos3 9x12
• iPad Pro 12.9" 1st gen & Apple Pencil

http://dysamoria.com

Link to post
Share on other sites
  • Moderators

Hi dysamoria,
When you are copying /paste content from the original screenshots, it's possible you are pasting them at non-integer values (not pixel aligned) thus blurring the pasted data. Please check if the pasted data is indeed on integer values (X,Y coordinates and width height) in the Transform panel. To see more decimal places in the Transform panel go to Affinity Photo Preferences, User Interface section and increase the Pixels values to two or three in the Decimal Places for Units Types section. Then select the pasted content (layers) and check their values in the Transform panel - if the values aren't all integer then you've found why the pixels appears blurry. To prevent this from happening make sure you enable Force Pixel Alignment in the main toolbar (keep the next button on the right Move By Whole Pixels disabled), Then if when pasting data the content is not pixel aligned (on integer values), drag it just a bit after pasting to force it to get pixel aligned.

Link to post
Share on other sites

Will “Force Pixel Alignment” stay set permanently? I’ve never noticed that setting. I’m away from my computer at the moment but appreciate the response and will check for this later.

What is the utility of things NOT being pixel-aligned and why is that the default behavior?

EDIT: This does explain why a paste that originates at the top-left corner of the document doesn’t suffer this problem. It does NOT explain why 1 out of 6 pastes looks absolutely horrible.

i consider this a bug. Even if there is utility behind sub-pixel positioning, doing it transparently to the user, and automatically, results in unexpected and undesired outcomes. There’s a lot of this in Affinity Photo, like the PITA scenario of trying to cut content in layers when Affinity Photo has decided they’re not rasterized pixel layers for some reason, depending on where the layer came from (inconsistency is bad).

Edited by dysamoria
Further comment

• iMac 12,2, 16GB RAM, with Mac OS 10.13.6 (17G14033), Wacom Intuos3 9x12
• iPad Pro 12.9" 1st gen & Apple Pencil

http://dysamoria.com

Link to post
Share on other sites

I just checked. "Force Pixel Alignment" has been on the whole time. I never disabled it. What else is going on?

 

EDIT: Oh, you said to DISable "Move By Whole Pixels". That is also on by default, and it sounds like it's what I want. Why would it not be?

• iMac 12,2, 16GB RAM, with Mac OS 10.13.6 (17G14033), Wacom Intuos3 9x12
• iPad Pro 12.9" 1st gen & Apple Pencil

http://dysamoria.com

Link to post
Share on other sites
  • Moderators

Hi dysamoria,
Affinity Photo is tightly integrated with the rest of the suite and shares a lot of code with its apps as well as the format, so it also has to cope with any tasks/areas that require much more precision than just pixels/pixel grid. Depending on what you are doing some tasks may require that precision, while others don't and so there's options to help control its behaviour. If you are working with pixel data, having Force Pixel Alignment enabled helps to ensure any transforms you perform (move, scale, stretch etc) are pixel aligned whenever possible: for example, if you scale an image keeping its ratio locked you won't be able to keep integer values for both width and height mathematically, apart from a few specific cases. In this case currently we don't distort the image a bit to force integer values in both dimensions and leave this decision to the user.

Move By Whole Pixels means what it says on the tin - if you move an object that's already on integer values to another position it will end up keeping integer values since it is only allowed to move whole pixels. If the original object isn't on integer values, it will keep the fractional values in the end of the movement since - again - it is only allowed to be moved whole pixels. This is useful for certain tasks, mainly when working at pixel level (on a small icon set for example) where you may have adjusted/moved some vector paths/nodes off the pixel grid to better control the antialiasing on certain areas. When moving these paths you most likely want to keep the fractional values intact, otherwise the pixel alignment would screw up the carefully adjusted antialiasing.

Link to post
Share on other sites

Thank you very much for the detailed explanation! 😊

Just so I understand fully: these two settings can have undesirable interactions. If I want everything forced to stay within pixel alignment, I need to disable “Move by pixel” so any fractional pixel values aren’t perpetuated?

I understand the suite of tools are sharing code & design. That’s sensible. Maybe Affinity Photo should be defaulted to what’s optimal to not distort pixel data. Having these settings, the use of which sounds counter-intuitive, and which users aren’t expecting to deal with, seems a user-directed burden and a workaround for Affinity Photo design choices, rather than a design for expected use.

• iMac 12,2, 16GB RAM, with Mac OS 10.13.6 (17G14033), Wacom Intuos3 9x12
• iPad Pro 12.9" 1st gen & Apple Pencil

http://dysamoria.com

Link to post
Share on other sites
  • Moderators

Exactly, if Force Pixel Alignment is enabled and Move By Whole Pixels disabled - all objects no matter if they were originally on integer or fractional values should end up pixel aligned. I wouldn't say they have undesirable interactions, you just need to learn what they do, to use them properly. In the end they offer more control for those who need it.

Link to post
Share on other sites

Thank you very much for the info. I do think it’s counter-intuitive. The two settings are named such that they sound like the same thing. I really do appreciate your help and all the explanations.

😊

• iMac 12,2, 16GB RAM, with Mac OS 10.13.6 (17G14033), Wacom Intuos3 9x12
• iPad Pro 12.9" 1st gen & Apple Pencil

http://dysamoria.com

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.
Note: Your post will require moderator approval before it will be visible.

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.

Loading...
×
×
  • Create New...

Important Information

Please note there is currently a delay in replying to some post. See pinned thread in the Questions forum. These are the Terms of Use you will be asked to agree to if you join the forum. | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.