gifken
Advanced tools
Comparing version 0.5.0 to 0.5.1
{ | ||
"name": "gifken", | ||
"version": "0.5.0", | ||
"version": "0.5.1", | ||
"description": "TypeScript / JavaScript GIF parser and maker", | ||
"main": "build/gifken.js", | ||
"main": "build/src/gifken.js", | ||
"homepage": "http://aaharu.github.io/gifken/", | ||
"scripts": { | ||
"build": "tsc --target ES2016 --module commonjs --outDir build/ src/gifken.ts src/gifken-client.ts && babel --presets env --out-file build/gifken.js build/gifken.js && browserify -t [ babelify --presets [ env ] --minified ] build/gifken-client.js --outfile build/gifken-client.js", | ||
"test": "npm run build && jest", | ||
"doc": "typedoc --target ES2016 --module commonjs --out docs --readme README.md src" | ||
"build": "tsc && browserify build/src/gifken-client.js --outfile build/gifken-client.js", | ||
"test": "rimraf coverage && jest", | ||
"clean": "rimraf build coverage", | ||
"doc": "typedoc --target ES2016 --module commonjs --out docs --readme README.md src && node d.js" | ||
}, | ||
@@ -25,15 +26,36 @@ "repository": { | ||
"devDependencies": { | ||
"babel-cli": "^6.26.0", | ||
"babel-core": "^6.26.0", | ||
"babel-preset-env": "^1.6.1", | ||
"babelify": "^8.0.0", | ||
"browserify": "^14.5.0", | ||
"jest": "^22.0.4", | ||
"@types/jest": "^23.1.0", | ||
"@types/node": "^10.3.3", | ||
"browserify": "^16.2.2", | ||
"codecov": "^3.0.2", | ||
"jest": "^23.1.0", | ||
"jsdoc": "^3.5.5", | ||
"typedoc": "^0.9.0", | ||
"typescript": "^2.6.2" | ||
"rimraf": "^2.6.2", | ||
"ts-jest": "^22.4.6", | ||
"typedoc": "^0.11.1", | ||
"typescript": "^2.9.2" | ||
}, | ||
"files": [ | ||
"build" | ||
] | ||
"build/src" | ||
], | ||
"keywords": [ | ||
"animated-gif" | ||
], | ||
"jest": { | ||
"moduleFileExtensions": [ | ||
"ts", | ||
"tsx", | ||
"js" | ||
], | ||
"transform": { | ||
"\\.(ts|tsx)$": "<rootDir>/node_modules/ts-jest/preprocessor.js" | ||
}, | ||
"testMatch": [ | ||
"**/test/**/*.ts?(x)" | ||
], | ||
"collectCoverage": true, | ||
"collectCoverageFrom": [ | ||
"src/**/*.ts?(x)" | ||
] | ||
} | ||
} |
104
README.md
# gifken | ||
[![Build Status](https://img.shields.io/travis/aaharu/gifken.svg)](https://travis-ci.org/aaharu/gifken) [![Dependency Status](https://img.shields.io/gemnasium/aaharu/gifken.svg)](https://gemnasium.com/aaharu/gifken) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Faaharu%2Fgifken.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Faaharu%2Fgifken?ref=badge_shield) | ||
[![npm version](https://img.shields.io/npm/v/gifken.svg)](https://www.npmjs.com/package/gifken) [![Build Status](https://img.shields.io/travis/aaharu/gifken.svg)](https://travis-ci.org/aaharu/gifken) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Faaharu%2Fgifken.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Faaharu%2Fgifken?ref=badge_shield) [![codecov](https://codecov.io/gh/aaharu/gifken/branch/master/graph/badge.svg)](https://codecov.io/gh/aaharu/gifken) | ||
## How to use | ||
http://aaharu.github.io/gifken/ | ||
### Create a GIF image in browser | ||
```html | ||
<div id="content"></div> | ||
<script src="gifken-client.js"></script> | ||
<script type="text/javascript"> | ||
window.onload = function () { | ||
var newgif = new gifken.Gif(); | ||
newgif.width = 100; | ||
newgif.height = 100; | ||
newgif.globalColorTable = gifken.GifColor.createColorTable([ | ||
new gifken.GifColor(0, 0, 0), | ||
new gifken.GifColor(255, 0, 0), | ||
new gifken.GifColor(0, 255, 0), | ||
new gifken.GifColor(0, 0, 255), | ||
new gifken.GifColor(100, 100, 255), | ||
new gifken.GifColor(100, 255, 100), | ||
new gifken.GifColor(255, 100, 100), | ||
new gifken.GifColor(0, 255, 255), | ||
new gifken.GifColor(255, 0, 255), | ||
new gifken.GifColor(255, 255, 0), | ||
new gifken.GifColor(255, 255, 255) | ||
]); | ||
newgif.frames = [gifken.GifFrame.init(newgif.width, newgif.height)]; | ||
for (var i = 0; i < newgif.frames[0].pixelData.length; ++i) { | ||
newgif.frames[0].pixelData[i] = i % 11; | ||
} | ||
var newimg = new Image(); | ||
// createObjectURL pattern | ||
// var blob = gifken.GifPresenter.writeToBlob(newgif.writeToArrayBuffer()); | ||
// newimg.src = URL.createObjectURL(blob); | ||
// data-URL pattern | ||
newimg.src = gifken.GifPresenter.writeToDataUrl(newgif.writeToArrayBuffer()); | ||
document.getElementById("content").appendChild(newimg); | ||
}; | ||
</script> | ||
``` | ||
### Split an animated GIF image in browser | ||
```javascript | ||
window.onload = function () { | ||
var xhr = new XMLHttpRequest(); | ||
xhr.open("GET", GIF_IMAGE_URL, true); | ||
xhr.responseType = "arraybuffer"; | ||
xhr.onload = function (e) { | ||
var arrayBuffer = e.target["response"]; | ||
var gif = gifken.Gif.parse(arrayBuffer); | ||
gif.split(true).forEach(function (i) { | ||
var img = new Image(); | ||
var blob = gifken.Gif.writeToBlob(i.writeToArrayBuffer()); | ||
img.src = URL.createObjectURL(blob); | ||
document.getElementById("content").appendChild(img); | ||
}); | ||
}; | ||
xhr.send(); | ||
}; | ||
``` | ||
### Create a GIF image by Node.js | ||
```bash | ||
npm install gifken | ||
``` | ||
```javascript | ||
var fs = require("fs"), | ||
path = require("path"), | ||
gifken = require("gifken"); | ||
var newgif = new gifken.Gif(); | ||
newgif.width = 100; | ||
newgif.height = 100; | ||
newgif.globalColorTable = gifken.GifColor.createColorTable([ | ||
new gifken.GifColor(0, 0, 0), | ||
new gifken.GifColor(255, 0, 0), | ||
new gifken.GifColor(0, 255, 0), | ||
new gifken.GifColor(0, 0, 255), | ||
new gifken.GifColor(100, 100, 255), | ||
new gifken.GifColor(100, 255, 100), | ||
new gifken.GifColor(255, 100, 100), | ||
new gifken.GifColor(0, 255, 255), | ||
new gifken.GifColor(255, 0, 255), | ||
new gifken.GifColor(255, 255, 0), | ||
new gifken.GifColor(255, 255, 255) | ||
]); | ||
newgif.frames = [gifken.GifFrame.init(newgif.width, newgif.height)]; | ||
for (var i = 0; i < newgif.frames[0].pixelData.length; ++i) { | ||
newgif.frames[0].pixelData[i] = i % 11; | ||
} | ||
var buffer = newgif.writeToArray(); | ||
fs.writeFile(path.resolve(__dirname, "sample.gif"), Buffer.from(buffer), function (err) { | ||
if (err) throw err; | ||
console.log("It's saved!"); | ||
}); | ||
``` | ||
- [API Docs](http://aaharu.github.io/gifken/docs/) | ||
@@ -34,3 +132,3 @@ | ||
npm install | ||
npm run build | ||
npm run-script build | ||
``` | ||
@@ -37,0 +135,0 @@ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
13
140
0
39790
10
932
1