I already had a small canvas, which I painted with a tester pot given to me by another friend who is having her entire house redecorated after a terrible flood (from her water tank rather than river). The colour is described as 'port' - I needed a dark background as I had a bag of white buttons.
Then I drew out a heart shape template which I transferred onto the canvas in pencil. I was going to use my newly acquired glue gun, but it didn't come with any glue sticks, so I reverted to my trusty PVA. Carefully and painstakingly, I positioned the buttons as randomly as I could, varying sizes and opacity (or indeed transparency!) and glued them in place with a dab of PVA applied with a small tip brush.
Once I was happy with the design, I did a quick touch up of the background colour as, inevitably, there where some small traces of glue on the outside of the heart shape.
Left to dry and I'm quite pleased with the result. I guess you could customise the background colour according to the colour scheme of the room...