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

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

Issue 12262017: Revert 182285 (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 /**
11 * @type {Array.<Object>}
12 */
11 ImageEncoder.metadataEncoders = {}; 13 ImageEncoder.metadataEncoders = {};
12 14
13 //TODO(JSDOC) 15 /**
16 * @param {function(new:ImageEncoder.MetadataEncoder)} constructor
17 * //TODO(JSDOC).
18 * @param {string} mimeType //TODO(JSDOC).
19 */
14 ImageEncoder.registerMetadataEncoder = function(constructor, mimeType) { 20 ImageEncoder.registerMetadataEncoder = function(constructor, mimeType) {
15 ImageEncoder.metadataEncoders[mimeType] = constructor; 21 ImageEncoder.metadataEncoders[mimeType] = constructor;
16 }; 22 };
17 23
18 /** 24 /**
19 * Create a metadata encoder. 25 * Create a metadata encoder.
20 * 26 *
21 * The encoder will own and modify a copy of the original metadata. 27 * The encoder will own and modify a copy of the original metadata.
22 * 28 *
23 * @param {Object} metadata Original metadata. 29 * @param {Object} metadata Original metadata.
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 thumbnailCanvas.height = Math.round(canvas.height / opt_shrinkage); 140 thumbnailCanvas.height = Math.round(canvas.height / opt_shrinkage);
135 141
136 var context = thumbnailCanvas.getContext('2d'); 142 var context = thumbnailCanvas.getContext('2d');
137 context.drawImage(canvas, 143 context.drawImage(canvas,
138 0, 0, canvas.width, canvas.height, 144 0, 0, canvas.width, canvas.height,
139 0, 0, thumbnailCanvas.width, thumbnailCanvas.height); 145 0, 0, thumbnailCanvas.width, thumbnailCanvas.height);
140 146
141 return thumbnailCanvas; 147 return thumbnailCanvas;
142 }; 148 };
143 149
150 /**
151 * TODO(JSDOC)
152 * @param {string} string //TODO(JSDOC).
153 * @param {number} from //TODO(JSDOC).
154 * @param {number} to //TODO(JSDOC).
155 * @return {ArrayBuffer} //TODO(JSDOC).
156 */
144 ImageEncoder.stringToArrayBuffer = function(string, from, to) { 157 ImageEncoder.stringToArrayBuffer = function(string, from, to) {
145 var size = to - from; 158 var size = to - from;
146 var array = new Uint8Array(size); 159 var array = new Uint8Array(size);
147 for (var i = 0; i != size; i++) { 160 for (var i = 0; i != size; i++) {
148 array[i] = string.charCodeAt(from + i); 161 array[i] = string.charCodeAt(from + i);
149 } 162 }
150 return array.buffer; 163 return array.buffer;
151 }; 164 };
152 165
153 /** 166 /**
154 * A base class for a metadata encoder. 167 * A base class for a metadata encoder.
155 * 168 *
156 * Serves as a default metadata encoder for images that none of the metadata 169 * Serves as a default metadata encoder for images that none of the metadata
157 * parsers recognized. 170 * parsers recognized.
158 * 171 *
159 * @constructor 172 * @constructor
160 * @param {Object} original_metadata Starting metadata. 173 * @param {Object} original_metadata Starting metadata.
161 */ 174 */
162 ImageEncoder.MetadataEncoder = function(original_metadata) { 175 ImageEncoder.MetadataEncoder = function(original_metadata) {
163 this.metadata_ = ImageUtil.deepCopy(original_metadata) || {}; 176 this.metadata_ = ImageUtil.deepCopy(original_metadata) || {};
164 if (this.metadata_.mimeType != 'image/jpeg') { 177 if (this.metadata_.mimeType != 'image/jpeg') {
165 // Chrome can only encode JPEG and PNG. Force PNG mime type so that we 178 // Chrome can only encode JPEG and PNG. Force PNG mime type so that we
166 // can save to file and generate a thumbnail. 179 // can save to file and generate a thumbnail.
167 this.metadata_.mimeType = 'image/png'; 180 this.metadata_.mimeType = 'image/png';
168 } 181 }
169 }; 182 };
170 183
184 /**
185 * TODO(JSDOC)
186 * @return {Object} //TODO(JSDOC).
187 */
171 ImageEncoder.MetadataEncoder.prototype.getMetadata = function() { 188 ImageEncoder.MetadataEncoder.prototype.getMetadata = function() {
172 return this.metadata_; 189 return this.metadata_;
173 }; 190 };
174 191
175 /** 192 /**
176 * @param {HTMLCanvasElement|Object} canvas Canvas or or anything with 193 * @param {HTMLCanvasElement|Object} canvas Canvas or or anything with
177 * width and height properties. 194 * width and height properties.
178 */ 195 */
179 ImageEncoder.MetadataEncoder.prototype.setImageData = function(canvas) { 196 ImageEncoder.MetadataEncoder.prototype.setImageData = function(canvas) {
180 this.metadata_.width = canvas.width; 197 this.metadata_.width = canvas.width;
(...skipping 19 matching lines...) Expand all
200 findInsertionRange = function(encodedImage) { return {from: 0, to: 0} }; 217 findInsertionRange = function(encodedImage) { return {from: 0, to: 0} };
201 218
202 /** 219 /**
203 * Return serialized metadata ready to write to an image file. 220 * Return serialized metadata ready to write to an image file.
204 * The return type is optimized for passing to Blob.append. 221 * The return type is optimized for passing to Blob.append.
205 * @return {ArrayBuffer} //TODO(JSDOC). 222 * @return {ArrayBuffer} //TODO(JSDOC).
206 */ 223 */
207 ImageEncoder.MetadataEncoder.prototype.encode = function() { 224 ImageEncoder.MetadataEncoder.prototype.encode = function() {
208 return new Uint8Array(0).buffer; 225 return new Uint8Array(0).buffer;
209 }; 226 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698