image-js
Version:
Image processing and manipulation in JavaScript
26 lines (23 loc) • 741 B
text/typescript
import { encode as uint8encode } from 'uint8-base64';
import type { Image } from '../Image.js';
import type {
EncodeOptionsBmp,
EncodeOptionsJpeg,
EncodeOptionsPng,
} from './encode.js';
import { defaultPng, encode } from './encode.js';
/**
* Converts image into Data URL string.
* @param image - Image to get base64 encoding from.
* @param options - Encoding options.
* @returns base64 string.
*/
export function encodeDataURL(
image: Image,
options: EncodeOptionsBmp | EncodeOptionsPng | EncodeOptionsJpeg = defaultPng,
) {
const buffer = encode(image, options);
const base64 = uint8encode(buffer);
const base64Data = new TextDecoder().decode(base64);
return `data:image/${options.format};base64,${base64Data}`;
}