blob-util/docs/index.html
2017-08-08 13:30:56 -07:00

2655 lines
30 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Playground for blob-util</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Playground for blob-util</h1>
<p>Welcome to the docs and playground for <a href="https://github.com/nolanlawson/blob-util"><code>blob-util</code></a>!</p>
<p>Below you'll find API documentation, as well as a little Kirby GIF you can play around with.</p>
<p><img id="kirby" alt="Kirby" src="kirby.gif"/></p>
<p>Here's some code to get you started. Copy-paste this into your console:</p>
<pre class="prettyprint source" style="border-left: 3px solid #A35A00; margin-left: 20px; max-width: 700px;">
<code>
var img = document.getElementById('kirby');
blobUtil.imgSrcToBlob(img.src).then(function (blob) {
var blobURL = blobUtil.createObjectURL(blob);
var newImg = document.createElement('img');
newImg.src = blobURL;
img.parentNode.appendChild(newImg);
});</code>
</pre>
<p>If you see two Kirbys, you're on your way!</p>
<section>
<header>
<h2></h2>
</header>
<article>
<div class="container-overview">
<dl class="details">
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="arrayBufferToBlob"><span class="type-signature"></span>arrayBufferToBlob<span class="signature">(buffer, type)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
Convert an <code>ArrayBuffer</code> to a <code>Blob</code>. Returns a Promise.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>buffer</code></td>
<td class="type">
<span class="param-type">ArrayBuffer</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>type</code></td>
<td class="type">
<span class="param-type">string</span>
|
<span class="param-type">undefined</span>
</td>
<td class="description last">the content type (optional)</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="index.js.html">index.js</a>, <a href="index.js.html#line285">line 285</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Promise that resolves with the <code>Blob</code>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="base64StringToBlob"><span class="type-signature"></span>base64StringToBlob<span class="signature">(base64, type)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
Convert a base64-encoded string to a <code>Blob</code>. Returns a Promise.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>base64</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>type</code></td>
<td class="type">
<span class="param-type">string</span>
|
<span class="param-type">undefined</span>
</td>
<td class="description last">the content type (optional)</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="index.js.html">index.js</a>, <a href="index.js.html#line149">line 149</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Promise that resolves with the <code>Blob</code>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="binaryStringToBlob"><span class="type-signature"></span>binaryStringToBlob<span class="signature">(binary, type)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
Convert a binary string to a <code>Blob</code>. Returns a Promise.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>binary</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>type</code></td>
<td class="type">
<span class="param-type">string</span>
|
<span class="param-type">undefined</span>
</td>
<td class="description last">the content type (optional)</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="index.js.html">index.js</a>, <a href="index.js.html#line162">line 162</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Promise that resolves with the <code>Blob</code>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="blobToArrayBuffer"><span class="type-signature"></span>blobToArrayBuffer<span class="signature">(blob)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
Convert a <code>Blob</code> to an <code>ArrayBuffer</code>. Returns a Promise.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>blob</code></td>
<td class="type">
<span class="param-type">Blob</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="index.js.html">index.js</a>, <a href="index.js.html#line296">line 296</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Promise that resolves with the <code>ArrayBuffer</code>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="blobToBase64String"><span class="type-signature"></span>blobToBase64String<span class="signature">(blob)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
Convert a <code>Blob</code> to a binary string. Returns a Promise.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>blob</code></td>
<td class="type">
<span class="param-type">Blob</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="index.js.html">index.js</a>, <a href="index.js.html#line173">line 173</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Promise that resolves with the binary string
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="blobToBinaryString"><span class="type-signature"></span>blobToBinaryString<span class="signature">(blob)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
Convert a <code>Blob</code> to a binary string. Returns a Promise.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>blob</code></td>
<td class="type">
<span class="param-type">Blob</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="index.js.html">index.js</a>, <a href="index.js.html#line123">line 123</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Promise that resolves with the binary string
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="blobToDataURL"><span class="type-signature"></span>blobToDataURL<span class="signature">(blob)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
Convert a <code>Blob</code> to a data URL string
(e.g. <code>'data:image/png;base64,iVBORw0KG...'</code>).
Returns a Promise.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>blob</code></td>
<td class="type">
<span class="param-type">Blob</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="index.js.html">index.js</a>, <a href="index.js.html#line203">line 203</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Promise that resolves with the data URL string
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="canvasToBlob"><span class="type-signature"></span>canvasToBlob<span class="signature">(canvas, type, quality)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
Convert a <code>canvas</code> to a <code>Blob</code>. Returns a Promise.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>canvas</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>type</code></td>
<td class="type">
<span class="param-type">string</span>
|
<span class="param-type">undefined</span>
</td>
<td class="description last">the content type (optional, defaults to 'image/png')</td>
</tr>
<tr>
<td class="name"><code>quality</code></td>
<td class="type">
<span class="param-type">number</span>
|
<span class="param-type">undefined</span>
</td>
<td class="description last">a number between 0 and 1 indicating image quality
if the requested type is 'image/jpeg' or 'image/webp'</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="index.js.html">index.js</a>, <a href="index.js.html#line242">line 242</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Promise that resolves with the <code>Blob</code>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="createBlob"><span class="type-signature"></span>createBlob<span class="signature">(parts, options)</span><span class="type-signature"> &rarr; {Blob}</span></h4>
<div class="description">
Shim for
<a href="https://developer.mozilla.org/en-US/docs/Web/API/Blob.Blob">new Blob()</a>
to support
<a href="http://caniuse.com/blob">older browsers that use the deprecated <code>BlobBuilder</code> API</a>.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>parts</code></td>
<td class="type">
<span class="param-type">Array</span>
</td>
<td class="description last">content of the <code>Blob</code></td>
</tr>
<tr>
<td class="name"><code>options</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">usually just <code>{type: myContentType}</code></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="index.js.html">index.js</a>, <a href="index.js.html#line86">line 86</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Blob</span>
</dd>
</dl>
<h4 class="name" id="createObjectURL"><span class="type-signature"></span>createObjectURL<span class="signature">(blob)</span><span class="type-signature"> &rarr; {string}</span></h4>
<div class="description">
Shim for
<a href="https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL">URL.createObjectURL()</a>
to support browsers that only have the prefixed
<code>webkitURL</code> (e.g. Android <4.4).
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>blob</code></td>
<td class="type">
<span class="param-type">Blob</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="index.js.html">index.js</a>, <a href="index.js.html#line102">line 102</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
url
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">string</span>
</dd>
</dl>
<h4 class="name" id="dataURLToBlob"><span class="type-signature"></span>dataURLToBlob<span class="signature">(dataURL)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
Convert a data URL string
(e.g. <code>'data:image/png;base64,iVBORw0KG...'</code>)
to a <code>Blob</code>. Returns a Promise.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>dataURL</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="index.js.html">index.js</a>, <a href="index.js.html#line186">line 186</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Promise that resolves with the <code>Blob</code>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="imgSrcToBlob"><span class="type-signature"></span>imgSrcToBlob<span class="signature">(src, type, crossOrigin, quality)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
Convert an image's <code>src</code> URL to a <code>Blob</code> by loading the image and painting
it to a <code>canvas</code>. Returns a Promise.
<p/>Note: this will coerce the image to the desired content type, and it
will only paint the first frame of an animated GIF.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>src</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>type</code></td>
<td class="type">
<span class="param-type">string</span>
|
<span class="param-type">undefined</span>
</td>
<td class="description last">the content type (optional, defaults to 'image/png')</td>
</tr>
<tr>
<td class="name"><code>crossOrigin</code></td>
<td class="type">
<span class="param-type">string</span>
|
<span class="param-type">undefined</span>
</td>
<td class="description last">for CORS-enabled images, set this to
'Anonymous' to avoid "tainted canvas" errors</td>
</tr>
<tr>
<td class="name"><code>quality</code></td>
<td class="type">
<span class="param-type">number</span>
|
<span class="param-type">undefined</span>
</td>
<td class="description last">a number between 0 and 1 indicating image quality
if the requested type is 'image/jpeg' or 'image/webp'</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="index.js.html">index.js</a>, <a href="index.js.html#line268">line 268</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Promise that resolves with the <code>Blob</code>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="imgSrcToDataURL"><span class="type-signature"></span>imgSrcToDataURL<span class="signature">(src, type, crossOrigin, quality)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
Convert an image's <code>src</code> URL to a data URL by loading the image and painting
it to a <code>canvas</code>. Returns a Promise.
<p/>Note: this will coerce the image to the desired content type, and it
will only paint the first frame of an animated GIF.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>src</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>type</code></td>
<td class="type">
<span class="param-type">string</span>
|
<span class="param-type">undefined</span>
</td>
<td class="description last">the content type (optional, defaults to 'image/png')</td>
</tr>
<tr>
<td class="name"><code>crossOrigin</code></td>
<td class="type">
<span class="param-type">string</span>
|
<span class="param-type">undefined</span>
</td>
<td class="description last">for CORS-enabled images, set this to
'Anonymous' to avoid "tainted canvas" errors</td>
</tr>
<tr>
<td class="name"><code>quality</code></td>
<td class="type">
<span class="param-type">number</span>
|
<span class="param-type">undefined</span>
</td>
<td class="description last">a number between 0 and 1 indicating image quality
if the requested type is 'image/jpeg' or 'image/webp'</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="index.js.html">index.js</a>, <a href="index.js.html#line224">line 224</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
Promise that resolves with the data URL string
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Promise</span>
</dd>
</dl>
<h4 class="name" id="revokeObjectURL"><span class="type-signature"></span>revokeObjectURL<span class="signature">(url)</span><span class="type-signature"></span></h4>
<div class="description">
Shim for
<a href="https://developer.mozilla.org/en-US/docs/Web/API/URL.revokeObjectURL">URL.revokeObjectURL()</a>
to support browsers that only have the prefixed
<code>webkitURL</code> (e.g. Android <4.4).
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>url</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="index.js.html">index.js</a>, <a href="index.js.html#line113">line 113</a>
</li></ul></dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="index.html#arrayBufferToBlob">arrayBufferToBlob</a></li><li><a href="index.html#base64StringToBlob">base64StringToBlob</a></li><li><a href="index.html#binaryStringToBlob">binaryStringToBlob</a></li><li><a href="index.html#blobToArrayBuffer">blobToArrayBuffer</a></li><li><a href="index.html#blobToBase64String">blobToBase64String</a></li><li><a href="index.html#blobToBinaryString">blobToBinaryString</a></li><li><a href="index.html#blobToDataURL">blobToDataURL</a></li><li><a href="index.html#canvasToBlob">canvasToBlob</a></li><li><a href="index.html#createBlob">createBlob</a></li><li><a href="index.html#createObjectURL">createObjectURL</a></li><li><a href="index.html#dataURLToBlob">dataURLToBlob</a></li><li><a href="index.html#imgSrcToBlob">imgSrcToBlob</a></li><li><a href="index.html#imgSrcToDataURL">imgSrcToDataURL</a></li><li><a href="index.html#revokeObjectURL">revokeObjectURL</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.3</a> on Tue Aug 08 2017 13:21:18 GMT-0700 (PDT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
<script src="https://unpkg.com/blob-util/dist/blob-util.js"></script>
</body>
</html>