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

Unified Diff: chrome/browser/resources/file_manager/js/image_editor/image_util.js

Issue 7541075: Pre-scaling images to speed up feedback in Image Editor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/file_manager/js/image_editor/image_util.js
diff --git a/chrome/browser/resources/file_manager/js/image_editor/image_util.js b/chrome/browser/resources/file_manager/js/image_editor/image_util.js
index 04f733d9179380ce08cc497eb433c5192561979c..51ccc8ded7aa6dc394e4a7fa415c48d60bfe8400 100644
--- a/chrome/browser/resources/file_manager/js/image_editor/image_util.js
+++ b/chrome/browser/resources/file_manager/js/image_editor/image_util.js
@@ -18,7 +18,7 @@ ImageUtil.trace = (function() {
this.container_ = container;
};
- PerformanceTrace.prototype.report_ = function(key, value) {
+ PerformanceTrace.prototype.report = function(key, value) {
if (!this.container_) return;
if (!(key in this.lines_)) {
var div = this.lines_[key] = document.createElement('div');
@@ -29,17 +29,17 @@ ImageUtil.trace = (function() {
PerformanceTrace.prototype.resetTimer = function(key) {
this.timers_[key] = Date.now();
- }
+ };
PerformanceTrace.prototype.reportTimer = function(key) {
- this.report_(key, (Date.now() - this.timers_[key]) + 'ms');
+ this.report(key, (Date.now() - this.timers_[key]) + 'ms');
};
return new PerformanceTrace();
})();
-ImageUtil.clip = function(min, value, max) {
+ImageUtil.clamp = function(min, value, max) {
return Math.max(min, Math.min(max, value));
};
@@ -169,6 +169,36 @@ Rect.prototype.inside = function(x, y) {
this.top <= y && y < this.top + this.height;
};
+/**
+ * Clamp the rectangle to the bounds by moving it.
+ * Decrease the size only if necessary.
+ */
+Rect.prototype.clamp = function(bounds) {
+ var rect = new Rect(this);
+
+ if (rect.width > bounds.width) {
+ rect.left = bounds.left;
+ rect.width = bounds.width;
+ } else if (rect.left < bounds.left){
+ rect.left = bounds.left;
+ } else if (rect.left + rect.width >
+ bounds.left + bounds.width) {
+ rect.left = bounds.left + bounds.width - rect.width;
+ }
+
+ if (rect.height > bounds.height) {
+ rect.top = bounds.top;
+ rect.height = bounds.height;
+ } else if (rect.top < bounds.top){
+ rect.top = bounds.top;
+ } else if (rect.top + rect.height >
+ bounds.top + bounds.height) {
+ rect.top = bounds.top + bounds.height - rect.height;
+ }
+
+ return rect;
+};
+
/*
* Useful shortcuts for drawing (static functions).
*/
@@ -177,6 +207,8 @@ Rect.prototype.inside = function(x, y) {
* Draws the image in context with appropriate scaling.
*/
Rect.drawImage = function(context, image, dstRect, srcRect) {
+ dstRect = dstRect || new Rect(context.canvas);
SeRya 2011/08/08 13:26:44 Shouldn't it be dstRect_opt ans srcRect_opt?
Vladislav Kaznacheev 2011/08/08 13:47:51 Done.
+ srcRect = srcRect || new Rect(image);
context.drawImage(image,
srcRect.left, srcRect.top, srcRect.width, srcRect.height,
dstRect.left, dstRect.top, dstRect.width, dstRect.height);
@@ -223,7 +255,7 @@ function Circle(x, y, R) {
this.x = x;
this.y = y;
this.squaredR = R * R;
-};
+}
Circle.prototype.inside = function(x, y) {
x -= this.x;

Powered by Google App Engine
This is Rietveld 408576698