Uri.dataFromBytes constructor

Uri.dataFromBytes(
  1. List<int> bytes,
  2. {String mimeType = "application/octet-stream",
  3. Map<String, String>? parameters,
  4. bool percentEncoded = false}
)

Creates a data: URI containing an encoding of bytes.

Defaults to Base64 encoding the bytes, but if percentEncoded is true, the bytes will instead be percent encoded (any non-ASCII or non-valid-ASCII-character byte is replaced by a percent encoding).

To read the bytes back, use UriData.contentAsBytes.

It defaults to having the mime-type application/octet-stream. The mimeType and parameters are added to the created URI. If any of these contain characters that are not allowed in the data URI, the character is percent-escaped. If the character is non-ASCII, it is first UTF-8 encoded and then the bytes are percent encoded.

Example:

final uri = Uri.dataFromBytes([68, 97, 114, 116]);
print(uri); // data:application/octet-stream;base64,RGFydA==

Implementation

factory Uri.dataFromBytes(List<int> bytes,
    {String mimeType = "application/octet-stream",
    Map<String, String>? parameters,
    bool percentEncoded = false}) {
  UriData data = UriData.fromBytes(bytes,
      mimeType: mimeType,
      parameters: parameters,
      percentEncoded: percentEncoded);
  return data.uri;
}