Python
import matplotlib.pyplot as plt
import numpy as np

def draw_heart(x_center, y_center, size=0.05, color='red'):
    t = np.linspace(0, 2 * np.pi, 100)
    x = size * 16 * np.sin(t)**3 + x_center
    y = size * (13 * np.cos(t) - 5 * np.cos(2*t) - 2 * np.cos(3*t) - np.cos(4*t)) + y_center
    plt.fill(x, y, color)

fig, ax = plt.subplots(figsize=(6, 6))

head1 = plt.Circle((1, 5), 0.5, color='black', fill=False)
ax.add_patch(head1)
ax.plot([1, 1], [4, 5], 'k-', lw=2)
ax.plot([1, 0.6], [4.5, 4.2], 'k-', lw=2)
ax.plot([1, 1.4], [4.5, 4.2], 'k-', lw=2)
ax.plot([1, 1], [4, 3], 'k-', lw=2)
ax.plot([1, 0.6], [3, 2.5], 'k-', lw=2)
ax.plot([1, 1.4], [3, 2.5], 'k-', lw=2)

draw_heart(0.8, 4.2, size=0.05, color='red')

head2 = plt.Circle((3, 5), 0.5, color='black', fill=False)
ax.add_patch(head2)
ax.plot([3, 3], [4, 5], 'k-', lw=2)
ax.plot([3, 2.6], [4.5, 4.2], 'k-', lw=2)
ax.plot([3, 3.4], [4.5, 4.2], 'k-', lw=2)

ax.plot([3, 2.8], [4, 3], 'k-', lw=2)
ax.plot([3, 3.2], [4, 3], 'k-', lw=2)
ax.plot([2.8, 3.2], [3, 3], 'k-', lw=2)

ax.plot([3, 2.8], [3, 2.5], 'k-', lw=2)
ax.plot([3, 3.2], [3, 2.5], 'k-', lw=2)

draw_heart(2.8, 4.2, size=0.05, color='red')

ax.text(3, 5.8, "I'll love you forever", fontsize=14, ha='center', color='black')

sun = plt.Circle((3.5, 6.5), 0.5, color='yellow', fill=True)
ax.add_patch(sun)

cloud1 = plt.Circle((0.7, 6.5), 0.3, color='lightgrey', fill=True)
cloud2 = plt.Circle((1.0, 6.7), 0.3, color='lightgrey', fill=True)
cloud3 = plt.Circle((1.3, 6.5), 0.3, color='lightgrey', fill=True)
cloud4 = plt.Circle((2.5, 6.3), 0.25, color='lightgrey', fill=True)
cloud5 = plt.Circle((2.7, 6.5), 0.3, color='lightgrey', fill=True)
cloud6 = plt.Circle((3.0, 6.3), 0.25, color='lightgrey', fill=True)
ax.add_patch(cloud1)
ax.add_patch(cloud2)
ax.add_patch(cloud3)
ax.add_patch(cloud4)
ax.add_patch(cloud5)
ax.add_patch(cloud6)

ax.fill_between([0, 4], 0, 1, color='green')

ax.set_xlim(0, 4)
ax.set_ylim(0, 7)
ax.set_aspect('equal')
ax.axis('off')

plt.show()