Вход Регистрация
Файл: concrete5.7.5.6/concrete/js/build/vendor/jquery-fileupload/javascript-canvas-to-blob.js
Строк: 122
<?php
/*
 * JavaScript Canvas to Blob 2.0.5
 * https://github.com/blueimp/JavaScript-Canvas-to-Blob
 *
 * Copyright 2012, Sebastian Tschan
 * https://blueimp.net
 *
 * Licensed under the MIT license:
 * http://www.opensource.org/licenses/MIT
 *
 * Based on stackoverflow user Stoive's code snippet:
 * http://stackoverflow.com/q/4998908
 */

/*jslint nomen: true, regexp: true */
/*global window, atob, Blob, ArrayBuffer, Uint8Array, define */

(function (window) {
    
'use strict';
    var 
CanvasPrototype window.HTMLCanvasElement &&
            
window.HTMLCanvasElement.prototype,
        
hasBlobConstructor window.Blob && (function () {
                try {
                    return 
Boolean(new Blob());
                } catch (
e) {
                    return 
false;
                }
            }()),
        
hasArrayBufferViewSupport hasBlobConstructor && window.Uint8Array &&
            (function () {
                try {
                    return new 
Blob([new Uint8Array(100)]).size === 100;
                } catch (
e) {
                    return 
false;
                }
            }()),
        
BlobBuilder window.BlobBuilder || window.WebKitBlobBuilder ||
            
window.MozBlobBuilder || window.MSBlobBuilder,
        
dataURLtoBlob = (hasBlobConstructor || BlobBuilder) && window.atob &&
            
window.ArrayBuffer && window.Uint8Array && function (dataURI) {
                var 
byteString,
                    
arrayBuffer,
                    
intArray,
                    
i,
                    
mimeString,
                    
bb;
                if (
dataURI.split(',')[0].indexOf('base64') >= 0) {
                    
// Convert base64 to raw binary data held in a string:
                    
byteString atob(dataURI.split(',')[1]);
                } else {
                    
// Convert base64/URLEncoded data component to raw binary data:
                    
byteString decodeURIComponent(dataURI.split(',')[1]);
                }
                
// Write the bytes of the string to an ArrayBuffer:
                
arrayBuffer = new ArrayBuffer(byteString.length);
                
intArray = new Uint8Array(arrayBuffer);
                for (
0byteString.length+= 1) {
                    
intArray[i] = byteString.charCodeAt(i);
                }
                
// Separate out the mime component:
                
mimeString dataURI.split(',')[0].split(':')[1].split(';')[0];
                
// Write the ArrayBuffer (or ArrayBufferView) to a blob:
                
if (hasBlobConstructor) {
                    return new 
Blob(
                        [
hasArrayBufferViewSupport intArray arrayBuffer],
                        {
typemimeString}
                    );
                }
                
bb = new BlobBuilder();
                
bb.append(arrayBuffer);
                return 
bb.getBlob(mimeString);
            };
    if (
window.HTMLCanvasElement && !CanvasPrototype.toBlob) {
        if (
CanvasPrototype.mozGetAsFile) {
            
CanvasPrototype.toBlob = function (callbacktypequality) {
                if (
quality && CanvasPrototype.toDataURL && dataURLtoBlob) {
                    
callback(dataURLtoBlob(this.toDataURL(typequality)));
                } else {
                    
callback(this.mozGetAsFile('blob'type));
                }
            };
        } else if (
CanvasPrototype.toDataURL && dataURLtoBlob) {
            
CanvasPrototype.toBlob = function (callbacktypequality) {
                
callback(dataURLtoBlob(this.toDataURL(typequality)));
            };
        }
    }
    if (
typeof define === 'function' && define.amd) {
        
define(function () {
            return 
dataURLtoBlob;
        });
    } else {
        
window.dataURLtoBlob dataURLtoBlob;
    }
}(
window));
?>
Онлайн: 0
Реклама