To get even more meta. LXMF from Reticulum project can transfer encrypted messages in QR codes. Maximum capacity of byte data (version 40) of QR code is 2953 bytes. So you can encode a picture, even two in a single QR code, or have better error correction. You can encode a medium quality picture in an encrypted QR code, stick it to a wall somewhere and only the recipient can read it.

The same with voice messages, both over LORA and QR codes!

The downside is that the endpoint needs to be able to process this AI models. On older smartphones this is going to be slow.