react-native-pixel-png
Version:
Parse PNG or APNG (Animated PNG) to ImageData for React Native
72 lines (55 loc) • 3.52 kB
Markdown
# react-native-pixel-png
[](https://npmjs.org/package/react-native-pixel-png "View this project on npm")
[](https://npmjs.org/package/react-native-pixel-png "View this project on npm")
[](https://npmjs.org/package/react-native-pixel-png "View this project on npm")
[](https://npmjs.org/package/react-native-pixel-png "View this project on npm")
> Parse PNG or APNG (Animated PNG) to ImageData for React Native.
## Installation
```bash
$ npm install react-native-pixel-png
```
For RN >= 0.65, run `npm install react-native-blob-util`.
For RN < 0.65, run `npm install react-native-blob-util@0.16.3`, and patch manually to [fix: with react-native-web product build will export 'URIUtil' (reexported as 'URIUtil') was not found](https://github.com/RonRadtke/react-native-blob-util/pull/201/files).
```js
var pixelPng= require('react-native-pixel-png');
console.log(pixelPng); //function
```
# API
## pixelPng.parse(`file`) -> promise.then(`images`)
return `images` is Array contains one or more `ImageData`.
```js
var file= 'https://59naga.github.io/fixtures/animated.PNG';
pixelPng.parse(file).then(function(images){
var i= 0;
console.log(images.numPlays); // 0(Infinite)
console.log(images.playTime); // 1600
var nextImage= function(){
var imageData= images[i++];
if(imageData==null) return;
console.log(imageData);
nextImage();
}
nextImage();
});
// { width: 73, height: 73, left: 0, top: 0, delay: 1000, disposeOp: 0, blendOp: 0, interlace: false, alpha: true, bpp: 1, color: true, colorType: 3, depth: 8, gamma: 0, height: 57, interlace: false, data: <Uint8Array ..> }
// { width: 73, height: 73, left: 0, top: 0, delay: 900, disposeOp: 0, blendOp: 0, interlace: false, alpha: true, bpp: 1, color: true, colorType: 3, depth: 8, gamma: 0, height: 57, interlace: false, data: <Uint8Array ..> }
// { width: 73, height: 73, left: 0, top: 0, delay: 800, disposeOp: 0, blendOp: 0, interlace: false, alpha: true, bpp: 1, color: true, colorType: 3, depth: 8, gamma: 0, height: 57, interlace: false, data: <Uint8Array ..> }
// ...
// If not animated png, will be
// [{width: 35, height: 35, alpha: true, bpp: 4, color: true, colorType: 6, depth: 8, gamma: 0, interlace: false, palette: false, data: <Uint8Array ..>}]
```
> `images` can be resized and also keep property e.g. `delay` by `resizeImageDatas` of [react-native-pixel-util](https://github.com/flyskywhy/react-native-pixel-util).
# Related projects
* [react-native-pixel-image](https://github.com/flyskywhy/react-native-pixel-image)
* [react-native-pixel-util](https://github.com/flyskywhy/react-native-pixel-util)
* [react-native-pixel-gif](https://github.com/flyskywhy/react-native-pixel-gif)
* __react-native-pixel-png__
* [react-native-pixel-jpg](https://github.com/flyskywhy/react-native-pixel-jpg)
* [react-native-pixel-bmp](https://github.com/flyskywhy/react-native-pixel-bmp)
* [react-native-pixel-webp](https://github.com/flyskywhy/react-native-pixel-webp)
* [pixel-to-ansi](https://github.com/59naga/pixel-to-ansi)
* [pixel-to-svg](https://github.com/59naga/pixel-to-svg)
License
[MIT][License]
[License]: http://59naga.mit-license.org/