Another +1 for BMP/raw formats. In terms of implementation difficulty, BMP is very simple compared to PNG, so if you can save out PNGs (or work with something extremely complicated like PSDs), you should have very few issues supporting BMP. Essentially, just write the image stored in memory into a file, bypassing any encoders and compressors, with a simple header attached on the top. The simplicity of the format is mainly the reason why the BMP still exists to this day. It is easy to support on systems with limited resources because the file can be loaded (more or less) directly into memory for a display routine without any decoding (assuming RLE is not used). Compressed formats make a tradeoff between size and complexity/speed, and some use cases value reducing the complexity more than reducing the size. For example, installers and other simple programs applications don't want to add a lot of complexity to display a single small image. More advanced programs also target simple file formats if they are swapping around many images under strict time requirements. Many high-performance, real-time graphics applications are critically dependent on speed, which would be the case game engines and other real-time tools. It was a surprise to find that Affinity does not support such a simple format. To make a parallel with other applications, this would be like an audio player/editor that can play/export MP3s and OGGs, but not WAVs. Or a text editor that can save and load RTFs and DOCs, but not TXTs. Or a spreadsheet program that can work with XLSs, but not CSVs. One would expect any professional-grade application to support common file formats, both simple and complex.