| Index: trunk/src/extensions/renderer/resources/image_util.js
|
| ===================================================================
|
| --- trunk/src/extensions/renderer/resources/image_util.js (revision 274563)
|
| +++ trunk/src/extensions/renderer/resources/image_util.js (working copy)
|
| @@ -1,82 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -// This function takes an object |imageSpec| with the key |path| -
|
| -// corresponding to the internet URL to be translated - and optionally
|
| -// |width| and |height| which are the maximum dimensions to be used when
|
| -// converting the image.
|
| -function loadImageData(imageSpec, callbacks) {
|
| - var path = imageSpec.path;
|
| - var img = new Image();
|
| - if (typeof callbacks.onerror === 'function') {
|
| - img.onerror = function() {
|
| - callbacks.onerror({ problem: 'could_not_load', path: path });
|
| - };
|
| - }
|
| - img.onload = function() {
|
| - var canvas = document.createElement('canvas');
|
| -
|
| - if (img.width <= 0 || img.height <= 0) {
|
| - callbacks.onerror({ problem: 'image_size_invalid', path: path});
|
| - return;
|
| - }
|
| -
|
| - var scaleFactor = 1;
|
| - if (imageSpec.width && imageSpec.width < img.width)
|
| - scaleFactor = imageSpec.width / img.width;
|
| -
|
| - if (imageSpec.height && imageSpec.height < img.height) {
|
| - var heightScale = imageSpec.height / img.height;
|
| - if (heightScale < scaleFactor)
|
| - scaleFactor = heightScale;
|
| - }
|
| -
|
| - canvas.width = img.width * scaleFactor;
|
| - canvas.height = img.height * scaleFactor;
|
| -
|
| - var canvas_context = canvas.getContext('2d');
|
| - canvas_context.clearRect(0, 0, canvas.width, canvas.height);
|
| - canvas_context.drawImage(img, 0, 0, canvas.width, canvas.height);
|
| - try {
|
| - var imageData = canvas_context.getImageData(
|
| - 0, 0, canvas.width, canvas.height);
|
| - if (typeof callbacks.oncomplete === 'function') {
|
| - callbacks.oncomplete(
|
| - imageData.width, imageData.height, imageData.data.buffer);
|
| - }
|
| - } catch (e) {
|
| - if (typeof callbacks.onerror === 'function') {
|
| - callbacks.onerror({ problem: 'data_url_unavailable', path: path });
|
| - }
|
| - }
|
| - }
|
| - img.src = path;
|
| -}
|
| -
|
| -function on_complete_index(index, err, loading, finished, callbacks) {
|
| - return function(width, height, imageData) {
|
| - delete loading[index];
|
| - finished[index] = { width: width, height: height, data: imageData };
|
| - if (err)
|
| - callbacks.onerror(index);
|
| - if ($Object.keys(loading).length == 0)
|
| - callbacks.oncomplete(finished);
|
| - }
|
| -}
|
| -
|
| -function loadAllImages(imageSpecs, callbacks) {
|
| - var loading = {}, finished = [],
|
| - index, pathname;
|
| -
|
| - for (var index = 0; index < imageSpecs.length; index++) {
|
| - loading[index] = imageSpecs[index];
|
| - loadImageData(imageSpecs[index], {
|
| - oncomplete: on_complete_index(index, false, loading, finished, callbacks),
|
| - onerror: on_complete_index(index, true, loading, finished, callbacks)
|
| - });
|
| - }
|
| -}
|
| -
|
| -exports.loadImageData = loadImageData;
|
| -exports.loadAllImages = loadAllImages;
|
|
|