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:
- 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.
- 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.
- 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.