Skip to content
Novus Examples
vcf454 B

Embedded-Photo Contact - vCard 4.0

A fictional contact carrying the same tiny portrait in the version-specific photo syntax used by vCard 2.1, 3.0 and 4.0. This member uses vCard 4.0 syntax.

Preview — first 12 linesvcf
BEGIN:VCARD
VERSION:4.0
N:Okafor;Nia;;;
FN:Nia Okafor
EMAIL;INTERNET:nia.okafor@example.com
PHOTO:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8
 GO2jAAAAq0lEQVR42mPkF9dioCVgYqAxGPoWsBCp7sOLq2giAhLaxGhkJBjJmEaTZA0
 +C5CNFtzVhCb73q2OGGtwWgA3HdNorNbgsoOJEtORFeAKSSZiNBNpB7EWQNxCpOnIdm
 D1BN0zGhnOx++J0bJoBFoAyfHI5QyRAKIFs8AYiCAiwxO4nE/AB0TagV8ZE/5qhHh/k
 FZcE18jElTMhF8bMdbgVzOak0eABYxDvnUNAENgPbr4U7EZAAAAAElFTkSuQmCC
END:VCARD

Specifications

Format
vCard 4.0
Contacts
1
Display Name
Nia Okafor
Fields
FN, N, EMAIL, PHOTO
Line Endings
CRLF

Testing contract

Expected to pass
Scenario
Import Nia Okafor from the vCard 4.0 member and compare normalized fields across the three-file group.
Expected result
Decode one PNG photo whose SHA-256 is 8ded2118d680ec85936f06821eb441ee7d97a6da9372e531ccc5391ca0d1bf46 and dimensions are 32x32 pixels.

What is a .vcf file?

VCF (vCard) is a plain-text format for electronic business cards, storing contact details like names, phone numbers, emails, and addresses as property lines within BEGIN and END VCARD blocks. Multiple vCards can be concatenated in one file. It is the standard for contact exchange across devices.

How to use this file

Use an example VCF to test contact import, multi-card parsing, property and encoding handling, and interoperability between address-book applications.

How to use this file for testing

“Embedded-Photo Contact - vCard 4.0” is a deterministic Novus Examples fixture for Contact parsing, Conversion testing. vCard (.vcf) contact files with names, emails, phones, and addresses — for testing contact importers.

Documented properties for this file: CRLF · vCard 4.0. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Data fixtures document their exact quirks — delimiters, encodings, null handling, schema, and row counts — in the spec table. Point your parser or importer at the file and assert it handles the documented edge cases; clean and deliberately-messy siblings make before/after diffs straightforward.

Code examples

import vobject  # pip install vobject

for card in vobject.readComponents(open("photo-vcard-4-0.vcf").read()):
    print(card.fn.value)

Generated by generation/p6_core.py. Free for any use, no attribution required — license.