uses image gradient for smoother effect