An open API service indexing awesome lists of open source software.

https://github.com/valesdev/file-promisify


https://github.com/valesdev/file-promisify

file files image promise

Last synced: 5 months ago
JSON representation

Awesome Lists containing this project

README

          

# file-promisify

[![Version](https://img.shields.io/npm/v/file-promisify.svg)](https://www.npmjs.com/package/file-promisify)
[![Downloads](https://img.shields.io/npm/dm/file-promisify.svg)](https://npmcharts.com/compare/file-promisify?minimal=true)
[![License](https://img.shields.io/npm/l/file-promisify.svg)](https://www.npmjs.com/package/file-promisify)

Utilities for file and image handling, in Browsers, with Promise.

[Live demo](https://open.vales.io/file-promisify/demo.html)

## Installation

### Node.js

```sh
$ npm install --save file-promisify
```

### Browser via CDN

```html

```

## Usage

```js
import Files from 'file-promisify'

const instance = new Files()

/** open file dialog */
instance.select()
.then(([blob]) => {})
.catch(error => {})

/** open file dialog for selecting multiple files */
instance.select({ multiple: true })
.then(blobs => {})
.catch(error => {})

/** open file dialog for selecting an image file */
instance.select({ accept: 'image/*' })
.then(blob => {
/** wrap image into maximum 128 × 128 pixels */
Files.processImage({ blob, width: 128, height: 128, crop: false })
.then(dataUrl => {})
.catch(error => {})

/** crop image into 128 × 128 pixels exactly */
Files.processImage({ blob, width: 128, height: 128, crop: true })
.then(dataUrl => {})
.catch(error => {})
})
.catch(error => {})

/** open directory dialog for selecting a directory (only webkit) */
instance.selectDirectory()
.then(blobs => {})
.catch(error => {})
```

## API

### `instance.select({ multiple: [multiple], accept: [accept] })`

Open a file dialog.

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `multiple` | Boolean | Multiple selection or not. | `false` |
| `accept` | String | MIME type accepted. | `'*/*'` |

- Returns: `Promise`

### `instance.selectDirectory()`

Open a directory dialog. (only webkit)

- Returns: `Promise`

### `Files.processImage({ blob: , width: [width], height: [height], crop: [crop] })`

Process image.

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `blob` | Blob | The blob of image data. | (required) |
| `width` | Number | Target width. | `null` |
| `height` | Number | Target height. | `null` |
| `crop` | Boolean | Should crop or not. `true` for cropping image into dimension exactly, while `false` for wrapping image into the maximum dimension. | `false` |

- Returns: `Promise`

### `Files.urlToImage()`

Fetch image URL into Image instance.

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `url` | String | The URL of image. | (required) |

- Returns: `Promise`

### `Files.blobToDataUrl()`

Transform Blob to data URL.

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `blob` | Blob | The blob. | (required) |

- Returns: `Promise`

### `Files.dataUrlToBlob()`

Transform data URL to Blob.

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `dataUrl` | String | The data url. | (required) |

- Returns: `Promise`

### `Files.dataUrlToBase64()`

Transform data URL to Base64 encoded string.

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `dataUrl` | String | The data url. | (required) |

- Returns: `Promise`

### `Files.blobToBase64()`

Transform Blob to Base64 encoded string.

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `blob` | Blob | The blob. | (required) |

- Returns: `Promise`

### `Files.blobToArrayBuffer()`

Transform Blob to ArrayBuffer.

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `blob` | Blob | The blob. | (required) |

- Returns: `Promise`

### `Files.blobToString(, [encoding])`

Transform Blob to string.

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `blob` | Blob | The blob. | (required) |
| `encoding` | String | The encoding. | `'UTF-8'` |

- Returns: `Promise`

### `Files.stringToBlob(, [type])`

Transform string to Blob.

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `string` | String | The string. | (required) |
| `type` | String | The MIME type. | `'application/octet-stream'` |

- Returns: `Promise`

### `Files.stringToByteArray()`

Transform string to byte array.

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `string` | String | The string. | (required) |

- Returns: `Promise`

### `Files.getImageOrientation()`

Get image orientation value from Blob.

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `blob` | Blob | The blob of image data. | (required) |

- Returns: `Promise`

### `Files.getMimeTypeFromDataUrl()`

Get MIME type from data URL.

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `dataUrl` | String | The data url. | (required) |

- Returns: `Promise`

## License

[MIT](http://opensource.org/licenses/MIT)