5

I've inherited a large set of button icons at work, which I'd like to use in another project, but with a different button background. The trouble is that the original files have been lost in history, so all I have is the flat PNGs.

What I've managed to do is extract a blank button background. Looking at this from a developer point of view, what I'd like to do is "diff" two images (or two layers on a same image), and turn the pixels which are identical in both images transparent.

For example, out of these two pictures I would like a transparent image/layer with just the spade on it:

Icon Background

I realize that the result wouldn't be perfect, especially around blurred edges on the icon, but it would get me a long way. I have about 50 of these, in three button states = 150 images, so bonus for any method which would allow me to play with tolerance.

I'm mainly using Paint.NET, but any free piece software would do. I don't have access to photoshop.

EDIT

I suddenly remembered that I'm actually a software developer and not a graphic designer, so I wrote a program to do this in batch. The C# source code can be found at: http://pastebin.com/mKmtdHT4

Problem solved for me, but I'll leave this open for some time in case somebody has a more generally applicable solution to pass on to other people who have the same problem.

1 Answer 1

1

This is relatively easy with ImageMagick's compare:

$ compare -compose src Background.png Icon.png diff.png

With your files, this would result:

image-diff


Although, convert gives you a broader control on the output, e.g. the threshold. Here a B&W version is created, which is more usable for masking, and then the spade is extracted using the created mask:

$ convert Background.png Icon.png -compose difference -composite \ 
          -separate -background black -compose plus -flatten \
          -threshold 0 diff.png
$ convert Icon.png diff.png -compose CopyOpacity -composite spade.png

maskspade

1
  • This would also be the approach in almost all image manipulation applications that use layers, layer modes and have the ability to create masks from that. Commented May 19, 2015 at 23:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.