get_theme_mod is returning a number rather than my image file

get_theme_mod is not returning the HTML code for an image and it’s not returning URL of that image. So what is that number? It’s the ID of selected attachment.

This way you can decide how to use the selected value. So how to display the image?

If you want to print the image, you can do this:

if ( get_theme_mod( 'hbps_blog_overlay_logo' ) > 0 ) { 
    echo wp_get_attachment_image( get_theme_mod( 'hbps_blog_overlay_logo' ), 'full' ); 
}

And to display only the URL of that file:

if ( get_theme_mod( 'hbps_blog_overlay_logo' ) > 0 ) { 
    echo wp_get_attachment_image_url( get_theme_mod( 'hbps_blog_overlay_logo' ), 'full' ); 
}