Skip to content
PixelFerry

Supported formats

PixelFerry reads 23 format families covering 76 file extensions, and writes 8. This is the complete list, including the ones that only work on macOS, and the ones you can read but not write.

Formats PixelFerry can write

Any input can be converted to any of these, with one platform exception: writing HEIC needs macOS. Everything else on this page can be read but not written.

  • JPEG

    Widely supported lossy still-image format.

    Quality 1–100

  • PNG

    Lossless, with an alpha channel. PixelFerry writes 8-bit PNG.

  • WebP

    Lossy or lossless, with alpha and animation. 8-bit only, by design.

    Quality 1–100

  • HEIC / HEIFmacOS only

    Apple's HEIF profile, what an iPhone saves in High Efficiency mode. PixelFerry writes 8-bit HEIC.

    Quality 1–100

  • AVIF

    AV1-based; lossy or lossless, with alpha. PixelFerry writes 8-bit AVIF.

    Quality 1–100

  • TIFF

    Flexible raster container used in print and imaging workflows.

  • GIF

    A 256-colour palette, with animation.

  • ICO

    Windows icon bundles: one file holding several square sizes.

Photos and web

Photos and web: read and write support
FormatReadWriteExtensions and notes
JPEGYesYes.jpg .jpeg .jpe .jfifWidely supported lossy still-image format.No alpha channel. Transparency is flattened onto white on output.
PNGYesYes.pngLossless, with an alpha channel. PixelFerry writes 8-bit PNG.to WebP
WebPYesYes.webpLossy or lossless, with alpha and animation. 8-bit only, by design.to JPG
AVIFYesYes.avifAV1-based; lossy or lossless, with alpha. PixelFerry writes 8-bit AVIF.
HEIC / HEIFYes.heic .heif .hifApple's HEIF profile, what an iPhone saves in High Efficiency mode. PixelFerry writes 8-bit HEIC.Reading works anywhere; writing is macOS-only, because the encode goes through the system `sips` tool.to JPG · to PNG
TIFFYesYes.tiff .tifFlexible raster container used in print and imaging workflows.The container can hold JPEG-compressed data and so is not lossless by definition. PixelFerry writes 8-bit LZW-compressed TIFF, which is.to JPG
GIFYesYes.gifA 256-colour palette, with animation.

Design and documents

Design and documents: read and write support
FormatReadWriteExtensions and notes
SVGYesNo.svgVector artwork, rasterised on conversion.Read only. Output is always a raster image.
PSD / PSBYesNo.psd .psbPhotoshop documents, read via the compatibility composite Photoshop stores.Read only. The bundled decoder reads 8-bit composites and does not consult the document colour mode, so 16-bit fails and CMYK is misread rather than converted. No embedded ICC profile is carried through.to JPG · to PNG
PDFYesNo.pdfRendered to one image per page.Read only, and capped at the first 100 pages.to PNG

Camera RAW

Camera RAW: read and write support
FormatReadWriteExtensions and notes
Camera RAWNo.dng .cr2 .cr3 .crw .nef .nrw .nefx .arw .srf .sr2 .axr .raf .orf .ori .rw2 .pef .srw .dcr .erf .3fr .fff .iiq .mrw .raw .rwl .mos .dxoAdobe DNG plus Canon, Nikon, Sony, Fujifilm, Olympus, Panasonic, Pentax, Samsung, Leica, Hasselblad, Phase One and more.Read only, and demosaiced by macOS ImageIO.to JPG

Specialist and legacy

Specialist and legacy: read and write support
FormatReadWriteExtensions and notes
OpenEXR / Radiance HDRNo.exr .hdr .picHigh dynamic range, tone-mapped to a displayable range on conversion.Read only.
BMP / TGA / SGINo.bmp .dib .tga .sgiLegacy raster formats, usually stored uncompressed though each also defines a run-length-encoded variant.Read only.
ICOYes.icoWindows icon bundles: one file holding several square sizes.The one format whose read and write differ in the opposite direction: reading needs macOS, writing works anywhere.
ICNS / CURNo.icns .curmacOS icon bundles and Windows cursors.Read only. PixelFerry writes ICO, but never ICNS.
GPU texturesNo.dds .pvr .astc .ktx .ktx2Compressed texture containers used by game and graphics pipelines.Read only.
JPEG XLNo.jxlA newer still-image codec from the JPEG committee.Read only.
JPEG 2000No.jp2 .jpf .jpx .j2k .j2cA wavelet-based JPEG committee format, used in archival and cinema work.Read only.
NetPBMNo.pbm .pgm .ppm .pfmSimple raster formats from the Unix imaging world, in ASCII and binary variants, plus the float-valued PFM.Read only.
DICOMNo.dcm .dicomMedical imaging.Read only.
PICTNo.pict .pctClassic Mac OS picture format.Read only.
MPONo.mpoMulti-picture JPEG, used for stereo pairs.Read only. An MPO holds more than one image; the conversion produces a single output.
AVCI / HEICSNo.avci .heicsH.264-in-HEIF stills, and HEIF image sequences.Read only.

Limitations, stated up front

  • 15 families are read but never written

    SVG, PSD / PSB, PDF, Camera RAW, OpenEXR / Radiance HDR, BMP / TGA / SGI, ICNS / CUR, GPU textures, JPEG XL, JPEG 2000, NetPBM, DICOM, PICT, MPO, AVCI / HEICS. PixelFerry converts from them, not to them.

  • Writing HEIC needs macOS

    HEIC / HEIF: the encode goes through the systemsips tool, so it is available on macOS only. Reading HEIC works anywhere.

  • 13 families need macOS to read

    Camera RAW, EXR, BMP, TGA, ICO, JPEG XL, JPEG 2000 and the rest decode through macOS ImageIO. There is no bundled cross-platform loader for them, so off macOS they fail with a clear error rather than pretending to work. ICO is the exception in the other direction: reading it needs macOS, but PixelFerry writes it anywhere.

  • PDFs stop at 100 pages

    Each page of a multi-page document becomes its own image in a folder named after it; a single-page PDF is written as one plain file. Rendering is held in memory, so long documents are capped at the first 100 pages, and the conversion says so rather than truncating silently.More on PDF conversion.

  • PSD files are flattened

    PixelFerry reads the flattened composite Photoshop stores when "Maximize Compatibility" is on. It does not render the layer stack, so a PSD saved without that composite has nothing useful to read. Hidden layers stay hidden. The reader handles 8-bit composites only, so a 16-bit PSD fails rather than converting. It does not consult the document colour mode, so a CMYK PSD is misread rather than converted for screen.The composite is handed to the encoder as bare pixels, so an embedded ICC profile is not carried through.More on PSD conversion.

  • JPEG output flattens transparency onto white

    JPEG has no alpha channel. White is used rather than the black the underlying encoder defaults to, which is what you want for a photo and not what you want for a logo. For those, target PNG, WebP or AVIF.

  • Animation is conditional

    Animated GIF and WebP keep every frame when the output is GIF or WebP, the only two animated formats PixelFerry writes. Anything else, including AVIF, gets the first frame, and so does any conversion with whitespace trim enabled. The row says so rather than dropping frames silently.

Requirements

macOS 14 (Sonoma) or later, on Apple silicon and Intel. macOS only, because the project declares a macOS build target alone. Cross-platform code paths exist and are unit-tested, but no Windows or Linux build is produced or signed by this project, so neither is offered rather than promised untested.

The read/write columns above distinguish what the conversion engine can do from what needs macOS specifically, because the cross-platform code paths remain in the app even though only the macOS build ships.