Google doesn't penalise the page if you use an img tag with "display: none".
Google should still index the image if you use it as part of your CSS, but you can ensure that Google relates it to a specific page with an image sitemap.
Images are added to a sitemap using
<?xml version="1.0" encoding="UTF-8"?>
For more information about image sitemaps, see: