Dependería un poco en las características, pero la idea última suele ser la más generalizada.
Guardar las imágenes en una base de datos, sobrecargarías la base de datos y cuando tuvieras unos cuantos gigas guardados empezará a funcionar lentamente (dependería de las búsquedas y la indexación), por lo que no suele ser buena idea (salvo en casos muy concretos, recuerda que esto siempre depende de las necesidades).
Lo mejor es guardar las imágenes en el sistema de archivos en directorios por usuarios, donde es muy importante que cada usuarios solo tenga acceso a su directorio y nada más (siempre que las imágenes sean privadas para cada usuario, porque sino se estaría provocando accesos de información a usuarios no deseados). Y en la base de datos guardes por ejemplo una tabla con los usuarios y otra con las rutas donde están las imágenes relacionadas con cada usuario a la que le pertenece.
Como quieres compartir imágenes de memes, si por ejemplo las imágenes son privadas para cada usuario hasta que pulse un botón compartir, aquí ya guardarías otra relación en la base de datos con los permisos para esa imagen en concreto (por ejemplo, que sea pública para todos o que solo se comparta con ciertos usuarios); y como siempre con precaución con qué información es privada y cuál no.
Espero que te sirva.
Un saludo.