Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: chrome/browser/resources/file_manager/js/image_editor/image_encoder.js

Issue 8819013: Add UMA metrics to Photo Editor (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Better trace Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * A namespace class for image encoding functions. All methods are static. 6 * A namespace class for image encoding functions. All methods are static.
7 */ 7 */
8 function ImageEncoder() {} 8 function ImageEncoder() {}
9 9
10 ImageEncoder.MAX_THUMBNAIL_DIMENSION = 320; 10 ImageEncoder.MAX_THUMBNAIL_DIMENSION = 320;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 * @param {BlobBuilder} blobBuilder 64 * @param {BlobBuilder} blobBuilder
65 * @param {HTMLCanvasElement} canvas The canvas with the image to be encoded. 65 * @param {HTMLCanvasElement} canvas The canvas with the image to be encoded.
66 * @param {ImageEncoder.MetadataEncoder} metadataEncoder 66 * @param {ImageEncoder.MetadataEncoder} metadataEncoder
67 * @param {Number} quality (0..1], Encoding quality, default is 0.5 67 * @param {Number} quality (0..1], Encoding quality, default is 0.5
68 */ 68 */
69 ImageEncoder.buildBlob = function( 69 ImageEncoder.buildBlob = function(
70 blobBuilder, canvas, metadataEncoder, quality) { 70 blobBuilder, canvas, metadataEncoder, quality) {
71 71
72 quality = quality || 0.5; 72 quality = quality || 0.5;
73 73
74 ImageUtil.trace.resetTimer('dataurl');
74 // WebKit does not support canvas.toBlob yet so canvas.toDataURL is 75 // WebKit does not support canvas.toBlob yet so canvas.toDataURL is
75 // the only way to use the Chrome built-in image encoder. 76 // the only way to use the Chrome built-in image encoder.
76 var dataURL = 77 var dataURL =
77 canvas.toDataURL(metadataEncoder.getMetadata().mimeType, quality); 78 canvas.toDataURL(metadataEncoder.getMetadata().mimeType, quality);
79 ImageUtil.trace.reportTimer('dataurl');
78 80
79 var encodedImage = ImageEncoder.decodeDataURL(dataURL); 81 var encodedImage = ImageEncoder.decodeDataURL(dataURL);
80 82
81 var encodedMetadata = metadataEncoder.encode(); 83 var encodedMetadata = metadataEncoder.encode();
82 84
83 ImageUtil.trace.resetTimer('blob'); 85 ImageUtil.trace.resetTimer('blob');
84 if (encodedMetadata.byteLength != 0) { 86 if (encodedMetadata.byteLength != 0) {
85 var metadataRange = metadataEncoder.findInsertionRange(encodedImage); 87 var metadataRange = metadataEncoder.findInsertionRange(encodedImage);
86 blobBuilder.append(ImageEncoder.stringToArrayBuffer( 88 blobBuilder.append(ImageEncoder.stringToArrayBuffer(
87 encodedImage, 0, metadataRange.from)); 89 encodedImage, 0, metadataRange.from));
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 findInsertionRange = function(encodedImage) { return {from: 0, to: 0} }; 198 findInsertionRange = function(encodedImage) { return {from: 0, to: 0} };
197 199
198 /** 200 /**
199 * Return serialized metadata ready to write to an image file. 201 * Return serialized metadata ready to write to an image file.
200 * The return type is optimized for passing to Blob.append. 202 * The return type is optimized for passing to Blob.append.
201 * @return {ArrayBuffer} 203 * @return {ArrayBuffer}
202 */ 204 */
203 ImageEncoder.MetadataEncoder.prototype.encode = function() { 205 ImageEncoder.MetadataEncoder.prototype.encode = function() {
204 return new Uint8Array(0).buffer; 206 return new Uint8Array(0).buffer;
205 }; 207 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698