Skip to content
Class that can be used as value object representing a DataUrl (rfc2397)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Class that can be used as value object representing a DataUrl (rfc2397)

  • Parse DataUrl strings
  • Construct DataUrl objects from byte array or string
  • Cross platform, targets .NET Standard 2.0
  • Published as Nuget package

Reading data URL's from string

// From data url string
var dataUrl = new DataUrl("data:image/gif...."); 

// Get content as string

// Get content as string with different encoding

// Get content as base64 encoded string

// Get raw content as byte array

// Get content type

// Get possibly attached parameters as IEnumerable<KeyValuePair<string, string>>

The constructor will throw DataUrlParseException if it's not possible to construct a DataUrl instance from the given string. You can also use DataUrlParser.TryParse if you don't want to deal with exceptions.

if (DataUrlParser.TryParse(dataUrlString, out var parsedDataUrl)) {
    // We could parse a data url

Creating data URL's

// Create from string
var dataUrl = DataUrl.NewDataUrl(jsonString, "application/json");

// Create from image
var bytes = File.ReadAllBytes("C:\\somepath\\picture.png");
var dataUrl = DataUrl.NewDataUrl(bytes, "image/png");

// Create from already base64 encoded string
var dataUrl = DataUrl.NewFromBase64EncodedString(base64EncodedString, "image/png");

// Create a data URL with attached parameters
var parameters = new KeyValuePair<string, string> [] { 
    new KeyValuePair<string, string>("type", "token"), 
    new KeyValuePair<string, string>("authority", "https://...")
var dataUrl = DataUrl.NewDataUrl(
    jwtString, // Can also use a byte array

// When having another encoding other than default
DataUrl.NewDataUrl(myString, "text/plain", Encoding.UTF7);
DataUrl.NewDataUrl(myString, "text/plain", parameters, Encoding.UTF7);
You can’t perform that action at this time.