Privacy
Your pictures are never uploaded. The background is removed by a model that runs inside your browser, on your own device, and no image data is sent to this site or to anyone else.
Your images
When you drop a photo, it is read by your browser and processed in a web worker on your machine. The site has no server that could receive it: the pages are static files. Close the tab and the picture is gone; nothing is stored on this device by the site either, apart from the model weights and a copy of the site's own pages, scripts and fonts in the browser's cache, which is what lets the tool open with no connection, and neither contains anything of yours. The one exception is a picture you send from one tool to the next with the Then menu: it waits in the browser's own storage for the moment the next page takes to open, and is deleted as that page takes it.
You can check this rather than trust it. Open your browser's developer tools, go to the Network tab, and remove a background. After your first picture, the only requests are the page itself, its scripts and fonts, and one small counter request described below. Switch the browser to offline and the tool still works.
What the site does collect
- A count. When a background has been removed, the page sends one request to this site's own address saying which tool page it was on and which runtime ran the model, for example
{"page":"/white-background","backend":"webgpu"}. Saving a file, converting one or making a passport photo sends the same kind of request with the format, the conversion or the document, for example{"event":"download","key":"jpg"}. Each adds one to a number for that day. Every value is one of a short fixed list, and the server discards anything else. No request carries an identifier, a cookie, a file name, dimensions or anything about the picture. - Visit analytics. The site uses Google Analytics, loaded through Google Tag Manager, to measure how many people visit and which pages they arrive on. It sets a cookie to tell a returning visit from a new one, and it records which runtime the model ran on, which format a file was saved in, whether a sample picture was tried, and on a converter page which format was converted to which. It is not used for advertising, nothing about your images is collected, and the page's security policy blocks any tag from sending data to a host other than Google Analytics. A content blocker stops it entirely without affecting the tool.
- A rating, if you give one. After you save a file, the page asks how it came out. If you answer, it sends the number of stars, whichever of the listed faults you ticked and anything you typed in the box, to this site's own address. It carries no identifier and no picture: there is no address on this site that could receive a picture, which is the difference between this and every tool that asks you to upload a bad result. Ignore the question, or close it, and nothing is sent.
The AI model
The first time you use the tool, your browser fetches the AI model from getpng.app itself and keeps it in its cache; on a graphics card a second, smaller model for hair is fetched the same way the first time a picture has a soft edge for it to work on. Your picture is not part of either request, and no other website is contacted: the page's security policy does not allow a connection to any host except this site and Google Analytics.
The HEIC decoder
Browsers other than Safari cannot open HEIC, the iPhone's photo format, so the first time you drop a HEIC photo your browser fetches a decoder from getpng.app (about 2 MB) and keeps it in its cache. The photo is decoded inside your browser like every other picture; the request for the decoder contains nothing of yours, and pages that never see a HEIC file never fetch it.
The PDF reader
A PDF page is a set of drawing instructions rather than a picture, so turning one into an image needs a renderer. The first time you drop a PDF, your browser fetches pdf.js from getpng.app (about 1.7 MB, with the standard fonts and character maps fetched only if a document needs them) and keeps it in its cache. The document is opened and drawn inside your browser, and so is the password of a locked one: there is no address on this site that could receive either.
The PDF editor
Merging, splitting and compressing a PDF means reading a document somebody else wrote and writing it back out, which the renderer above cannot do. The first time you use one of those three tools, your browser fetches pdf-lib from getpng.app (about 500 KB) and keeps it in its cache. Your documents are opened, rearranged and saved inside your browser.
The upscaling model
The AI engine on Upscale an image needs a trained model, so the first time you enlarge a picture with it your browser fetches the weights for that scale from getpng.app (about 900 KB) and the TensorFlow.js runtime that executes them, and keeps both in its cache. The model then runs on your own graphics chip: the picture is never sent anywhere, and the requests for the model contain nothing of yours. The other engine on that page needs no download at all.
Open source components
- libheif and libde265 decode HEIC photos. They are licensed under the GNU Lesser General Public License, version 3, and used through libheif-js 1.23.2, served unmodified as a separate file at
/vendor/libheif-js-1.23.2/libheif-bundle.mjswith its licence text. The source code is at github.com/strukturag/libheif and github.com/strukturag/libde265, and you may replace that file with your own build. - pdf.js renders the pages of a PDF on PDF to PNG and PDF to JPG. It is Mozilla's, licensed under the Apache License 2.0, served unmodified at
/vendor/pdfjs-6.3.289/pdf.min.mjswith its licence text, version 6.3.289. The source code is at github.com/mozilla/pdf.js. - pdf-lib rearranges an existing PDF on merge, split and compress. It is licensed under the MIT licence, served unmodified at
/vendor/pdf-lib-1.17.1/pdf-lib.esm.min.jswith its licence text, version 1.17.1. The source code is at github.com/Hopding/pdf-lib. - ESRGAN-slim is the model that enlarges a picture on Upscale an image, run through TensorFlow.js (Apache-2.0 licence) on your graphics chip. Its weights come from @upscalerjs/esrgan-slim 1.0.0, licensed under the MIT licence and served unmodified from
/vendor/esrgan-slim-1.0.0/with its licence text, rather than from the content delivery network the package points at. - BiRefNet lite (MIT licence), ISNet (Apache-2.0 licence) and U-2-Net (Apache-2.0 licence) are the background removal models, run through ONNX Runtime Web (MIT licence) and Transformers.js (Apache-2.0 licence).
Under the GDPR
Because your images are never transmitted or stored, the site does not process them in the sense of the regulation: there is nothing to keep, nothing to delete and nothing to hand over. The daily counts are totals per day (removals, and how many used each tool, format or document) and cannot be related to a person. Google Analytics is used under Google's standard terms, and you can block it with any content blocker without affecting the tool.
Contact
Questions about any of this: hello@getpng.app.