[GH-ISSUE #562] GIF feature: Paint over "changed" pixels #461

Open
opened 2026-02-26 09:31:30 +03:00 by kerem · 2 comments
Owner

Originally created by @TheJaredWilcurt on GitHub (Dec 5, 2019).
Original GitHub issue: https://github.com/NickeManarin/ScreenToGif/issues/562

It would be nice if you could have a view where all "unchanged" pixels are replaced with bright green or red in a frame. This would spotlight any pixel data that is being stored as a "change" that shouldn't be. Then you could paint over these pixels with the same green or red color. Effectively deleting the "change" in the current frame compared to the prior frame.

An example of this being done can be seen in GIF Construction Set Professional. Although the workflow is horrendous, as the application was originally designed for Windows 95, and doesn't have a great UX. It allows editing of a frame by opening it in MS Paint. Which works, but the app won't update until you close MS Paint. Paint doesn't retain your settings, so if you have a lot of frames to clean up, you'll be manually selecting the eye dropper to set the correct green, then changing the fill/stroke values of the rectangle tool at the start of every frame edit.

wtf

In the above frame the only change was from where the mouse was in the previous frame to where it is in this frame. The rest of the noise is MPEG artifacts (cleaning up someone else's screen recording that was saved as an MP4, converted to GIF, MP4 was deleted, and the GIF sent to me). So far gotten it from 43MB down to under 2MB. Chipping away.

Originally created by @TheJaredWilcurt on GitHub (Dec 5, 2019). Original GitHub issue: https://github.com/NickeManarin/ScreenToGif/issues/562 It would be nice if you could have a view where all "unchanged" pixels are replaced with bright green or red in a frame. This would spotlight any pixel data that is being stored as a "change" that shouldn't be. Then you could paint over these pixels with the same green or red color. Effectively deleting the "change" in the current frame compared to the prior frame. An example of this being done can be seen in GIF Construction Set Professional. Although the workflow is horrendous, as the application was originally designed for Windows 95, and doesn't have a great UX. It allows editing of a frame by opening it in MS Paint. Which works, but the app won't update until you close MS Paint. Paint doesn't retain your settings, so if you have a lot of frames to clean up, you'll be manually selecting the eye dropper to set the correct green, then changing the fill/stroke values of the rectangle tool at the start of every frame edit. ![wtf](https://user-images.githubusercontent.com/4629794/70194500-9bbbb480-16d0-11ea-9e37-7be91ec3a64e.png) In the above frame the only change was from where the mouse was in the previous frame to where it is in this frame. The rest of the noise is MPEG artifacts (cleaning up someone else's screen recording that was saved as an MP4, converted to GIF, MP4 was deleted, and the GIF sent to me). So far gotten it from 43MB down to under 2MB. Chipping away.
Author
Owner

@NickeManarin commented on GitHub (Dec 5, 2019):

Right now, this detection of changed pixels happens right before the encoding, after the user presses to save the file.
When editing the animation, you'll see the full frames, not only the pixels that changed.

I'm not sure how to add this functionality to the app...

<!-- gh-comment-id:561944501 --> @NickeManarin commented on GitHub (Dec 5, 2019): Right now, this detection of changed pixels happens right before the encoding, after the user presses to save the file. When editing the animation, you'll see the full frames, not only the pixels that changed. I'm not sure how to add this functionality to the app...
Author
Owner

@TheJaredWilcurt commented on GitHub (Dec 5, 2019):

From what I can see, the way GIF Construction Set does it, is they load in the GIF data one frame at a time and show just the pixel data that is stored for the frame. Then they have a tool in the menu bar to "rebuild" where it updated each frame to show the full data.

So maybe the same idea could be done here, but it would save a temp version of your project to a file, then load in just the frame data to display the "only show changes" view?

Then re-build it before saving?

<!-- gh-comment-id:562255548 --> @TheJaredWilcurt commented on GitHub (Dec 5, 2019): From what I can see, the way GIF Construction Set does it, is they load in the GIF data one frame at a time and show just the pixel data that is stored for the frame. Then they have a tool in the menu bar to "rebuild" where it updated each frame to show the full data. So maybe the same idea could be done here, but it would save a temp version of your project to a file, then load in just the frame data to display the "only show changes" view? Then re-build it before saving?
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ScreenToGif#461
No description provided.