DEV Community

Cover image for Free Online Image Tools Are Not Free. Here Are the Receipts.
Akhouri Anmol Kumar
Akhouri Anmol Kumar

Posted on

Free Online Image Tools Are Not Free. Here Are the Receipts.

Description: Resolution caps, "we delete it after 2 hours (trust us)", paywalled buttons, and why your browser can now do all of this by itself.

You know the ritual.

You need one transparent PNG of a product photo. Five minutes, tops. You google
"remove background online", click the first result, upload, and watch the progress bar
do its little dance.

The preview? Gorgeous. Clean edges. You hit download.

And you get a postage stamp. πŸ–ΌοΈ

Let's talk about why "free online image tools" is mostly a vibe, not a price tag, and
about the genuinely interesting engineering reason this whole category is overdue for a
rewrite.

🧾 Receipts policy: every limit I quote below comes from the tool's own
documentation or pricing page. No hot takes without sources.


πŸ’€ Sin #1: The bait-and-downscale

remove.bg is the poster child, and to their credit they say it out loud in their
own FAQ: the free website version is for low-resolution images, up to 0.25 megapixels.
Full resolution (up to 50 MP) lives behind premium plans and credits.

Do the math with me:

0.25 MP  =  250,000 pixels  β‰ˆ  625 Γ— 400
Enter fullscreen mode Exit fullscreen mode

A modern phone photo is 12 MP. That's roughly 48Γ— more pixels than what the
free tier hands back. The preview on screen looks sharp because your screen is small.
The file is where the shrinkage happens.

Fair play: servers cost money, GPUs cost more, and freemium is a legit business
model. But "free" and "free at thumbnail size" are not the same product.


πŸ•΅οΈ Sin #2: Your photos go on a little vacation

Here's the thing most people never think about. For the typical online tool, the
architecture is:

 your photo ──HTTPS──▢ their server ──▢ (processing) ──▢ their server ──▢ you
                         β–²
                 a copy exists here.
                 for "a while".
Enter fullscreen mode Exit fullscreen mode

Take iLoveIMG: the files go to their servers, and they say uploads get deleted
within about two hours. That's a reasonable policy, honestly. But notice what it
actually is: a promise, not a property of the system. You can't verify it. You're
trusting a privacy page.

For a meme? Whatever. For an ID scan, a client's unreleased product shots, your
kid's school photo, a screenshot with a token in it? That's a bigger ask than the
"drag & drop" button makes it look like.


πŸ”’ Sin #3: Paywall roulette

You open Canva, find the Background Remover button right there in the Edit panel,
click it, and get the upgrade prompt. The feature is a Canva Pro thing. You get a
limited free taste, and then it's subscription time.

Again, not evil, just the pattern: the button is free to look at.


🧱 Sin #4: Limits that hit exactly when you need it

TinyPNG is a great compressor and I will defend that. But the free web version
tops out at 20 images per session, 5 MB per image, and 3 conversions. Paid
tiers raise that to 75 MB (Pro) and 150 MB (Ultra).

RAW-ish export from a camera? A big screenshot? Over 5 MB, no entry. πŸšͺ


πŸ” Sin #5 (the one nobody counts): the Tab Spiral

Real task: "Make this product photo web-ready, transparent, under 200 KB, as WebP."

Real workflow with single-purpose tools:

Site A  remove background   β†’ upload #1 β†’ download
Site B  resize              β†’ upload #2 β†’ download
Site C  compress            β†’ upload #3 β†’ download
Site D  convert to WebP     β†’ upload #4 β†’ download
Enter fullscreen mode Exit fullscreen mode

That's 4 uploads, 4 privacy policies, 4 free-tier limits, and 3 extra lossy
re-encodes
(every JPEG save throws away a bit more detail; it's called generation
loss). You didn't edit an image. You ran a relay race with your pixels. πŸƒ


πŸ€” So why does it work like this?

Historically: the browser couldn't do the heavy part. Segmentation models needed
GPUs and big runtimes, so the model lived on a server, and your photo had to travel
to it. Server costs β†’ limits β†’ upsell β†’ "download HD for 1 credit."

That excuse has been quietly expiring for a few years:

Then Now
JS is too slow for ML WebAssembly runs near-native code in the tab
No runtime for neural nets ONNX Runtime Web runs real models in-browser
Models are 500 MB+ Good segmentation/inpainting models ship in the 5 – 180 MB range
Can't cache big files Cache Storage keeps a model after the first download

Meaning the "server" in the diagram above is now… optional:

 your photo ──▢ [ your browser tab: WASM + model ] ──▢ you
                         β–²
                 nothing leaves.
                 there is no "their server" step.
Enter fullscreen mode Exit fullscreen mode

Don't trust me. Verify it. πŸ”

Any tool that claims "100% client-side" should survive this 20-second test:

  1. Open DevTools β†’ Network tab.
  2. Clear it. Load an image and run the tool.
  3. Look for any request that carries your image bytes.

A real on-device tool shows no image upload. (You'll see one-time downloads of the
model files, because the AI has to come from somewhere, but those flow to you,
not from you.) Try this on whatever you use today. It's genuinely eye-opening.

Credit where due: Squoosh (from the Chrome team) has been proving in-browser
image work is viable for years. The tech is not exotic anymore. It's just that
nobody bundled the whole workflow in one place.


πŸ§ͺ The nerdy bit: why most cutouts look "off" (even the AI ones)

This is the part I find fun, and it's where "just run a model" stops being enough.

Problem A: the mask is tiny

Segmentation models run at a fixed size, commonly around 1024Γ—1024 (lightweight
ones: 320Γ—320). Your photo is bigger. On a 4032Γ—3024 shot, one pixel of the mask
covers roughly a 4Γ—3 block of real pixels.

Stretch that mask up naively and you get the classic crime scene: soft, blobby edges,
hair turned into a helmet. πŸͺ–

Fix: use the photo itself as a guide. A guided filter (He et al.) snaps the
blurry mask onto the real edges in the full-res image:

// idea in one breath:
// alpha  = upsample(modelMask)                // blurry but in the right place
// guide  = luminance(photo)                   // sharp, knows where edges really are
// alpha' = guidedFilter(guide, alpha, r, eps) // edges now follow the photo
// then clamp alpha' to a narrow band around the model's own edge
// so it can sharpen the boundary, but never invent or delete regions
Enter fullscreen mode Exit fullscreen mode

Problem B: the halo 🌈

Edge pixels are a mix of subject and old background. Cut the subject out of a green
screen-ish photo and drop it on white: green fringe. Every time.

Fix: estimate the true foreground colour at edge pixels (Blur-Fusion foreground
estimation, Forte & PitiΓ©) and use that instead of the contaminated original. Interior
pixels stay byte-for-byte original; only the fringe gets repaired.

Problem C: memory is the real boss fight πŸ’£

A 12 MP RGBA buffer is 48 MB. (12,000,000 Γ— 4 bytes.) Now count how many full-size
copies a naive "remove object" pipeline makes: source, mask, blurred mask, model
output, blend buffer... phones start sweating at ~500 MB and then the OS just ends
your tab.

Fix: never process the whole photo. Crop the region around what you're editing
(plus context), run the model on that, blend it back, and leave every other pixel
untouched.

whole-photo pipeline:  cost ∝ size of the photo   β†’ πŸ’₯ on phones
region pipeline:       cost ∝ size of the edit    β†’ βœ… boring, which is the goal
Enter fullscreen mode Exit fullscreen mode

Good engineering is making the scary thing boring.


πŸ˜… Okay, disclosure time

Everything above is the checklist I kept running into, until I got annoyed enough to
build against it. I'm the dev behind APIC Web,
a browser-based image toolkit, so yes, this is where I tell you about it. But you've
read this far, so let me at least be straight about what it is and isn't.

What it is: everything in the "Tab Spiral" in a single tab.

Tool What it does
βœ‚οΈ Remove Background On-device AI cut-out (IS-Net from the DIS research; Light/Fast/Max tiers), guided-filter edge refinement + colour-fringe removal, keeps your original resolution
🧽 Remove Object Paint over it, AI fills it in (MI-GAN, Picsart research, MIT-licensed); only the region around your brush is processed
πŸ“ Resize Clean multi-step downscaling
πŸ”„ Convert PNG, JPEG, WebP, BMP, ICO, PDF
πŸ—œοΈ Compress Type a target size in KB; it binary-searches the highest quality that fits
πŸŽ›οΈ Edit + Advanced Filters, light/colour controls, crop, undo/redo

Your image is processed in your browser, and the Network-tab test above is the
proof, not my word.

The honest tradeoffs (because you'd find them in 5 minutes anyway)

  • πŸ”‘ Sign-in: the tool panels sit behind a free Google sign-in. Guests can I store account basics (name, email), never your images.
  • ⬇️ First-run download: the AI models download once (~5 MB Light, 44 MB Fast, 176 MB Max for Remove BG; ~28 MB for Remove Object) from a public model host, then get cached in your browser.
  • πŸ“± Phones play by phone rules: weaker devices default to the lightweight model, and huge photos (above roughly 12 MP) get downsized on phones only, specifically so the tab doesn't crash. Desktop is never capped.
  • 🧠 It's not Photoshop. No layers, no templates, no brand kits. It's built for the 90% of "I just need this one image fixed" moments.

The scorecard

Typical free tool APIC Web
Free output resolution often capped original resolution
Where your photo goes uploaded to a server stays in your tab
Verify it yourself? trust the privacy page Network tab
Background removal paywall / credits included
Workflow 4 sites, 4 uploads one tab
Re-encodes along the way many one export

πŸš€ Try to break it

I'd rather you roast it than ignore it:

πŸ‘‰ akhouri-anmol-kumar.github.io/APIC-web

Throw your worst photo at it: messy hair, a glass bottle, a low-contrast product,
a 12 MP phone pic on a potato Android. Open the Network tab while you do it. If it
fails, tell me in the comments (the phone-crash fix I mentioned came straight
from user complaints, so I take them seriously).

And if you've got your own "free tool betrayed me" story, drop it below. I'm
collecting them. πŸ‘‡


Top comments (75)

Collapse
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

@effessdev tested?

Collapse
 
effessdev profile image
EffessDev •

Still in bus :(

Collapse
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

hmm no problem just chat here for a while 🀣

Thread Thread
 
effessdev profile image
EffessDev •

What? πŸ˜‚ You go and add more features to it dont waste time

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

I've done already bro reach home and test it you will see what I've cooked.

Thread Thread
 
effessdev profile image
EffessDev •

Let me test it right now...

What do you want to get tested?

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

bro in mobile?
hmm test remove background and object remover
also the gradient and those stuff you were telling.
it is more optimized for mobile.

Thread Thread
 
effessdev profile image
EffessDev •

I love the gradient! And you had removed the em-dash-like thing too which was good. Ah also I told you to remove the border when we open an image, right? Let me check what you've done

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

yeah I've not removed the border because I was waiting for your replacement idea.
in place of dot dot line what should be added?

Thread Thread
 
effessdev profile image
EffessDev •

I mean keep whatever is before opening the image. But when we open the image, remove those borders and let the image extend to the sides so that its bigger.

How does that sound? Isn't it a good idea?

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

yeah now I understand completely what you want to say okay noted it will be updated soon.

Thread Thread
 
effessdev profile image
EffessDev •

Also, remove the extra space in the top and the bottom. Maybe used a fixed container to avoid layout shift? But you can add animations to make it even better than before! But if you were trying to hide what's underneath then its good.

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

means? didn't understand.

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

removed dot lines on corner
now tell me how's it?

Thread Thread
 
effessdev profile image
EffessDev •

Wow that quickly?! These comments don't update on my phone without refreshing and when i refresh it goes to the very top so its really annoying 😭

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

yeah, AAK's power

Thread Thread
 
effessdev profile image
EffessDev •

Ok now i can see. This is MUCH better! Please keep it imo.

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

bro you are in bus, in college, in break time every time present for akhouri systems
🫑

Thread Thread
 
effessdev profile image
EffessDev • • Edited

Now, another thing is, now when we open a portrait photo, the preview becomes too tall. Maybe we should set max height to 50vh or 75vh or something? The thing is the full image must be visible from the very top of the site (as well as a few controls)

Thread Thread
 
effessdev profile image
EffessDev •

Reply for "bro you are in bus, in college, in break time every time present for akhouri systems 🫑":

Thanks! I didnt saw that comment! Can i set my current position as "CTO at Akhouri Systems" in LinkedIn? I want to prank some of my friends πŸ˜‚

Thread Thread
 
effessdev profile image
EffessDev •

Also, can we remove "STUDIO GRADE EDITING ZERO UPLOAD" once we open an image? The user only has to see it initially right? That would save a lot of the space on the top. Top space is very important

Thread Thread
 
akhourianmolkumar profile image
Comment deleted
Thread Thread
 
effessdev profile image
EffessDev •

Ok πŸ˜‚ Fire me anytime no pressure!

Thread Thread
 
effessdev profile image
EffessDev •

Even that gor deleted? Makes zero sense.

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

yeah dev.to moderators are very unemployed maybe?
they are reading chats
reading 2 pros talk

Thread Thread
 
effessdev profile image
EffessDev •

πŸ˜‚ yeah they are jealous

 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

ahh finally!, all your suggestions implemented now test it.
also I'm thinking to make it more optimized for mobile because in my low-end mobile it is not working smooth.

 
akhourianmolkumar profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Akhouri Anmol Kumar •

hardwork: πŸ“ˆπŸ“ˆπŸ“ˆβ˜ οΈπŸ–οΈπŸ€šπŸ”₯πŸ”₯πŸ”₯
total sign-ups till now: 11 πŸ“‰πŸ˜“πŸ”»

Thread Thread
 
effessdev profile image
EffessDev • • Edited

You just need to wait. I really believe its something genuinely useful. Its just not known yet.

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

yeah... patience is the key to success
I said this thought in school assembly one time πŸ€£πŸ˜‚

Thread Thread
 
effessdev profile image
EffessDev •

Brooo this is AWESOME 😭

That animation was REALLY good! Only thing is that niw there is a small gap on the top. If we fix it it'd be perfect!

Thread Thread
 
effessdev profile image
EffessDev •

But if that exists for a reason its ok!

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

done...
now check

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

this post chat will be legendary.

Thread Thread
 
effessdev profile image
EffessDev •

Another thing. Currently everything exists inside a box, right? This is good for desktop UI. But in mobile phones most websites remove boxes like those to save horizontal space. Also it currently doesn't have margins on the sides so it can be visible on intermediate width devices like tables.

Thread Thread
 
effessdev profile image
EffessDev •

We've been chatting for a long time but why isn't this post viral yet?

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

because people love more resident evil than this flagship image editing online tool killer.

Thread Thread
 
effessdev profile image
EffessDev •

Yeah πŸ˜… The thing is that they have money for marketing, we dont because we arent extracting money from users like they do

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

now try APIC Web finally I think now it is following all suggestions.
also for revenue I've till now no monetization plan just 1 plan is there to submit main akhouri systems website to google adsense
but then I halt the plan because it will ruin akhouri systems premium logo brand value.
I know you might think -- bro till now your akhouri systems is baby so what brand value
and yeah that thinking is right but for me I've to set the brand value so that in future I can implement desktop apps freemium structure and charge good amount of money just because of brand value for real world example APPLE.

Thread Thread
 
effessdev profile image
EffessDev •

Yes. I also think we should not add Adsense this soon. I am home! I tested it on the laptop. A few minor tweaks are required. But now I have work to do (related to ReptClip). I am 99.9% sure that you know about Chrome devtools. But if you don't, you can test all viewports in your laptop itself easily. You can adjust dimensions or set equal to certain popular real phones. Just know that it doesn't account for the moving top bar in Chrome android.

 
effessdev profile image
EffessDev •

Turns out there is even more controls below so its better to get rid of that extra space and accept some layout shift (or add an animation). Also, you might want to make sure image + controls is at least 100vh so that the regular website content below can't be seen from the top.

Collapse
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

@xulingfeng bro can you give me gem?

Collapse
 
xulingfeng profile image
xulingfeng •

🀣I have no gem

Collapse
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

bro whatt? means we have to get a gem to give someone a gem?
it is like a currency? and if yes then to get gems we have to give something or dev.to randomly gives to anyone?

Thread Thread
 
technogamerz profile image
π“π‘πž π‹πšπ³π² 𝐆𝐒𝐫π₯ •

DEV curator Gem de sakte hai.

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

who is curator?

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

@technogamerz & me with 0 gems but quality posts bruhh.

Thread Thread
 
technogamerz profile image
π“π‘πž π‹πšπ³π² 𝐆𝐒𝐫π₯ • • Edited

Curator ke yah star hota hai profile pic par

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

hmm, @xulingfeng please get this star & give gem to me and divyanshi didi

Thread Thread
 
technogamerz profile image
π“π‘πž π‹πšπ³π² 𝐆𝐒𝐫π₯ •
Thread Thread
 
akhourianmolkumar profile image
Comment deleted
Thread Thread
 
technogamerz profile image
π“π‘πž π‹πšπ³π² 𝐆𝐒𝐫π₯ •

And Bro, I'm not doing this for the gems, honestly.πŸ™‚

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

I want gem just because of my badges portfolio.
but yeah now I've understood one day we both will have gems and top 7 badge, and other badges too.

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

didi waise aap shark tank india dekhte hai?

Thread Thread
 
technogamerz profile image
π“π‘πž π‹πšπ³π² 𝐆𝐒𝐫π₯ •

Aacha Aapko Badge pasand hai toh aap DEV chelllages me participate kar sakte hai.
BTW mene kabhi Shark tank India nahi dekha.

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

aap MBA kar rhe so I thought you watch shart tank too, dev challenges is hard isn't?

Thread Thread
 
technogamerz profile image
π“π‘πž π‹πšπ³π² 𝐆𝐒𝐫π₯ •

Aapko itne badge chaiye?

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

woahhhhhhhhhhhhhhhhhhhhhhhhhh
yeah I want lol 🀣
sabji mandi me free me mil rha hai kya?

Thread Thread
 
technogamerz profile image
π“π‘πž π‹πšπ³π² 𝐆𝐒𝐫π₯ •

Maybe!

Collapse
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

@xulingfeng based on your resident evil post
my chance of survival will be 90%
my job: (lol I don't know I'm employed or unemployed) but if employed then: Founder & CEO
if unemployed: then Techno Gamerz subscriber( @technogamerz you know this legendary youtuber ☠️) and because I've watched techno's all resident gameplays I know what to do what to not.
and if employed then I will launch ATLOCK_v6 that will protect humanity's last images forever, humanity's last messages kept in files for aliens will be locked by ATLOCK_v6

☠️
btw I've watched resident evil movie too.

Collapse
 
xulingfeng profile image
xulingfeng •

You sly guy! Instead of leaving a relevant comment under my post, you commented on your own thread, hahaha 🀣

Collapse
 
akhourianmolkumar profile image
Akhouri Anmol Kumar • • Edited

yeah because my comment on your post will start thread of discussion and then your post will be in active discussions which is already and mine will be not.
☠️

Thread Thread
 
effessdev profile image
EffessDev •

Yeah that's fair honestly.

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

yeah, that's AAK move.

Collapse
 
technogamerz profile image
π“π‘πž π‹πšπ³π² 𝐆𝐒𝐫π₯ •

But why U are using my Username? 🀣

Collapse
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

techno gamerz ujwal chaurasia wala technogamerz I mean to that.

Collapse
 
glenallen profile image
Glen Allen •

The Network-tab verification tip is one of the strongest parts of this post because it turns a privacy claim into something users can actually test. One nuance worth considering is that β€œno image upload” and β€œno data leaves the browser” aren't quite the same guarantee. Analytics, crash reports, or third-party scripts can still send metadata even when the image itself stays local. A clear explanation of which requests are expected, and why, would make the transparency even stronger. Privacy is much easier to trust when users can verify not just the main processing path, but the surrounding page behavior too.

Collapse
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

@merbayerp
finally got like from one of most busiest person alive on the planet earth
🫑

Collapse
 
merbayerp profile image
Mustafa ERBAY •

Haha, Anmol! πŸ˜‚ I’m not that busy, my friend. Just juggling a few projects!

But seriously, I enjoyed this one. Moving image processing entirely into the browser is a great direction, especially from a privacy perspective.

I also liked that you discussed the engineering challenges behind it, not just the features.

One small thought: the Network tab is a useful first check, but privacy also depends on the scripts running in the browser.

Keep building, my friend. And don’t worry, I’ll try not to make you wait so long for the next like! πŸ˜„πŸ«‘

Collapse
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

Collapse
 
effessdev profile image
EffessDev •

So this is the person whome you were talking about?

Thread Thread
 
akhourianmolkumar profile image
Akhouri Anmol Kumar •

yeah one of the most experienced person you will see on dev.to ever.

Thread Thread
 
merbayerp profile image
Mustafa ERBAY •

Haha, Anmol, you’re too kind! πŸ˜„

I’m just someone who enjoys building things and learning along the way. There’s still so much I don’t know.

It’s always nice to see people sharing ideas and helping each other improve. Keep up the great work, both of you! ❀️🫑

Some comments may only be visible to logged-in visitors. Sign in to view all comments.