Package: favicons
FaviconsFavicon generator for Python 3 with strongly typed sync & async APIs, CLI, & HTML generation.ChangelogInstallationDocumentationSupported FormatsCLIgeneratehtmljsonnamesPython Sync APIPython Async APIHTMLTupleJSONLicenseInstallationpip3installfaviconsDocumentationMore docs are coming. Remember, this is a work in progress.Supported FormatsSVGPNGJPEGTIFFCLI$favicons--helpUsage: favicons [OPTIONS] COMMAND [ARGS]...Options:--help  Show this message and exit.Commands:generate  Generate Faviconshtml      Get favicons as HTML.json      Get favicons as JSON.names     Get favicon file names.generateGenerate Favicons from the command line:Usage: favicons generate [OPTIONS]Generate FaviconsOptions:--source PATH                    Source Image  [required]--output-directory PATH          Output Directory  [required]--background-color TEXT          Background Color  [default: #000000]--transparent / --no-transparent Transparent Background  [default: True]--base-url TEXT                  Base URL for HTML output  [default: /]--help                           Show this message and exit.htmlGenerate HTML elements (same options asgenerate).jsonGenerate JSON array of favicon objects (same options asgenerate).namesGenerate list of favicon file names (same options asgenerate).Python Sync APIfromfaviconsimportFaviconsYOUR_ICON="/home/user/icon.jpg"WEB_SERVER_ROOT="/var/www/html"withFavicons(YOUR_ICON,WEB_SERVER_ROOT)asfavicons:favicons.generate()foriconinfavicons.filenames():print(icon)# favicon.ico# favicon-16x16.png# favicon-32x32.png# favicon-64x64.png# favicon-96x96.png# favicon-180x180.png# apple-touch-icon-57x57.png# apple-touch-icon-60x60.png# apple-touch-icon-72x72.png# apple-touch-icon-76x76.png# apple-touch-icon-114x114.png# apple-touch-icon-120x120.png# apple-touch-icon-144x144.png# apple-touch-icon-152x152.png# apple-touch-icon-167x167.png# apple-touch-icon-180x180.png# mstile-70x70.png# mstile-270x270.png# mstile-310x310.png# mstile-310x150.png# favicon-196x196.pngPython Async APIfromfaviconsimportFaviconsYOUR_ICON="/home/user/icon.jpg"WEB_SERVER_ROOT="/var/www/html"asyncwithFavicons(YOUR_ICON,WEB_SERVER_ROOT)asfavicons:awaitfavicons.generate()foriconinfavicons.filenames():print(icon)# favicon.ico# favicon-16x16.png# favicon-32x32.png# favicon-64x64.png# favicon-96x96.png# favicon-180x180.png# apple-touch-icon-57x57.png# apple-touch-icon-60x60.png# apple-touch-icon-72x72.png# apple-touch-icon-76x76.png# apple-touch-icon-114x114.png# apple-touch-icon-120x120.png# apple-touch-icon-144x144.png# apple-touch-icon-152x152.png# apple-touch-icon-167x167.png# apple-touch-icon-180x180.png# mstile-70x70.png# mstile-270x270.png# mstile-310x310.png# mstile-310x150.png# favicon-196x196.pngHTMLGet HTML elements for each generated favicon:fromfaviconsimportFaviconsYOUR_ICON="/home/user/icon.jpg"WEB_SERVER_ROOT="/var/www/html"asyncwithFavicons(YOUR_ICON,WEB_SERVER_ROOT)asfavicons:awaitfavicons.generate()# As generatorhtml=favicons.html_gen()# As tuplehtml=favicons.html()print(html)# (#   '<link rel="None" type="image/ico" href="/favicon.ico" />',#   '<link rel="icon" type="image/png" href="/favicon-16x16.png" />',#   '<link rel="icon" type="image/png" href="/favicon-32x32.png" />',#   '<link rel="icon" type="image/png" href="/favicon-64x64.png" />',#   '<link rel="icon" type="image/png" href="/favicon-96x96.png" />',#   '<link rel="icon" type="image/png" href="/favicon-180x180.png" />',#   '<link rel="apple-touch-icon" type="image/png" '#   'href="/apple-touch-icon-57x57.png" />',#   '<link rel="apple-touch-icon" type="image/png" '#   'href="/apple-touch-icon-60x60.png" />',#   '<link rel="apple-touch-icon" type="image/png" '#   'href="/apple-touch-icon-72x72.png" />',#   '<link rel="apple-touch-icon" type="image/png" '#   'href="/apple-touch-icon-76x76.png" />',#   '<link rel="apple-touch-icon" type="image/png" '#   'href="/apple-touch-icon-114x114.png" />',#   '<link rel="apple-touch-icon" type="image/png" '#   'href="/apple-touch-icon-120x120.png" />',#   '<link rel="apple-touch-icon" type="image/png" '#   'href="/apple-touch-icon-144x144.png" />',#   '<link rel="apple-touch-icon" type="image/png" '#   'href="/apple-touch-icon-152x152.png" />',#   '<link rel="apple-touch-icon" type="image/png" '#   'href="/apple-touch-icon-167x167.png" />',#   '<link rel="apple-touch-icon" type="image/png" '#   'href="/apple-touch-icon-180x180.png" />',#   '<link rel="None" type="image/png" href="/mstile-70x70.png" />',#   '<link rel="None" type="image/png" href="/mstile-270x270.png" />',#   '<link rel="None" type="image/png" href="/mstile-310x310.png" />',#   '<link rel="None" type="image/png" href="/mstile-310x150.png" />',#   '<link rel="shortcut icon" type="image/png" href="/favicon-196x196.png" />'# )TupleGet a Python tuple containing each generated favicon's properties:fromfaviconsimportFaviconsYOUR_ICON="/home/user/icon.jpg"WEB_SERVER_ROOT="/var/www/html"asyncwithFavicons(YOUR_ICON,WEB_SERVER_ROOT)asfavicons:awaitfavicons.generate()as_tuple=favicons.formats()print(as_tuple)# (#   {#     'dimensions': (64, 64),#     'image_format': 'ico',#     'prefix': 'favicon',#     'rel': None#   },#   {#     'dimensions': (16, 16),#     'image_format': 'png',#     'prefix': 'favicon',#     'rel': 'icon'#   },#   {#     'dimensions': (32, 32),#     'image_format': 'png',#     'prefix': 'favicon',#     'rel': 'icon'#   },#   {#     'dimensions': (64, 64),#     'image_format': 'png',#     'prefix': 'favicon',#     'rel': 'icon'#   },#   {#     'dimensions': (96, 96),#     'image_format': 'png',#     'prefix': 'favicon',#     'rel': 'icon'#   },#   {#     'dimensions': (180, 180),#     'image_format': 'png',#     'prefix': 'favicon',#     'rel': 'icon'#   },#   {#     'dimensions': (57, 57),#     'image_format': 'png',#     'prefix': 'apple-touch-icon',#     'rel': 'apple-touch-icon'#   },#   {#     'dimensions': (60, 60),#     'image_format': 'png',#     'prefix': 'apple-touch-icon',#     'rel': 'apple-touch-icon'#   },#   {#     'dimensions': (72, 72),#     'image_format': 'png',#     'prefix': 'apple-touch-icon',#     'rel': 'apple-touch-icon'#   },#   {#     'dimensions': (76, 76),#     'image_format': 'png',#     'prefix': 'apple-touch-icon',#     'rel': 'apple-touch-icon'#   },#   {#     'dimensions': (114, 114),#     'image_format': 'png',#     'prefix': 'apple-touch-icon',#     'rel': 'apple-touch-icon'#   },#   {#     'dimensions': (120, 120),#     'image_format': 'png',#     'prefix': 'apple-touch-icon',#     'rel': 'apple-touch-icon'#   },#   {#     'dimensions': (144, 144),#     'image_format': 'png',#     'prefix': 'apple-touch-icon',#     'rel': 'apple-touch-icon'#   },#   {#     'dimensions': (152, 152),#     'image_format': 'png',#     'prefix': 'apple-touch-icon',#     'rel': 'apple-touch-icon'#   },#   {#     'dimensions': (167, 167),#     'image_format': 'png',#     'prefix': 'apple-touch-icon',#     'rel': 'apple-touch-icon'#   },#   {#     'dimensions': (180, 180),#     'image_format': 'png',#     'prefix': 'apple-touch-icon',#     'rel': 'apple-touch-icon'#   },#   {#     'dimensions': (70, 70),#     'image_format': 'png',#     'prefix': 'mstile',#     'rel': None#   },#   {#     'dimensions': (270, 270),#     'image_format': 'png',#     'prefix': 'mstile',#     'rel': None#   },#   {#     'dimensions': (310, 310),#     'image_format': 'png',#     'prefix': 'mstile',#     'rel': None#   },#   {#     'dimensions': (310, 150),#     'image_format': 'png',#     'prefix': 'mstile',#     'rel': None#   },#   {#     'dimensions': (196, 196),#     'image_format': 'png',#     'prefix': 'favicon',#     'rel': 'shortcut icon'#   }# )JSONGet a JSON array containing each generated favicon's properties:fromfaviconsimportFaviconsYOUR_ICON="/home/user/icon.jpg"WEB_SERVER_ROOT="/var/www/html"asyncwithFavicons(YOUR_ICON,WEB_SERVER_ROOT)asfavicons:awaitfavicons.generate()as_json=favicons.json(indent=2)print(as_json)# [#   {#     "image_format": "ico",#     "dimensions": [#       64,#       64#     ],#     "prefix": "favicon",#     "rel": null#   },#   {#     "image_format": "png",#     "dimensions": [#       16,#       16#     ],#     "prefix": "favicon",#     "rel": "icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       32,#       32#     ],#     "prefix": "favicon",#     "rel": "icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       64,#       64#     ],#     "prefix": "favicon",#     "rel": "icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       96,#       96#     ],#     "prefix": "favicon",#     "rel": "icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       180,#       180#     ],#     "prefix": "favicon",#     "rel": "icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       57,#       57#     ],#     "prefix": "apple-touch-icon",#     "rel": "apple-touch-icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       60,#       60#     ],#     "prefix": "apple-touch-icon",#     "rel": "apple-touch-icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       72,#       72#     ],#     "prefix": "apple-touch-icon",#     "rel": "apple-touch-icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       76,#       76#     ],#     "prefix": "apple-touch-icon",#     "rel": "apple-touch-icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       114,#       114#     ],#     "prefix": "apple-touch-icon",#     "rel": "apple-touch-icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       120,#       120#     ],#     "prefix": "apple-touch-icon",#     "rel": "apple-touch-icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       144,#       144#     ],#     "prefix": "apple-touch-icon",#     "rel": "apple-touch-icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       152,#       152#     ],#     "prefix": "apple-touch-icon",#     "rel": "apple-touch-icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       167,#       167#     ],#     "prefix": "apple-touch-icon",#     "rel": "apple-touch-icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       180,#       180#     ],#     "prefix": "apple-touch-icon",#     "rel": "apple-touch-icon"#   },#   {#     "image_format": "png",#     "dimensions": [#       70,#       70#     ],#     "prefix": "mstile",#     "rel": null#   },#   {#     "image_format": "png",#     "dimensions": [#       270,#       270#     ],#     "prefix": "mstile",#     "rel": null#   },#   {#     "image_format": "png",#     "dimensions": [#       310,#       310#     ],#     "prefix": "mstile",#     "rel": null#   },#   {#     "image_format": "png",#     "dimensions": [#       310,#       150#     ],#     "prefix": "mstile",#     "rel": null#   },#   {#     "image_format": "png",#     "dimensions": [#       196,#       196#     ],#     "prefix": "favicon",#     "rel": "shortcut icon"#   }# ]LicenseClear BSD License