ESCONDA UMA IMAGEM DENTRO DE OUTRA NO X
Solte a imagem que você quer revelar — ou clique para procurar
JPEG, PNG, WebP, GIF, BMP · arte de alto contraste funciona melhor
The tap-and-hold reveal is the rare internet trick that is genuinely clever rather than just loud. A picture scrolls past in the timeline looking like a faint sketch, an empty card, or a pair of eyes floating in white space. Someone presses and holds it, the full-resolution version loads, and a completely different image appears. Nothing is animated, nothing is embedded, and no app is involved. It is one ordinary PNG file exploiting the fact that X renders it two different ways.
This tool builds that file for you. Drop in the picture you want to hide, choose what the timeline should show instead, and download a transparent PNG ready to post. Everything runs in your browser using the Canvas API — your images are never uploaded, there is no account to create, and there is no watermark on the output.
X handles the same uploaded PNG in two different ways depending on where it is being displayed. In the timeline, it generates a compressed preview and flattens any transparency onto a white background. When a viewer opens the post and presses and holds to load the full-resolution version, X serves the original PNG with its alpha channel intact, and the dark background of the media viewer shows through wherever the image is transparent.
That gives you two rendering contexts for one file: one composited over white, one composited over black. A pixel with colour C and alpha a displayed over a background B comes out as C·a + B·(1−a). If you decide in advance what you want that pixel to look like over white and what you want it to look like over black, you have two equations and two unknowns, and you can solve for the exact colour and alpha value that satisfies both. Do that for every pixel in the image and you have encoded two pictures into one file.
There is one catch, and it is the reason every tap-and-hold image looks slightly washed out. Alpha is a single number shared by all three colour channels, and the value that appears over white must always be brighter than the value that appears over black. That forces the timeline layer into the upper half of the brightness range and the reveal into the lower half. You cannot have a brilliant white reveal and a pitch-black teaser — the maths does not allow it. The Separation control in this tool is exactly that trade-off made adjustable: a narrower split between the two bands keeps more contrast in both images but lets them bleed into each other, while a wider split hides the reveal cleanly at the cost of flatter colour.
Smooth is the default. It solves a colour and alpha value for every pixel independently and preserves full colour in both layers. Because a single alpha value has to serve three colour channels, a small amount of cross-talk appears when the two layers disagree strongly on hue — a saturated reveal can tint the teaser slightly. The tool distributes that error using the midpoint of the most and least demanding channel, which measurably halves the average error compared with the naive approach and roughly halves the worst case as well.
Checkerboard takes a completely different approach. Instead of asking every pixel to serve both views, it splits the pixels into two interleaved sets. One set is made of white pixels whose alpha carries the reveal — they composite to pure white in the timeline and are therefore invisible there, but over black they become the hidden image. The other set is made of black pixels whose alpha carries the teaser — invisible over black, fully present over white. The result has mathematically zero ghosting between the two views. The trade-off is that the output is monochrome and effective resolution is halved, since each view only uses half the pixels. For bold line art and high-contrast illustration this is often the better-looking choice.
There is also a monochrome toggle for the Smooth engine. Converting both layers to greyscale removes the channel disagreement entirely, and the encoding becomes accurate to within one part in 255 — effectively pixel-perfect. If your artwork reads well in black and white, this gives the cleanest possible result while keeping full resolution.
The mask brush in Advanced mode is what separates a decent tap-and-hold image from a great one. It lets you override the teaser layer in specific regions rather than accepting whatever the preset generated.
Paint with Show in timeline and the teaser in that area follows the reveal image instead of hiding it. This is how the floating-eyes look is made: hide the entire face, then paint just the eyes so they remain visible against the near-white card. The effect is unsettling in exactly the right way, and it gives people a reason to press and hold.
Paint with Hide harder and the teaser in that area is pushed toward blank, erasing detail the preset left behind. This is useful when a preset leaks part of the punchline — a recognisable logo, a face, a caption you wanted to keep secret until the reveal.
Because the technique compresses each layer into half the available brightness range, images with strong shapes and high contrast survive far better than subtle ones.
A quick test: if the picture still reads clearly when you squint at it, or when you view it as a small thumbnail in black and white, it will survive the encoding. If it depends on subtle tonal shifts, it will not.
More tap-and-hold images fail at the upload stage than at the encoding stage. The whole trick rests on the alpha channel reaching X intact, and there are several ways to accidentally destroy it.
The most common failure is posting from the X mobile app, which re-encodes uploads to JPEG. JPEG has no alpha channel at all, so the transparency is discarded and the hidden layer disappears — leaving only the washed-out teaser. Post from a desktop browser at x.com instead.
The second most common failure is re-saving the file. Opening the exported PNG in an image editor, a preview app, or a phone gallery and saving it again will often flatten the transparency or convert the format. Screenshotting it always destroys the effect, because a screenshot captures the composited result rather than the file. Upload the exact file the tool produced, unchanged.
The third is the file format, and it is the one almost nobody gets right. X leaves indexed PNG-8 uploads alone, but a full-colour RGBA PNG of around 900 pixels or more is a candidate for re-encoding to JPEG — and once that happens the alpha channel is gone and the hidden image is gone with it. This tool exports indexed PNG-8 by default for exactly that reason. The side benefit is size: the same 1400-pixel image lands near 200 KB as PNG-8 instead of 1.3 MB as PNG-32, and on the checkerboard engine the indexed file is pixel-for-pixel identical to the full-colour one. You can switch to PNG-32 under Advanced if you want maximum colour depth, but keep the longest edge modest if you do.
The fourth is raw file size. Above roughly 5 MB, X re-encodes uploads to JPEG regardless of format. PNG-8 export makes this hard to hit, but the size readout in the tool shows the true exported size and turns amber as you approach the threshold and red past it. If you are over, reduce the longest edge or switch to monochrome, which compresses considerably better.
Finally, tell people the image is interactive. A caption like "tap and hold 👀" or "press and hold to reveal" converts far better than posting the image alone, because the effect is invisible to anyone who simply scrolls past. Once posted, test it yourself: open the post on a phone, go full screen, then long-press and choose "Load in 4K" on iOS or the equivalent high-resolution option on Android.
The technique needs a platform that shows a white-flattened preview and a transparency-preserving full-size view. That combination is not universal.
X is the reliable one, which is why the trend lives there. Some Discord, Telegram, and Slack clients produce a comparable split depending on the user's theme, though the results vary by client and version. Instagram, Facebook, and WhatsApp strip transparency during upload, so the effect will not survive on any of them. The Advanced tab lets you change the assumed timeline matte and reveal background if you want to target a platform with different rendering — but for X, the white and black defaults are correct and should be left alone.
The same trick travels under a lot of names, which is part of why it is hard to search for. On English-speaking X it is usually called a tap and hold image, a press and hold image, or simply tap to reveal. Android users tend to say long press, because that is what the gesture is called on the platform. Desktop users often never discover it at all, since the reveal depends on opening the full-resolution file. All of these describe one technique: a single transparent PNG that looks like one picture in the timeline and another when it is opened.
The idea is older than the current wave. It grew out of the Japanese kakushie tradition — 隠し絵, written カクシエ in katakana, literally “hidden picture” — a genre of illustration built around an image concealed inside another image. The digital version spread through the Japanese AI-art community on X before it crossed over, which is why you will still see posts tagged 隠し絵 or カクシエ alongside the English captions, and why some generators market themselves as kakushie makers. If you are searching for examples rather than tools, those Japanese tags are the richer seam by a wide margin.
The current surge began when a series of angel-themed illustrations by Japanese AI artist @sarasara_aiart circulated widely, and within days thousands of accounts were posting their own: fantasy landscapes, anime characters, portraits, and surreal scenes that resolve into something else entirely on a long press. If you are arriving because of that trend, the important thing to understand is that the effect is not an AI feature and has nothing to do with how the image was generated. It is a property of the file, and you can apply it to a photograph just as easily as to an illustration.
This is the single most common reason a working image appears broken, and it is worth understanding before you post. The reveal is not painted into the file — it emerges from whatever sits behind the transparent pixels. In the timeline, X flattens your PNG onto white, so only the teaser layer is visible. When the image is opened, X keeps the alpha channel and the viewer's own interface shows through the transparent areas.
That means the reveal depends on the person looking at it. A viewer in dark mode gets a near-black backdrop and sees the hidden image exactly as you intended. A viewer in light mode gets a white or near-white backdrop that is close to the timeline matte, so the hidden layer stays faint and the effect can fall flat entirely. Nothing is wrong with your file; you are simply seeing what a light-mode viewer sees. The tool assumes a dark backdrop by default, because that is the case the trend is built around — but if you are testing and the reveal looks weak, check your own theme before you start changing sliders. It is also why a caption helps: telling people to switch to dark mode, or simply to tap and hold, converts far better than hoping they work it out.
If you specifically want to target light-mode viewers, the Advanced tab lets you change the assumed reveal background from black to white and re-solve the encoding for that case. The contrast you can achieve is lower, because the two backgrounds are then much closer together, but it does work.
X shows two different renderings of the same PNG. In the timeline it flattens the image onto a white background, which hides everything except the teaser layer. When someone opens the post and presses and holds to load the full-resolution version, X serves the original PNG with its alpha channel intact, and the viewer's dark background shows through the transparent pixels to reveal the hidden picture. This tool solves the per-pixel colour and alpha values that make both renderings land on the images you chose.
Almost always because the alpha channel was discarded somewhere along the way. The X mobile app re-encodes uploads to JPEG, which has no transparency, so post from a desktop browser at x.com instead. Format matters just as much: X leaves indexed PNG-8 alone, which is why this tool exports PNG-8 by default, whereas a full-colour RGBA PNG at roughly 900 pixels or more can be re-encoded to JPEG. Files above roughly 5 MB are re-encoded regardless of format. Never open the exported PNG in another editor and re-save it, and never screenshot it — upload the exact file the tool gives you.
It is a mathematical limit of the technique rather than a flaw in the tool. A single pixel has to composite to a bright value over white and a dark value over black at the same time, which confines the teaser to the upper brightness band and the reveal to the lower one. The Separation slider controls where that split sits: less separation gives punchier colour but more ghosting between the two views, more separation gives a cleaner hide but flatter images. Every tap-and-hold image ever made has this constraint.
High-contrast artwork with a clear subject — line art, bold illustration, silhouettes, and AI art with strong shapes. Busy photographs with fine detail and low contrast lose the most in the encoding. Monochrome sources are encoded pixel-perfectly, so if a picture reads well in black and white it will survive the process almost untouched. A good test is to squint at the image: if it still reads, it will work.
No. Every step runs locally in your browser using the Canvas API. Your pictures are never transmitted anywhere, there is no account to create, and nothing is stored after you close the tab. You can disconnect from the internet after the page loads and the tool will keep working for that session.
The effect needs a platform that shows a white-flattened preview and a transparency-preserving full view. X is the reliable one today. Some Discord, Telegram, and Slack clients produce a similar light-versus-dark split depending on the theme in use. Instagram, Facebook, and WhatsApp strip transparency on upload, so the trick will not survive there. The Advanced tab lets you retarget the assumed backgrounds if you want to experiment with another platform.
PNG-8, which is the default. X leaves indexed PNG-8 uploads alone, while a full-colour RGBA PNG of roughly 900 pixels or more is a candidate for re-encoding to JPEG — and JPEG has no alpha channel, so the hidden image is destroyed. PNG-8 is also dramatically smaller: a 1400-pixel export is around 200 KB instead of 1.3 MB. On the checkerboard engine the indexed file is pixel-for-pixel identical to the full-colour version, because that encoding uses fewer than 256 distinct values in the first place. On the smooth engine the palette is capped at 256 entries, so there is a slight colour approximation — but the alpha channel is quantised with priority, and the measured strength of the reveal is unchanged. Pick PNG-32 under Advanced only if you want maximum colour depth and will keep the image small.
Smooth solves a colour and alpha value for every pixel and keeps full colour, with a small amount of cross-talk between the two views when the layers disagree on hue. Checkerboard splits the pixels into two interleaved sets, one carrying the teaser and one carrying the reveal, which gives mathematically zero ghosting but is monochrome and halves effective resolution. Use Smooth for colour art and photographs, Checkerboard when you want the cleanest possible hide on bold, graphic work.
Between about 1200 and 2048 pixels on the long edge is the sweet spot — large enough that X keeps the detail when someone loads the full-resolution version. Because the tool exports indexed PNG-8 by default, size is no longer what breaks the effect: X leaves PNG-8 alone, and a 1400-pixel export lands around 200 KB, nowhere near the 5 MB threshold. The old advice to stay small applies only if you switch to PNG-32 under Advanced, where a full-colour PNG at roughly 900 pixels or more risks being re-encoded to JPEG — which strips the alpha channel and kills the reveal. The tool shows the exact exported file size either way.
Yes. Switch to the Advanced tab and set the teaser source to "Upload a separate image". This is the two-image mode: one picture shows in the timeline, a completely unrelated one appears on tap and hold. Bear in mind that two unrelated colour images disagree more often than a teaser derived from the reveal, so expect a little more cross-talk — the monochrome toggle or the Checkerboard engine will clean it up if it bothers you.
No watermark, no limit, no signup, and no cost. The tool runs entirely in your browser, so there is no server capacity to meter. Make as many as you like.