A comprehensive .NET emoji library providing 4,098 fully-qualified emojis organized into 10 major groups with detailed metadata and save as image support.
[64x64] | [128x128] | [512x512]
- โ 4,098 Fully-Qualified Emojis - Complete Unicode emoji set
- ๐ฆ 10 Major Groups - Organized into logical categories (Smileys, People, Animals, Food, Travel, Activities, Objects, Symbols, Flags, Basic Latin)
- ๐ผ๏ธ Built-in PNG Images - 16x16 to 512x512 color PNG images for each emoji
- ๐ Rich Metadata - Name, group, subgroup, version, code points, and more
- ๐จ Cross-Platform - Works with Console, WinForms, WPF, and more
- ๐พ Save to Disk - Export emojis as PNG files using SkiaSharp
- ๐ Skin Tone Support - Full support for skin tone variations
- โก Multi-Targeting - Supports .NET Standard 2.0/2.1, .NET Framework 4.7.1-4.8.1, and .NET 8-10
dotnet add package Chizl.EmojiLive
using Chizl.EmojiLive;
// Access an emoji
Emoji emoji = EmojiActivities.JackOLantern;
// Display in console
Console.WriteLine($"[{emoji}] {emoji.Name}");
// Output: [๐] Jack-O-Lantern
// Get detailed information
Console.WriteLine($"Group: {emoji.Group}");
Console.WriteLine($"Subgroup: {emoji.SubGroup}");
Console.WriteLine($"Version: {emoji.Version}");
Console.WriteLine($"Code Points: {emoji.CodePoints}");// Get the emoji as a byte array (PNG format)
// 64 = image size (16, 32, 64, 128, 256, 512)
// 2 = shrink factor (1, 2, 4, 8, 16, 32)
// Some emojis may not scale correctly. Default shrink factor is 2.
// Increase shrink factor until image fits correctly. (e.g. ClownFace is 16)
byte[] pngBytes = emoji.EmojiPngImage(64, 2);
// Save to disk using SkiaSharp
using (MemoryStream ms = new MemoryStream(imgBytes))
{
using (var strImg = Image.FromStream(ms))
strImg.Save(_fileName, ImageFormat.Png);
}// Save emoji to disk emoji.SaveEmoji( fullPath: @"C:\MyEmojis", fileName: "pumpkin", // Optional - defaults to emoji name imageFormat: SKEncodedImageFormat.Png, overWrite: true );
### Display Defining Properties
```csharp
Emoji emoji = EmojiSmileys.GrinningFace;
Console.WriteLine($"Character: {emoji.EmojiCharacter}");
Console.WriteLine($"Display Width: {emoji.EmojiDisplayWidth}");
Console.WriteLine($"String Length: {emoji.Length}");
Console.WriteLine($"Fully Qualified: {emoji.FullyQualified}");
Console.WriteLine($"Uses ZWJ: {emoji.UsesZWJ}");
Console.WriteLine($"Uses Variation Selector: {emoji.UsesVariationSelector}");
| Property | Type | Description |
|---|---|---|
Group |
string |
Emoji group (e.g., "Smileys & Emotion") |
SubGroup |
string |
Emoji subgroup (e.g., "face-smiling") |
Name |
string |
Clean emoji name (used as resource name) |
FullName |
string |
Official Unicode name |
Version |
string |
Unicode version (e.g., "E0.6") |
CodePoints |
string |
All emoji code points |
UnqualifiedCodePoints |
string |
Shortest unqualified code points |
EmojiPngImage |
byte[] |
16x16->512x512 PNG image as byte array |
EmojiDisplayWidth |
int |
Actual width on screen |
EmojiCharacter |
string |
Unicode character representation |
UnqualifiedEmojiCharacter |
string |
Shortest unqualified character |
UTF32Codes |
int[] |
Array of decimal values for each byte |
Length |
int |
String length |
ByteFlags |
ByteFlag[] |
Flags for each byte |
FullyQualified |
bool |
Unicode qualification status |
HasError |
bool |
Error flag status |
HasUnqualifiedCharacter |
bool |
Conversion failure indicator |
UsesZWJ |
bool |
Uses Zero Width Joiner (U+200D) |
UsesVariationSelector |
bool |
Uses Variation Selector-16 (U+FE0F) |
UsesKeycapCombiner |
bool |
Uses Keycap Combining (U+20E3) |
IsSingleCodepoint |
bool |
Single Unicode code point |
CanRendersAsImage |
bool |
Platform image rendering support |
| Class | Emoji Count | Description |
|---|---|---|
EmojiBasicLatin |
317 | Basic Latin characters and symbols |
EmojiSmileys |
169 | Smileys and emotions |
EmojiPeopleBody |
2,261 | People, body parts, and gestures |
EmojiAnimalsNature |
159 | Animals and nature |
EmojiFoodDrink |
131 | Food and beverages |
EmojiTravelPlaces |
218 | Travel and places |
EmojiActivities |
85 | Activities and events |
EmojiObjects |
264 | Objects and tools |
EmojiSymbols |
224 | Symbols and signs |
EmojiFlags |
270 | Country and subdivision flags |
// Access food emojis
Emoji pizza = EmojiFoodDrink.Pizza;
Emoji burger = EmojiFoodDrink.Hamburger;
Emoji taco = EmojiFoodDrink.Taco;
// Access people emojis with skin tones
Emoji wave = EmojiPeopleBody.WavingHand;
Emoji waveDark = EmojiPeopleBody.WavingHandDarkSkinTone;
// Access flags
Emoji usFlag = EmojiFlags.FlagUnitedStates;
Emoji japanFlag = EmojiFlags.FlagJapan;Save emojis to disk with flexible options:
emoji.SaveEmoji(
fullPath: @"C:\MyImages",
fileName: "custom-name", // Optional - defaults to emoji name
imageFormat: SKEncodedImageFormat.Png, // PNG, JPEG, WEBP, etc.
overWrite: true); // Default: trueSupported Image Formats:
- PNG (default)
- JPEG
- WEBP
- BMP
- GIF
- ICO
- WBMP
Not all emoji features are perfectly represented based on your OS, icu.dll, icuuc.dll, or icuin.dll versions. If any image is not rendering correctly, please create an issue with details about your environment and the specific emoji(s) affected and we will investigate.
- Skin Tone Variations: Some skin tone combinations may not render correctly in PNG
- Complex Emojis: Family emojis (e.g., ๐ฉโ๐ฉโ๐งโ๐ง) may only show partial characters in PNG
- Recommendation: Use
EmojiCharacterproperty for console output or label display with emoji fonts for best results
- Console applications show full unicode characters including tones
- WinForms labels support emoji fonts with correct foreground color
- Some emojis may appear differently across operating systems
Emoji rocket = EmojiTravelPlaces.Rocket;
Console.WriteLine($"Launching {rocket.EmojiCharacter} {rocket.Name}!");// Display emoji in a label with emoji font
label.Text = emoji.EmojiCharacter;
label.Font = new Font("Segoe UI Emoji", 48);var foodEmojis = new[] { EmojiFoodDrink.Pizza, EmojiFoodDrink.Hamburger, EmojiFoodDrink.Taco, EmojiFoodDrink.Sushi };
foreach (var emoji in foodEmojis)
emoji.SaveEmoji(@"C:\FoodEmojis", imageFormat: SKEncodedImageFormat.Png); - .NET Standard 2.0
- .NET Standard 2.1
- .NET Framework 4.7.1
- .NET Framework 4.7.2
- .NET Framework 4.8
- .NET Framework 4.8.1
- .NET 8.0
- .NET 9.0
- .NET 10.0
- SkiaSharp - Cross-platform 2D graphics library for image rendering and saving.
- SkiaSharp.HarfBuzz - Text shaping library for advanced text rendering complex emojis.
All emoji data is auto-generated from official Unicode specifications and maintained by Chizl's internal tooling.
Explore the included demo projects in the /demos/ folder:
- Console Demo (.NET 8.0):
.\demos\ConsoleDemo\ - WinForms Demo (.NET Framework 4.8.1):
.\demos\Framework48FormsDemo\
This project is licensed under the terms specified in the LICENSE.md file.
This project includes data derived from Unicodeยฎ Emoji data files.
See THIRD-PARTY-NOTICES.txt for full attribution and license details.
Contributions are welcome! Please feel free to submit issues or pull requests.
For questions or support, please visit www.chizl.com
Note: Emoji rendering may vary based on operating system version, Unicode library version, and installed fonts. The library was developed and tested on Windows 11 using Visual Studio 2022 Professional.