There are many types of QR code. iirc a single qrcode can contain up to a few kilobytes, but the more data you put in it the more difficult it will be to scan.
so, you could use qrcodes for offline distribution of short text messages or very low resolution images. I think mobile devices' qrcode scanners will display the contents of TEXT type qrcodes, but they probably don't have support for decoding an image from one (so such an app would need to be written). you can create TEXT type qrcodes using the qrencode
tool (packaged in major linux distros) or using websites like https://www.qr-code-generator.com/ (note that I think only their URL and TEXT types are offline; the others upload a file to their servers and make a qrcode containing a URL for it).
This qrcode says "Hello":
This qrcode contains this 88x26 pixel (1467 byte) image:
(created using cat lemmy.png |base64 |qrencode -o lemmy_qr.png
; can be decoded using zbarimg lemmy_qr.png |sed 's/QR-Code://'|base64 -d > output.png
. on debian/ubuntu you can apt install qrencode zbar-tools
to get the two required commands.)