Giter Club home page Giter Club logo

ficonic's Introduction

ficonic

Utility for retrieving favicons and other site-related icons for a given URL

Description

The immediate purpose of ficonic is to enable download of all icons provided for identifying a site at a given URL. This allows the user to select the icon best suited for the medium through which they intend to identify the site. The longer term goal is to provide a library for loading data for all of the aforementioned icons into a C++ application for manipulation and/or use as needed.

ficonic downloads favicon.ico and apple-touch-icon.png files where found in the site's root directory and any icons identified in HTML link tags having recognized rel values.

Any properly formatted .ico files are split into their contained icons and saved in as both .bmp and .png format files. Therefore, if a .ico file contains three different sized icons, for example, ficonic will save seven icons for the one file: three .bmp files, three .png files, and a copy of the original .ico file. An attempt is made to determine the actual format of an improperly formatted .ico file, e.g. where a .png file has simply been renamed favicon.ico. If successful, the icon is saved in that format with the proper extension.

The icons are saved to a user-specified directory.

Run ficonic -h for usage information.

Dependencies

The following libraries are required:

  • Boost version 1.32 or better
  • Boost-Program-Options
  • curl
  • Magick++ version 6 (C++ Bindings library for ImageMagick)
  • htmlcxx

To Do

(in no particular order...)

  • Handle HTML meta tags referring to Microsoft tiles.
  • Handle Progressive Web App manifests referring to icons.
  • Resolve build warnings about MAGICKCORE_QUANTUM_DEPTH and MAGICKCORE_HDRI_ENABLE.
  • Enable use of $HOME and ~ to refer to the home directory in specifying the icon storage directory path.
  • Add user-friendly error messages for missing required arguments.
  • Update help information to indicate what arguments are required.
  • Clean up console output to improve usability.
  • Handle .gif icon files.
  • Add error handling to skip unsupported file types.
  • Create and save icons to a different directory for each URL from which icons are retrieved.

ficonic's People

Contributors

dfyockey avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.