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

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

Issue 12262003: [Cleanup] Files.app: Adds missing periods at the end of the descriptions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 months 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 //TODO(JSDOC) 10 //TODO(JSDOC)
11 ImageEncoder.metadataEncoders = {}; 11 ImageEncoder.metadataEncoders = {};
12 12
13 //TODO(JSDOC) 13 //TODO(JSDOC)
14 ImageEncoder.registerMetadataEncoder = function(constructor, mimeType) { 14 ImageEncoder.registerMetadataEncoder = function(constructor, mimeType) {
15 ImageEncoder.metadataEncoders[mimeType] = constructor; 15 ImageEncoder.metadataEncoders[mimeType] = constructor;
16 }; 16 };
17 17
18 /** 18 /**
19 * Create a metadata encoder. 19 * Create a metadata encoder.
20 * 20 *
21 * The encoder will own and modify a copy of the original metadata. 21 * The encoder will own and modify a copy of the original metadata.
22 * 22 *
23 * @param {Object} metadata Original metadata 23 * @param {Object} metadata Original metadata.
24 * @return {ImageEncoder.MetadataEncoder} Created metadata encoder. 24 * @return {ImageEncoder.MetadataEncoder} Created metadata encoder.
25 */ 25 */
26 ImageEncoder.createMetadataEncoder = function(metadata) { 26 ImageEncoder.createMetadataEncoder = function(metadata) {
27 var constructor = ImageEncoder.metadataEncoders[metadata.mimeType] || 27 var constructor = ImageEncoder.metadataEncoders[metadata.mimeType] ||
28 ImageEncoder.MetadataEncoder; 28 ImageEncoder.MetadataEncoder;
29 return new constructor(metadata); 29 return new constructor(metadata);
30 }; 30 };
31 31
32 32
33 /** 33 /**
34 * Create a metadata encoder object holding a copy of metadata 34 * Create a metadata encoder object holding a copy of metadata
35 * modified according to the properties of the supplied image. 35 * modified according to the properties of the supplied image.
36 * 36 *
37 * @param {Object} metadata Original metadata 37 * @param {Object} metadata Original metadata.
38 * @param {HTMLCanvasElement} canvas Canvas to use for metadata. 38 * @param {HTMLCanvasElement} canvas Canvas to use for metadata.
39 * @param {number} quality Encoding quality (defaults to 1) 39 * @param {number} quality Encoding quality (defaults to 1).
40 * @return {ImageEncoder.MetadataEncoder} Encoder with encoded metadata. 40 * @return {ImageEncoder.MetadataEncoder} Encoder with encoded metadata.
41 */ 41 */
42 ImageEncoder.encodeMetadata = function(metadata, canvas, quality) { 42 ImageEncoder.encodeMetadata = function(metadata, canvas, quality) {
43 var encoder = ImageEncoder.createMetadataEncoder(metadata); 43 var encoder = ImageEncoder.createMetadataEncoder(metadata);
44 encoder.setImageData(canvas); 44 encoder.setImageData(canvas);
45 encoder.setThumbnailData(ImageEncoder.createThumbnail(canvas), quality || 1); 45 encoder.setThumbnailData(ImageEncoder.createThumbnail(canvas), quality || 1);
46 return encoder; 46 return encoder;
47 }; 47 };
48 48
49 49
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 // Skip the prefix ('data:image/<type>;base64,') 113 // Skip the prefix ('data:image/<type>;base64,')
114 var base64string = dataURL.substring(dataURL.indexOf(',') + 1); 114 var base64string = dataURL.substring(dataURL.indexOf(',') + 1);
115 return atob(base64string); 115 return atob(base64string);
116 }; 116 };
117 117
118 /** 118 /**
119 * Return a thumbnail for an image. 119 * Return a thumbnail for an image.
120 * @param {HTMLCanvasElement} canvas Original image. 120 * @param {HTMLCanvasElement} canvas Original image.
121 * @param {number} opt_shrinkage Thumbnail should be at least this much smaller 121 * @param {number} opt_shrinkage Thumbnail should be at least this much smaller
122 * than the original image (in each dimension). 122 * than the original image (in each dimension).
123 * @return {HTMLCanvasElement} Thumbnail canvas 123 * @return {HTMLCanvasElement} Thumbnail canvas.
124 */ 124 */
125 ImageEncoder.createThumbnail = function(canvas, opt_shrinkage) { 125 ImageEncoder.createThumbnail = function(canvas, opt_shrinkage) {
126 var MAX_THUMBNAIL_DIMENSION = 320; 126 var MAX_THUMBNAIL_DIMENSION = 320;
127 127
128 opt_shrinkage = Math.max(opt_shrinkage || 4, 128 opt_shrinkage = Math.max(opt_shrinkage || 4,
129 canvas.width / MAX_THUMBNAIL_DIMENSION, 129 canvas.width / MAX_THUMBNAIL_DIMENSION,
130 canvas.height / MAX_THUMBNAIL_DIMENSION); 130 canvas.height / MAX_THUMBNAIL_DIMENSION);
131 131
132 var thumbnailCanvas = canvas.ownerDocument.createElement('canvas'); 132 var thumbnailCanvas = canvas.ownerDocument.createElement('canvas');
133 thumbnailCanvas.width = Math.round(canvas.width / opt_shrinkage); 133 thumbnailCanvas.width = Math.round(canvas.width / opt_shrinkage);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 * @param {number} quality Thumbnail quality. 185 * @param {number} quality Thumbnail quality.
186 */ 186 */
187 ImageEncoder.MetadataEncoder.prototype.setThumbnailData = 187 ImageEncoder.MetadataEncoder.prototype.setThumbnailData =
188 function(canvas, quality) { 188 function(canvas, quality) {
189 this.metadata_.thumbnailURL = 189 this.metadata_.thumbnailURL =
190 canvas.toDataURL(this.metadata_.mimeType, quality); 190 canvas.toDataURL(this.metadata_.mimeType, quality);
191 }; 191 };
192 192
193 /** 193 /**
194 * Return a range where the metadata is (or should be) located. 194 * Return a range where the metadata is (or should be) located.
195 * @param {string} encodedImage //TODO(JSDOC) 195 * @param {string} encodedImage //TODO(JSDOC).
196 * @return {Object} An object with from and to properties. 196 * @return {Object} An object with from and to properties.
197 */ 197 */
198 ImageEncoder.MetadataEncoder.prototype. 198 ImageEncoder.MetadataEncoder.prototype.
199 findInsertionRange = function(encodedImage) { return {from: 0, to: 0} }; 199 findInsertionRange = function(encodedImage) { return {from: 0, to: 0} };
200 200
201 /** 201 /**
202 * Return serialized metadata ready to write to an image file. 202 * Return serialized metadata ready to write to an image file.
203 * The return type is optimized for passing to Blob.append. 203 * The return type is optimized for passing to Blob.append.
204 * @return {ArrayBuffer} //TODO(JSDOC) 204 * @return {ArrayBuffer} //TODO(JSDOC).
205 */ 205 */
206 ImageEncoder.MetadataEncoder.prototype.encode = function() { 206 ImageEncoder.MetadataEncoder.prototype.encode = function() {
207 return new Uint8Array(0).buffer; 207 return new Uint8Array(0).buffer;
208 }; 208 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698