Extract images from KRA, on your device. Nothing ever uploads.

Drop up to 20 KRA files below — get the flattened canvas, the preview and every layer image out byte-for-byte, exactly as stored. Download each image, or all of them as a ZIP.

  • Your file data never leaves the device
  • KRA + .kra~ + .krz, layer order
  • Batch up to 20 files + ZIP
  • Original filenames, sequential ZIP names

Extract images from KRA files

Add your KRA files

Drag & drop KRA files here

or browse your files · you can also paste from clipboard (Ctrl+V)

A KRA is a ZIP package of Krita XML and layer data — read on this device with JSZip, images returned in layer order from maindoc.xml, and mimetype, maindoc.xml, documentinfo.xml, colour profiles, paint-layer tile data and macOS entries skipped. Every image downloads byte-for-byte, exactly as stored — no re-encoding, no quality loss. Paint layers are stored as binary tile data, not images, so they are listed instead of extracted — only Krita can render them. EMF, WMF, HEIC and TIFF images cannot be previewed in most browsers, so they show a “preview unavailable” note — they still download byte-for-byte. SVG images are extracted as-is; their preview may not render in some browsers. PSD, XCF, DOCX/XLSX/PPTX files, PDFs and CBZ/CBR archives are refused with a pointer at the right tool or fix; .kra~ backups and .krz files extract the same way as .kra files.

    No files yet. Everything stays on this device. Downloads start instantly.

    Privacy you can verify, not just trust

    Most online KRA tools upload your files to their servers first — and some keep a download link live for 30 days, or cap free conversions at a few per month. This one can't: each image is pulled out of your file bytes entirely in your browser. Your file data never leaves the device — the only third-party requests are the site's own analytics, which count page views — and it uploads nothing, ever. There is no file fetched after load for the extraction itself. Don't take our word for it:

    New cross-origin requests during use: 0
    1. Press F12 to open developer tools, then the Network tab.
    2. Extract any file above. Watch: apart from the site's analytics, nothing new is requested — no uploads, and no file data ever leaves your device.
    3. Extra credit: disconnect your internet after this page loads — extraction still works.

    How to extract images from a KRA without uploading it

    Every "free" online KRA tool you've used uploads your file to a company server, extracts it there, and — in several documented cases — keeps a copy or a live download link for days, or limits free users to a few conversions a month. For artwork you drew, were sent in confidence, or simply wouldn't post publicly, that's an unnecessary risk. The safer approach is to extract the file where it already is: on your own device.

    This tool does exactly that. When you drop a KRA here, your browser:

    1. Checks the file is really a KRA file — by its magic bytes, not its name — so a JPEG renamed .kra is refused with a clear message, a PSD renamed .kra is refused with a note to open it in Krita, a CBZ or plain .zip renamed .kra is refused with a pointer at the CBZ tools, a PDF renamed .kra is refused with a pointer at the Extract Images from PDF tool, a DOCX renamed .kra is refused with a pointer at the Extract Images from DOCX tool, an XLSX renamed .kra is refused with a pointer at the Extract Images from XLSX tool, a PPTX renamed .kra is refused with a note that it is a presentation, an OpenRaster .ora file is refused as a different layered format, and a password-protected archive is refused with an explanation instead of a cryptic error. A real KRA saved with the wrong extension still extracts, and .kra~ backups and .krz files are read the same way.
    2. Reads the file's own structure and pulls the images in layer order — maindoc.xml lists the layers in the same order as the layer stack, each with its stored filename, so the merged image comes first, then the preview, then the layer images in layer order. mimetype, maindoc.xml, documentinfo.xml, colour profiles, paint-layer tile data and macOS entries are skipped, and everything skipped is listed on the file card.
    3. Hands you the originals — download one image and it keeps its original filename (shape layers download under the layer's own name, since Krita stores every shape layer as content.svg); download the file as a ZIP and every image is renamed image-01, image-02 and so on in layer order. Nothing is re-encoded, rasterized or resized at any point: the bytes you download are the bytes that were stored in the file.

    What makes this extractor different

    Most pages that top the results for this search convert on a server, or handle one file at a time with no previews — instead of handing you the images themselves. The desktop options are installs, not browser tools. This page does the simpler job, and does it fully in the browser: no upload, no monthly cap, no account, no 10 MB limit, a batch of 20 files, KRA plus .kra~ backups and .krz files, layer order with unreferenced images labelled, original filenames on per-image downloads, sequential names in the ZIP, and a live network-request counter so you can verify the privacy claim yourself.

    Honest limitations

    Verbatim means verbatim — no quality recovery

    JPEG throws away detail when it compresses, and extracting cannot put it back. But nothing is lost either: the source bytes download unchanged, in every format. There is no quality setting because there is nothing to re-encode.

    Paint layers are not images

    A paint layer's stored file is a binary tile file — a “VERSION 2” header and tiles of raw pixels — not a PNG or JPEG, so no tool outside Krita can turn one into an image. Those layers are listed on the file card instead of extracted. Only Krita can render them; open the file in Krita and export from there if you need a single paint layer as a picture.

    Metadata stays in the files

    Extraction copies the stored bytes, so EXIF and other metadata inside each image is kept — including location data, if the image has any. The file's own package parts and properties are skipped, and listed on the card, but the images themselves are untouched. Strip metadata yourself before sharing an image publicly.

    The merged image is a snapshot at save time

    mergedimage.png is the flattened render Krita saved when the file was last saved — not a live re-render. If the file was edited after its last save without saving, the merged image shows the older state. A .krz file stores no merged image at all.

    No editable layer stack, no text, no file layers

    Extraction cannot restore the editable layer stack — only Krita reassembles that. This tool pulls out images only: it does not extract the document's text, and file layers (which point at images on the artist's own disk) have nothing stored in the package to extract.

    Layer order, when the file cooperates

    Layer order comes from maindoc.xml and each layer's stored filename. If a file's maindoc.xml lists no layers, or names a layer file the package does not hold, the images fall to stored order with a warning on the card — they still come out byte-for-byte. Unreferenced images are listed last as Unreferenced.

    Frequently asked questions

    Do my files upload anywhere?

    No. Your KRA files are extracted entirely in your browser — your file data never leaves the device, and the only third-party requests are the site's own analytics, which count page views. You can verify it yourself with the network-request counter in the privacy section below the extractor.

    What is a KRA file, and how do I open one without Krita?

    A KRA file is a Krita document — the working file of Krita, the free and open-source painting program — holding layers, masks, vector shapes and settings in a ZIP package. Krita itself is the only program that restores the full layer stack, but you do not need it just to see or reuse the artwork: this page pulls mergedimage.png, the flattened render Krita stores inside every .kra, plus the preview thumbnail and any vector-layer SVGs, entirely on your device.

    Can I get each layer out as a separate image?

    Only partly — and this page is honest about which part. Paint layers are stored inside a .kra as binary tile data, not as images, so no tool outside Krita can turn one into a PNG; those layers are listed on the file card instead of extracted. What does come out as images: mergedimage.png (the whole canvas flattened), preview.png (the small thumbnail) and every vector shape layer as its content.svg. A layer file whose bytes actually are an image also extracts as one.

    What is mergedimage.png?

    It is the flattened render of the whole canvas that Krita saves inside every .kra file at save time — the picture as you see it on the canvas, all layers merged. It is always in RGBA (or grayscale for grayscale documents), and it is the first image this page hands you, labelled “Merged image — flattened canvas”. A .krz file stores no mergedimage.png, so a .krz gives you its layers and preview instead.

    Can I extract images from a .kra~ backup file?

    Yes. A .kra~ file is Krita's backup of the save before last — a complete KRA package under a backup name — so it extracts exactly like a .kra: merged image, preview and layer images, byte-for-byte. Work on a copy, not the original, so the next save cannot overwrite the backup you are trying to inspect.

    What about a .krz file?

    A .krz is the same Krita package with compression always on and no mergedimage.png inside, made for finished work you only need to store. It extracts here the same way — its preview and layer images come out byte-for-byte — but there is no flattened canvas image to hand you, and if its layers are all paint layers (binary tile data), the file may hold no readable images at all. Open it in Krita and export the artwork from there in that case.

    Are the images re-encoded, or do I get the originals?

    You get the originals. Every image downloads byte-for-byte exactly as stored in the file — no re-encoding, no rasterization, no quality setting, no quality loss. Per-image downloads keep the original filename (shape layers download under the layer's own name, since Krita stores every shape layer as content.svg); ZIP downloads use sequential names (image-01.png, image-02.jpg, …) in layer order.

    What should I do with a DOCX, XLSX, PPTX or PSD file?

    A DOCX is a Word document, an XLSX is an Excel workbook and a PPTX is a PowerPoint presentation — all three are ZIP archives like a KRA, but with a different layout, so this page refuses them. For a DOCX, use the Extract Images from DOCX tool, which reads Word documents the same way this page reads Krita files. For an XLSX, use the Extract Images from XLSX tool. A PSD is a Photoshop document, not a ZIP at all — Krita can open PSD files itself, so open it in Krita and export from there.

    Does extraction keep metadata like EXIF location data?

    Yes. Extraction is verbatim, so EXIF and other metadata inside each image is kept — including location data, if the image has any. The file's own package parts and properties are skipped and listed on the card, but the images themselves are untouched. Strip metadata yourself before sharing an image publicly.