In Photoshop, with your original picture open, do the following:
1. Press U to open the shape tool. Click the small arrow at the bottom right of the tool to get to the Custom Shape Tool (looks like a sea star).
2. At the top click the Fill Pixels icon (third one). Also at the top, click the small arrow next to the Shape dialog box to find the ready made heart shape.
3. In the Layers Panel, duplicate your original picture layer and create a new blank layer.
4. Click and drag on the blank layer to create the heart shape you want over the area you want.
5. Press W for the Magic Wand Tool and then click on the heart shape,
6. In the Layers Panel, select your duplicate picture layer.
7. CTRL + Shift + I , then CTRL + X
8. In the Layers Panel again, click the eyeball next to the upper heart layer and your original picture layer.
9. Now you should see a heart shape with your picture inside.
Good luck.