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

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

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

Powered by Google App Engine
This is Rietveld 408576698