There’s actually 2 ways of doing this: the first, and imho the less good looking one, is to overlay a semi-trasparent image to qrcode; the second is to put an image directly alongside qrcode “bits”.
As explained here qrcode standard “allows up to 30% deterioration” (you should set it up during generation). Keeping that in mind you can put anything inside the generated qrcode.
If you use a vector-enabled graphic suite you can generate qrcode here to get a easly editable file.
Here’s an example…