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.
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)Related files
- vcfMulti-Value Contact - vCard 2.1A fictional contact with repeated typed properties for testing importers that otherwise keep only the first value. This member uses vCard 2.1 syntax.

- vcfMulti-Value Contact - vCard 3.0A fictional contact with repeated typed properties for testing importers that otherwise keep only the first value. This member uses vCard 3.0 syntax.

- vcfMulti-Value Contact - vCard 4.0A fictional contact with repeated typed properties for testing importers that otherwise keep only the first value. This member uses vCard 4.0 syntax.

- vcfOrganization and Address Contact - vCard 2.1A fictional business contact with structured organization and postal-address fields for CRM migration tests. This member uses vCard 2.1 syntax.

- vcfOrganization and Address Contact - vCard 3.0A fictional business contact with structured organization and postal-address fields for CRM migration tests. This member uses vCard 3.0 syntax.

- vcfOrganization and Address Contact - vCard 4.0A fictional business contact with structured organization and postal-address fields for CRM migration tests. This member uses vCard 4.0 syntax.

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