php-initial-avatar-generator

Generate initials-based avatar images in PHP as PNG or SVG, with full control over colors, fonts, sizing, and shape.

Library
Composer
v4.5
439stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
45/100Fair
Development Activity0
Maintenance32
Community68
Maturity60
Momentum20

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
78/100Good
Architecture70
Code Quality72
Innovation78
Learning Curve90

php-initial-avatar-generator is a PHP library that turns a person’s name into a clean avatar image showing their initials, the kind of placeholder profile picture seen across modern web apps. Call it with a name and it returns an Intervention Image instance you can stream, encode, or save, and a fluent API lets you tune background and font colors, dimensions, rounding, font files, and initial length.

Beyond raster output via the GD or Imagick driver, it can emit scalable SVG markup and supports automatic font selection for non-Latin scripts including Arabic, Hebrew, Chinese, Thai, and more. Auto-color derives a stable, contrasting palette from each name, and FontAwesome glyphs can be rendered in place of initials.

What You Get

  • A fluent InitialAvatar builder that converts names into initials automatically
  • PNG/raster output via the GD or Imagick driver, plus scalable SVG generation
  • Fine-grained control over colors, dimensions, rounding, fonts, and initial length
  • Auto-color and auto-font helpers, including bundled fonts for many non-Latin scripts
  • FontAwesome glyph rendering as an alternative to text initials

Common Use Cases

  • Rendering placeholder profile pictures for users without an uploaded avatar
  • Generating consistent, color-coded identity badges from names across an app
  • Serving lightweight SVG avatars inline in HTML or emails
  • Producing avatars for names in non-Latin scripts using automatic font detection

Under The Hood

Architecture - The package centers on a single ~985-line InitialAvatar class in src/InitialAvatar.php that holds all rendering state (name, colors, dimensions, driver, font, rounding) as protected properties and exposes fluent setters returning $this. name() delegates initials extraction to lasserafn/php-initials, generate() builds a raster image through an Intervention ImageManager configured for the GD or Imagick driver, while generateSvg() constructs an SVG tree with meyfa/php-svg nodes; a small Translator hierarchy (Base/En/Tr/ZhCN) plus php-string-script-language drive auto-font script detection. Tech Stack - Pure PHP supporting 7.0 through 8.2, requiring ext-json and depending on intervention/image ^2.3 for raster output, meyfa/php-svg ^0.9 for vectors, lasserafn/php-initials, lasserafn/php-string-script-language, and overtrue/pinyin for CJK handling. Bundled Noto and Open Sans font files plus FontAwesome 5 OTFs ship inside src/fonts. Development uses phpunit ^8.5 and StyleCI for formatting. Code Quality - The codebase is compact and readable with PSR-4 autoloading and docblock-annotated methods, though nearly all logic lives in one large class. A tests/ suite exercises generation, initials limiting, image sizing, parameters, auto-color, and script-language detection via PHPUnit, and CI runs on GitHub Actions, giving reasonable coverage of the public surface. API Design - The fluent single-entry API is highly ergonomic: new InitialAvatar() then chain name/color/size/font/rounded and call generate() or generateSvg(). Sensible defaults (48x48, JD initials, muted palette) mean zero-config usage works immediately, method names read naturally, and the README documents every parameter with examples, keeping the learning curve very low.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search