{
  "$schema": "https://appvau.lt/api/v1/openapi.json",
  "dataset": "tools",
  "title": "Free browser tools on appvau.lt",
  "description": "Ten tools that read, change and check image files entirely inside the visitor’s browser tab: metadata inspection and removal, irreversible redaction, compression, resizing, brightening, format conversion, Ultra HDR construction and QR generation. Keyless, free, no account.",
  "updated": "2026-09-11",
  "source": "https://appvau.lt",
  "documentation": "https://appvau.lt/tools/",
  "publisher": {
    "name": "Vast Flow, LLP",
    "url": "https://vastflow.kz"
  },
  "licence": {
    "name": "CC BY 4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/",
    "attribution": "App-Vault (https://appvau.lt)",
    "terms": "Free to reuse, republish and build on, including commercially, with attribution and a link to the source page."
  },
  "caveats": [
    "Every tool runs in the visitor’s browser. There is no API here that processes an image for you: these entries describe pages a person or an agent opens, not endpoints to POST a file to.",
    "The `limits` array on each tool is the load-bearing part. It names what the tool cannot do, which is what makes the capability list worth trusting.",
    "A tool marked `verifies` reads its own output back before offering it. Where that field is null, no such check exists and none is claimed.",
    "Browser image encoders are not mozjpeg or cwebp. For the same visual quality a command-line encoder typically produces a file 10-20% smaller."
  ],
  "count": 10,
  "index": "https://appvau.lt/tools/",
  "languages": [
    "ar",
    "de",
    "en",
    "es",
    "fr",
    "it",
    "ja",
    "pt-br",
    "tr"
  ],
  "categories": [
    {
      "id": "photo-privacy",
      "label": "Photo privacy",
      "about": "What a picture says about you that you did not write into it, and how to take it back out.",
      "tools": [
        "photo-metadata",
        "face-blur"
      ]
    },
    {
      "id": "image-files",
      "label": "Image files",
      "about": "Size, dimensions, format and exposure. The output is measured, not estimated.",
      "tools": [
        "image-compressor",
        "image-resizer",
        "image-brightener",
        "png-to-webp",
        "webp-to-jpg",
        "webp-to-png",
        "hdr-image-converter"
      ]
    },
    {
      "id": "codes",
      "label": "Codes",
      "about": "Encoding a short piece of information into something a camera can read.",
      "tools": [
        "qr-code-generator"
      ]
    }
  ],
  "tools": [
    {
      "id": "photo-metadata",
      "name": "Photo metadata viewer and remover",
      "category": "photo-privacy",
      "page": "https://appvau.lt/tools/photo-metadata/",
      "markdown": "https://appvau.lt/tools/photo-metadata/index.md",
      "translations": {
        "ar": "https://appvau.lt/ar/tools/photo-metadata/",
        "de": "https://appvau.lt/de/tools/photo-metadata/",
        "en": "https://appvau.lt/tools/photo-metadata/",
        "es": "https://appvau.lt/es/tools/photo-metadata/",
        "fr": "https://appvau.lt/fr/tools/photo-metadata/",
        "it": "https://appvau.lt/it/tools/photo-metadata/",
        "ja": "https://appvau.lt/ja/tools/photo-metadata/",
        "pt-br": "https://appvau.lt/pt-br/tools/photo-metadata/",
        "tr": "https://appvau.lt/tr/tools/photo-metadata/"
      },
      "summary": "Shows every metadata field a photo carries, ranked by what it gives away, then rebuilds the file without any of it. The image data is copied byte for byte, so nothing is re-compressed.",
      "accepts": [
        "jpeg",
        "png",
        "webp"
      ],
      "produces": [
        "jpeg",
        "png",
        "webp"
      ],
      "runs_in": "browser",
      "requires_account": false,
      "price": 0,
      "uploads_the_file": false,
      "verifies_own_output": "The cleaned file is parsed again by the same reader, and the result says what is left rather than claiming nothing is.",
      "limits": [
        "HEIC, the iPhone default, cannot be opened outside Safari because Chrome and Firefox have no decoder for it. Export or share the photo as JPEG first.",
        "Removing metadata does not remove an invisible watermark. Google SynthID and similar schemes live in the pixels, survive re-encoding, and are not detectable by any metadata reader including this one.",
        "A file that declares no AI generator is not thereby a photograph. These declarations are trivially removable, which is the whole point of this page.",
        "Platforms re-encode what you upload and strip most metadata themselves — but not all of them, not consistently, and not before their own servers have read it."
      ],
      "questions_answered": [
        "What does EXIF data actually reveal about me?",
        "Does removing metadata change the image quality?",
        "Is my photo uploaded to a server?",
        "How do I check if an image was generated by AI?",
        "What are Content Credentials, and should I remove them?",
        "Why does the tool keep the orientation tag?",
        "Does an embedded thumbnail matter?",
        "Do social networks strip metadata for me?",
        "Can removed metadata be recovered from the file?",
        "What formats does it read?"
      ],
      "related_tools": [
        "face-blur",
        "image-compressor",
        "image-resizer"
      ],
      "published": "2026-09-11",
      "updated": "2026-09-11"
    },
    {
      "id": "face-blur",
      "name": "Photo redactor: blur, pixelate, black bars",
      "category": "photo-privacy",
      "page": "https://appvau.lt/tools/face-blur/",
      "markdown": "https://appvau.lt/tools/face-blur/index.md",
      "translations": {
        "ar": "https://appvau.lt/ar/tools/face-blur/",
        "de": "https://appvau.lt/de/tools/face-blur/",
        "en": "https://appvau.lt/tools/face-blur/",
        "es": "https://appvau.lt/es/tools/face-blur/",
        "fr": "https://appvau.lt/fr/tools/face-blur/",
        "it": "https://appvau.lt/it/tools/face-blur/",
        "ja": "https://appvau.lt/ja/tools/face-blur/",
        "pt-br": "https://appvau.lt/pt-br/tools/face-blur/",
        "tr": "https://appvau.lt/tr/tools/face-blur/"
      },
      "summary": "Drag over the parts of a picture that should not be published. The covering is written into the pixels and the file is re-encoded from them, so there is no layer to peel off and nothing underneath.",
      "accepts": [
        "jpeg",
        "png",
        "webp",
        "avif",
        "gif"
      ],
      "produces": [
        "jpeg",
        "png",
        "webp"
      ],
      "runs_in": "browser",
      "requires_account": false,
      "price": 0,
      "uploads_the_file": false,
      "verifies_own_output": null,
      "limits": [
        "There is no automatic face detection unless your browser exposes the Shape Detection API, which almost none do. The alternative would be uploading your photo to a detection service or pushing a model onto your phone, and this page does neither.",
        "A box around a face is not anonymity. A name badge, a reflection, a visible street sign, a distinctive tattoo, a gait in a sequence of frames and the surrounding metadata all identify people, and only the last of those is handled here.",
        "Pixelation at a coarse block size cannot be reversed, but it still shows the shape and colour of what was covered. A solid block shows nothing.",
        "The output is re-encoded, so a JPEG in becomes a JPEG that has been through an encoder twice. That is the price of a redaction that actually removes the pixels."
      ],
      "questions_answered": [
        "Can a blurred face be recovered?",
        "Why is a black box in a PDF or a screenshot markup not enough?",
        "Does the redacted file still carry the location it was taken?",
        "Is the photo uploaded anywhere?",
        "Which mode should I use?",
        "Can I redact a screenshot of a message or a bank statement?",
        "Does it work on a phone?",
        "What happens to the parts I did not cover?"
      ],
      "related_tools": [
        "photo-metadata",
        "image-resizer",
        "image-compressor"
      ],
      "published": "2026-09-11",
      "updated": "2026-09-11"
    },
    {
      "id": "image-compressor",
      "name": "Image compressor",
      "category": "image-files",
      "page": "https://appvau.lt/tools/image-compressor/",
      "markdown": "https://appvau.lt/tools/image-compressor/index.md",
      "translations": {
        "ar": "https://appvau.lt/ar/tools/image-compressor/",
        "de": "https://appvau.lt/de/tools/image-compressor/",
        "en": "https://appvau.lt/tools/image-compressor/",
        "es": "https://appvau.lt/es/tools/image-compressor/",
        "fr": "https://appvau.lt/fr/tools/image-compressor/",
        "it": "https://appvau.lt/it/tools/image-compressor/",
        "ja": "https://appvau.lt/ja/tools/image-compressor/",
        "pt-br": "https://appvau.lt/pt-br/tools/image-compressor/",
        "tr": "https://appvau.lt/tr/tools/image-compressor/"
      },
      "summary": "Set a quality, or set a ceiling and let the tool walk a published quality ladder until the encoded file fits. The receipt names the quality it used, so the result is reproducible.",
      "accepts": [
        "jpeg",
        "png",
        "webp",
        "avif",
        "gif"
      ],
      "produces": [
        "jpeg",
        "webp",
        "png"
      ],
      "runs_in": "browser",
      "requires_account": false,
      "price": 0,
      "uploads_the_file": false,
      "verifies_own_output": "Every candidate is really encoded and really measured. The size shown is the size of the file you download, not a model of it.",
      "limits": [
        "Browser encoders are not mozjpeg. For the same visual quality, a command-line encoder will usually produce a file 10-20% smaller; what you get here is instant and private instead.",
        "PNG has no quality setting. Compressing a PNG means either accepting its lossless size or converting it to WebP or JPEG, which the tool will do.",
        "A size ceiling that cannot be met by quality alone is met by reducing the dimensions, and the receipt says so. A ceiling that cannot be met at all is reported as a failure rather than quietly missed.",
        "Re-compressing an image that has already been through a lossy encoder compounds the damage. Start from the original wherever you still have it."
      ],
      "questions_answered": [
        "How do I compress an image without losing quality?",
        "What size should an image be for email?",
        "Is my image uploaded to compress it?",
        "Why is my compressed file bigger than the original?",
        "What quality setting should I use?",
        "How do I get an image under 100 kB exactly?",
        "Should I use WebP or JPEG?",
        "Does compressing remove the location from my photo?",
        "Why does the estimate differ from the result?"
      ],
      "related_tools": [
        "image-resizer",
        "png-to-webp",
        "photo-metadata"
      ],
      "published": "2026-09-11",
      "updated": "2026-09-11"
    },
    {
      "id": "image-resizer",
      "name": "Image resizer",
      "category": "image-files",
      "page": "https://appvau.lt/tools/image-resizer/",
      "markdown": "https://appvau.lt/tools/image-resizer/index.md",
      "translations": {
        "ar": "https://appvau.lt/ar/tools/image-resizer/",
        "de": "https://appvau.lt/de/tools/image-resizer/",
        "en": "https://appvau.lt/tools/image-resizer/",
        "es": "https://appvau.lt/es/tools/image-resizer/",
        "fr": "https://appvau.lt/fr/tools/image-resizer/",
        "it": "https://appvau.lt/it/tools/image-resizer/",
        "ja": "https://appvau.lt/ja/tools/image-resizer/",
        "pt-br": "https://appvau.lt/pt-br/tools/image-resizer/",
        "tr": "https://appvau.lt/tr/tools/image-resizer/"
      },
      "summary": "Six modes, one of which crops and says so. The tool downsamples in halving steps rather than one jump, which is the difference between a clean small photograph and a crunchy one.",
      "accepts": [
        "jpeg",
        "png",
        "webp",
        "avif",
        "gif"
      ],
      "produces": [
        "jpeg",
        "png",
        "webp"
      ],
      "runs_in": "browser",
      "requires_account": false,
      "price": 0,
      "uploads_the_file": false,
      "verifies_own_output": null,
      "limits": [
        "Enlarging cannot add detail. The tool will do it, and it will tell you that the result is an interpolation of what was already there.",
        "\"Fill a box\" crops. The tool reports the crop rectangle rather than silently discarding the edges.",
        "Animated GIF and animated WebP are read as a single frame. Nothing here preserves animation."
      ],
      "questions_answered": [
        "What size should a profile picture be?",
        "How do I resize an image without losing quality?",
        "What is the difference between fit and fill?",
        "Is the image uploaded?",
        "Can I resize to an exact file size instead?",
        "Why is my resized photo rotated?",
        "What happens to transparency?",
        "Can I resize several images at once?"
      ],
      "related_tools": [
        "image-compressor",
        "face-blur",
        "webp-to-png"
      ],
      "published": "2026-09-11",
      "updated": "2026-09-11"
    },
    {
      "id": "image-brightener",
      "name": "Image brightener",
      "category": "image-files",
      "page": "https://appvau.lt/tools/image-brightener/",
      "markdown": "https://appvau.lt/tools/image-brightener/index.md",
      "translations": {
        "ar": "https://appvau.lt/ar/tools/image-brightener/",
        "de": "https://appvau.lt/de/tools/image-brightener/",
        "en": "https://appvau.lt/tools/image-brightener/",
        "es": "https://appvau.lt/es/tools/image-brightener/",
        "fr": "https://appvau.lt/fr/tools/image-brightener/",
        "it": "https://appvau.lt/it/tools/image-brightener/",
        "ja": "https://appvau.lt/ja/tools/image-brightener/",
        "pt-br": "https://appvau.lt/pt-br/tools/image-brightener/",
        "tr": "https://appvau.lt/tr/tools/image-brightener/"
      },
      "summary": "Three published tone curves rather than one slider labelled \"auto\". The shadow lift leaves highlights alone, which is what keeps a brightened photo from looking like a grey screen.",
      "accepts": [
        "jpeg",
        "png",
        "webp",
        "avif"
      ],
      "produces": [
        "jpeg",
        "png",
        "webp"
      ],
      "runs_in": "browser",
      "requires_account": false,
      "price": 0,
      "uploads_the_file": false,
      "verifies_own_output": null,
      "limits": [
        "Brightening amplifies whatever the sensor recorded, including its noise. A photo taken at high ISO in a dark room gets brighter and grainier at the same rate.",
        "Clipped highlights cannot come back. A blown-out window is 255 in all three channels and there is nothing behind it.",
        "This works on the 8-bit image. A camera RAW file holds far more headroom, and a RAW editor will always beat this on the same photograph."
      ],
      "questions_answered": [
        "How do I brighten a dark photo?",
        "What does the shadow lift actually do?",
        "Why does my brightened photo look grainy?",
        "Is my photo uploaded?",
        "Can this recover a completely black photo?",
        "Will it change the colours?",
        "Does brightening remove metadata?"
      ],
      "related_tools": [
        "image-compressor",
        "image-resizer",
        "hdr-image-converter"
      ],
      "published": "2026-09-11",
      "updated": "2026-09-11"
    },
    {
      "id": "png-to-webp",
      "name": "PNG to WebP converter",
      "category": "image-files",
      "page": "https://appvau.lt/tools/png-to-webp/",
      "markdown": "https://appvau.lt/tools/png-to-webp/index.md",
      "translations": {
        "ar": "https://appvau.lt/ar/tools/png-to-webp/",
        "de": "https://appvau.lt/de/tools/png-to-webp/",
        "en": "https://appvau.lt/tools/png-to-webp/",
        "es": "https://appvau.lt/es/tools/png-to-webp/",
        "fr": "https://appvau.lt/fr/tools/png-to-webp/",
        "it": "https://appvau.lt/it/tools/png-to-webp/",
        "ja": "https://appvau.lt/ja/tools/png-to-webp/",
        "pt-br": "https://appvau.lt/pt-br/tools/png-to-webp/",
        "tr": "https://appvau.lt/tr/tools/png-to-webp/"
      },
      "summary": "Lossless WebP is typically 25-30% smaller than the same PNG with identical pixels. Lossy WebP keeps the alpha channel, which is the thing JPEG cannot do.",
      "accepts": [
        "png",
        "jpeg",
        "webp",
        "avif",
        "gif"
      ],
      "produces": [
        "webp"
      ],
      "runs_in": "browser",
      "requires_account": false,
      "price": 0,
      "uploads_the_file": false,
      "verifies_own_output": "The tool checks that this browser really has a WebP encoder before it starts. A browser without one silently returns a PNG under a .webp name, which is how the wrong bytes end up in a deploy.",
      "limits": [
        "Lossless WebP is smaller than PNG on nearly everything, but not on everything: a small palette image occasionally goes the other way, and the tool reports the increase rather than hiding it.",
        "An animated PNG is read as a single frame.",
        "Safari gained canvas WebP export in version 14; an older browser is told rather than handed a mislabelled file."
      ],
      "questions_answered": [
        "Is WebP better than PNG?",
        "Does WebP support transparency?",
        "What is the difference between lossless and lossy WebP?",
        "Do all browsers support WebP?",
        "Is the file uploaded to convert it?",
        "Will converting lose my metadata?"
      ],
      "related_tools": [
        "webp-to-png",
        "image-compressor",
        "webp-to-jpg"
      ],
      "published": "2026-09-11",
      "updated": "2026-09-11"
    },
    {
      "id": "webp-to-jpg",
      "name": "WebP to JPG converter",
      "category": "image-files",
      "page": "https://appvau.lt/tools/webp-to-jpg/",
      "markdown": "https://appvau.lt/tools/webp-to-jpg/index.md",
      "translations": {
        "ar": "https://appvau.lt/ar/tools/webp-to-jpg/",
        "de": "https://appvau.lt/de/tools/webp-to-jpg/",
        "en": "https://appvau.lt/tools/webp-to-jpg/",
        "es": "https://appvau.lt/es/tools/webp-to-jpg/",
        "fr": "https://appvau.lt/fr/tools/webp-to-jpg/",
        "it": "https://appvau.lt/it/tools/webp-to-jpg/",
        "ja": "https://appvau.lt/ja/tools/webp-to-jpg/",
        "pt-br": "https://appvau.lt/pt-br/tools/webp-to-jpg/",
        "tr": "https://appvau.lt/tr/tools/webp-to-jpg/"
      },
      "summary": "JPEG has no alpha channel, so transparency has to be flattened onto something. The tool detects whether the source actually has transparent pixels and only asks when it matters.",
      "accepts": [
        "webp",
        "png",
        "avif",
        "gif",
        "jpeg"
      ],
      "produces": [
        "jpeg"
      ],
      "runs_in": "browser",
      "requires_account": false,
      "price": 0,
      "uploads_the_file": false,
      "verifies_own_output": null,
      "limits": [
        "JPEG cannot store transparency. Every transparent pixel becomes the background colour you choose, and that is irreversible.",
        "Converting a lossy WebP to JPEG is a second lossy pass. Use a high quality, or keep the WebP where you can.",
        "An animated WebP is converted as its first frame."
      ],
      "questions_answered": [
        "Why would I convert WebP to JPG?",
        "What happens to transparency?",
        "Does converting reduce the quality?",
        "Is the file uploaded?",
        "How do I open a WebP file without converting it?"
      ],
      "related_tools": [
        "webp-to-png",
        "png-to-webp",
        "image-compressor"
      ],
      "published": "2026-09-11",
      "updated": "2026-09-11"
    },
    {
      "id": "webp-to-png",
      "name": "WebP to PNG converter",
      "category": "image-files",
      "page": "https://appvau.lt/tools/webp-to-png/",
      "markdown": "https://appvau.lt/tools/webp-to-png/index.md",
      "translations": {
        "ar": "https://appvau.lt/ar/tools/webp-to-png/",
        "de": "https://appvau.lt/de/tools/webp-to-png/",
        "en": "https://appvau.lt/tools/webp-to-png/",
        "es": "https://appvau.lt/es/tools/webp-to-png/",
        "fr": "https://appvau.lt/fr/tools/webp-to-png/",
        "it": "https://appvau.lt/it/tools/webp-to-png/",
        "ja": "https://appvau.lt/ja/tools/webp-to-png/",
        "pt-br": "https://appvau.lt/pt-br/tools/webp-to-png/",
        "tr": "https://appvau.lt/tr/tools/webp-to-png/"
      },
      "summary": "The safe direction: PNG is lossless, keeps transparency, and is read by everything. The file will usually be larger, and the tool says by how much.",
      "accepts": [
        "webp",
        "jpeg",
        "avif",
        "gif",
        "png"
      ],
      "produces": [
        "png"
      ],
      "runs_in": "browser",
      "requires_account": false,
      "price": 0,
      "uploads_the_file": false,
      "verifies_own_output": null,
      "limits": [
        "The PNG is lossless from the decoded pixels, not from the original camera data. If the WebP was lossy, its compression artefacts are now stored losslessly.",
        "Expect the file to grow, often several times over, because PNG does not discard anything.",
        "An animated WebP is converted as its first frame."
      ],
      "questions_answered": [
        "Does converting WebP to PNG lose quality?",
        "Why is the PNG so much larger?",
        "Is transparency kept?",
        "What is a WebP file?",
        "Is the file uploaded?"
      ],
      "related_tools": [
        "png-to-webp",
        "webp-to-jpg",
        "image-resizer"
      ],
      "published": "2026-09-11",
      "updated": "2026-09-11"
    },
    {
      "id": "hdr-image-converter",
      "name": "Ultra HDR converter",
      "category": "image-files",
      "page": "https://appvau.lt/tools/hdr-image-converter/",
      "markdown": "https://appvau.lt/tools/hdr-image-converter/index.md",
      "translations": {
        "ar": "https://appvau.lt/ar/tools/hdr-image-converter/",
        "de": "https://appvau.lt/de/tools/hdr-image-converter/",
        "en": "https://appvau.lt/tools/hdr-image-converter/",
        "es": "https://appvau.lt/es/tools/hdr-image-converter/",
        "fr": "https://appvau.lt/fr/tools/hdr-image-converter/",
        "it": "https://appvau.lt/it/tools/hdr-image-converter/",
        "ja": "https://appvau.lt/ja/tools/hdr-image-converter/",
        "pt-br": "https://appvau.lt/pt-br/tools/hdr-image-converter/",
        "tr": "https://appvau.lt/tr/tools/hdr-image-converter/"
      },
      "summary": "Produces one file that is an ordinary JPEG to every old viewer and a high-dynamic-range image to a current one. The container is verified byte by byte before it is offered.",
      "accepts": [
        "jpeg",
        "png",
        "webp",
        "avif"
      ],
      "produces": [
        "jpeg"
      ],
      "runs_in": "browser",
      "requires_account": false,
      "price": 0,
      "uploads_the_file": false,
      "verifies_own_output": "The produced file is parsed again: the XMP container must declare both items, the MPF offset must land on a real JPEG start marker, the declared and actual gain-map lengths must match, and the gain map must carry its hdrgm parameters.",
      "limits": [
        "This does not recover detail that was clipped. A blown-out sky is 255 in every channel and there is nothing behind it; the gain map decides how much brighter the highlights that do exist should be rendered.",
        "Whether you see the effect depends on your screen, your operating system and the application. Nothing running in a browser tab can test that, so the tool does not claim to.",
        "A viewer that does not understand gain maps shows the SDR base image, unchanged. That is the format working as designed, not a failure.",
        "The file is roughly 15-30% larger than the plain JPEG of the same picture, which is the gain map."
      ],
      "questions_answered": [
        "What is Ultra HDR?",
        "Can you really convert an SDR photo to HDR?",
        "Where will the effect actually show?",
        "How big is the gain map?",
        "Is my photo uploaded?",
        "Why does the tool only brighten the bright parts?",
        "Is this the same as ISO 21496-1?"
      ],
      "related_tools": [
        "image-brightener",
        "image-compressor",
        "photo-metadata"
      ],
      "published": "2026-09-11",
      "updated": "2026-09-11"
    },
    {
      "id": "qr-code-generator",
      "name": "QR code generator",
      "category": "codes",
      "page": "https://appvau.lt/tools/qr-code-generator/",
      "markdown": "https://appvau.lt/tools/qr-code-generator/index.md",
      "translations": {
        "ar": "https://appvau.lt/ar/tools/qr-code-generator/",
        "de": "https://appvau.lt/de/tools/qr-code-generator/",
        "en": "https://appvau.lt/tools/qr-code-generator/",
        "es": "https://appvau.lt/es/tools/qr-code-generator/",
        "fr": "https://appvau.lt/fr/tools/qr-code-generator/",
        "it": "https://appvau.lt/it/tools/qr-code-generator/",
        "ja": "https://appvau.lt/ja/tools/qr-code-generator/",
        "pt-br": "https://appvau.lt/pt-br/tools/qr-code-generator/",
        "tr": "https://appvau.lt/tr/tools/qr-code-generator/"
      },
      "summary": "Static codes with no redirect, no account and no scan tracking. Both produced files are decoded again from their own pixels before either download unlocks.",
      "accepts": [],
      "produces": [
        "png",
        "svg"
      ],
      "runs_in": "browser",
      "requires_account": false,
      "price": 0,
      "uploads_the_file": false,
      "verifies_own_output": "The PNG and the SVG are both rasterised and read by an independent decoder that recomputes their Reed-Solomon codewords. If either does not return the payload you reviewed, nothing is offered.",
      "limits": [
        "A static code cannot be edited after it is printed. The content is the symbol; changing it means making a new one.",
        "A Wi-Fi QR code stores the password in clear text. Anyone who can see or photograph the code can read it, including from across a room.",
        "Local verification proves the file decodes. It cannot prove that a particular camera, at a particular print size, on a particular surface, will read it — test the real print.",
        "Error correction is redundancy against damage, not a licence to cover the middle with a logo. A covered module is a lost module."
      ],
      "questions_answered": [
        "How do I make a Wi-Fi QR code?",
        "Is a Wi-Fi QR code safe to print and display?",
        "Do QR codes expire?",
        "Should I download the PNG or the SVG?",
        "What does the error-correction level change?",
        "How do I put a contact card in a QR code?",
        "Does this track scans?",
        "Is my URL or Wi-Fi password sent anywhere?",
        "Why does the tool show me the payload before generating?",
        "How much text fits in a QR code?",
        "Can I make a QR code for a PDF?"
      ],
      "related_tools": [
        "photo-metadata",
        "face-blur",
        "image-compressor"
      ],
      "published": "2026-09-11",
      "updated": "2026-09-11"
    }
  ],
  "not_included": [
    "No batch processing. Each tool handles one file, which keeps the memory footprint small enough to work on a phone.",
    "No server-side API for image processing. There is no endpoint on this origin that accepts a file.",
    "No account, no stored history and no gallery. Nothing you open is remembered between visits.",
    "No HEIC decoding outside Safari. Chrome and Firefox have no decoder for it and JavaScript cannot supply one at a sensible size.",
    "No animation is preserved. An animated GIF or WebP is read as its first frame.",
    "No AI upscaling, denoising or generative editing anywhere on the site.",
    "No automatic face detection unless the browser exposes the Shape Detection API; there is no detection service behind the redactor.",
    "No invisible-watermark detection or removal. SynthID-class watermarks live in the pixels and no metadata reader can see them.",
    "No dynamic QR codes, no redirect and no scan tracking. Codes are static and finished on download."
  ],
  "app_datasets": {
    "app": "https://appvau.lt/api/v1/app.json",
    "image_specs": "https://appvau.lt/api/v1/image-specs.json",
    "metadata_fields": "https://appvau.lt/api/v1/metadata-fields.json",
    "qr": "https://appvau.lt/api/v1/qr.json"
  },
  "app_updated": "2026-09-11"
}
