Scalable Image Formats

In the discussions concerning a visual image of an identity certificate, the image format of choice is a hot topic.

The issuer of the certificate knows what the image should look like but don’t know the type, size and resolution of the screen where it will be displayed. Therefore, what we need is a scalable image format that can render text and graphical elements.

Choosing one image format has however turned out to be a bit problematic.

Only three candidate formats provide the required functionality:
  • PDF, more specifically PDF/A (ISO 19005),which would be a better option than full PDF (ISO 32000) since it removes all interactive content (movies, animations, audio, forms, javascript,etc.) from the document.
    • SVG (Scalable Vector Graphic or its compressed form SVGZ), most likely SVG Tiny 1.1 since that removes things like animation and such you probably don’t want in a signature appearance.
    • VML (Vector Markup Language) which was presented by Microsoft and others as candidate vector graphic standard to W3C in 1998, which lost to SVG.

SVG seems at a first glance to be a very attractive main candidate over PDF, but we have one major problem. Microsoft has decided, as the only player on the market, to turn its back against SVG and go with VML instead, which from the perspective of this project is most unfortunate. This might be the reason why PDF in the end is the only option if we need a format that can be displayed on all platforms.

The current plan is to specify how to use all of these three formats and then let the market decide. It would not be too hard to make the image available in all 3 formats and let the client decide which one to download and use. The image format is identified in the metadata in the certificate, so it is easy to pick the one you prefer. Specifying use of VML must however go into an informative annex as VML is not standardized and since there is no stable reference to the actual specification of the format (that I can find).

If you would have any input that reveals any better solution, I would be extremely interested to hear it.