image2uri
Version:
Convert image file to data URI.
92 lines (67 loc) • 3.08 kB
Markdown
Image To URI
===
[](https://jaywcjlove.github.io/#/sponsor)
[](https://www.npmjs.com/package/image2uri)
[](https://github.com/jaywcjlove/image2uri/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/image2uri)
[](https://jaywcjlove.github.io/image2uri/lcov-report/)
Convert image file to data URI. Support `.png`,`.gif`,`.jpg`,`.jpeg`,`.bm`,`.bmp`,`.webp`,`.ico`,`.svg`.
This package is [ESM only](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c): Node 12+ is needed to use it and it must be import instead of require.
```bash
npm i image2uri
```
```js
const recursiveReaddirFiles = await import('image2uri');
// Fix compiling in typescript.
// https://github.com/microsoft/TypeScript/issues/43329#issuecomment-922544562
const { getExt, recursiveReaddirFiles } = await (Function('return import("image2uri")')()) as Promise<typeof import("image2uri")>;
```
```js
import image2uri from "image2uri";
console.log(image2uri('./example.bmp'));
// data:image/bmp;base64,Qk0YCAAAAAAAADYAAAAoAAAAGAAAABwAAAABABgAAAAAAOIHAAA....
console.log(image2uri('./example.jpg'));
// data:image/jpeg;base64,Qk0YCAAAAAAAADYAAAAoAAAAGAAAABwAAAABABgAAAAAAOIHAAA....
const uri = await image2uri('https://avatars.githubusercontent.com/u/1680273?v=4', { ext: '.apng' });
// data:image/apng;base64,/9j/2wCEAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDc
const avatar = await image2uri('https://avatars.githubusercontent.com/u/1680273?v=4');
// /9j/2wCEAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDc
```
```ts
export declare const validUrl: (url: string) => boolean;
export declare const extTypeMap: {
'.png': string;
'.apng': string;
'.gif': string;
'.jpg': string;
'.jpeg': string;
'.bm': string;
'.bmp': string;
'.webp': string;
'.ico': string;
'.svg': string;
};
export type ExtType = keyof typeof extTypeMap;
export default function image2uri(file: string, options?: {
ext?: string;
}): string | Promise<string>;
```
```bash
npm run watch
npm run build
npm run start
```
- [recursive-readdir-files](https://github.com/jaywcjlove/recursive-readdir-files) Node.js module to list all files in a directory or any subdirectories.
As always, thanks to our amazing contributors!
<a href="https://github.com/jaywcjlove/image2uri/graphs/contributors">
<img src="https://jaywcjlove.github.io/image2uri/CONTRIBUTORS.svg" />
</a>
Made with [action-contributors](https://github.com/jaywcjlove/github-action-contributors).
Licensed under the MIT License.