1

Is it possible to design an image that looks completely (or at least very) different when resized to a given (fixed) size?

This would be similar to the technique in Image that looks different on black background and on white, however using image resizing algorithms rather than gamma correction.

The idea would be, for instance, to supply a profile picture to a website which shows it in two different sizes, and have the viewers see starkingly different pictures in both cases. For instance, the word "YES" when seen in full-size, but "NO" when resized to a thumbnail.

This would of course depend on the resizing algorithm and on the source and target sizes, but for a given website (e.g. Facebook), these should remain (fairly) constant.

1

2 Answers 2

5

Yes, this is possible. For example consider the following image which should show a yes at its native solution. (This may not work if you suffer from red–green colour blindness.)

example

Here are the results of rescaling this image by a factor ½ with two different rescaling algorithms (cubic and Lanczos 3). Only a faint outline of the yes is still visible:

rescaled example 1 rescaled example 2

You may also see the effect by zooming with your browser.

Now, how does this work? Here is a zoom-in (without anti-aliasing and such) of the image:

zoom of example

As you can see, the background is a red–green pixel chequerboard, while the text is in some brown. If the image is shrunk, the resizing algorithm roughly has to turn two red and two green pixels into one. As the resizing algorithm cannot possibly tell that the alternation of pixels is essential here, it chooses to blend them into an intermediate colour – which is exactly the brown I used to write yes.

2

Based on @wrzlprmft's idea, but with black and white, I managed to get an image that goes a bit further, but it's still not ideal: the edges of the "NO" are still visible when rescaled down. But the "yes" is completely invisible in my screen when at 100%, while the "NO" is barely visible when reduced to 50%. When larger than 100%, both "yes" and "no" are partially visible.

yes/no image at 100%

Here's what my Firefox shows at 50%:

yes/no image at 50%

And at 150%:

yes/no image at 150%

It is composed of a grid of alternating black and white pixels as bottom layer; the middle layer is the "NO", written using a 50% transparent layer of #7e7e7e pixels, and the upper layer is the "yes", written using alternating black pixels (via Gimp's Filter - Distort - Erase every other row on both Rows and Columns). Note that moving the "yes" an odd number of pixels will make it visible. Also, unless it sits atop the "NO" pixels, it is not visible when scaled down.

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.