Browse Source

Fixed sizing of contact buddy pictures on creation.

pull/111/head
Simon Eisenmann 11 years ago
parent
commit
db82f8e8e8
  1. 2
      static/js/filters/buddyimagesrc.js
  2. 21
      static/js/services/buddypicture.js
  3. 1
      static/js/services/contacts.js

2
static/js/filters/buddyimagesrc.js

@ -72,7 +72,7 @@ define(["underscore"], function(_) {
// Check if we should handle it as blob. // Check if we should handle it as blob.
url = display.buddyPicture; url = display.buddyPicture;
if (url.indexOf("data:") === 0) { if (url.indexOf("data:") === 0) {
var blob = buddyPicture.toBlob(null, url); var blob = buddyPicture.toBlob(url);
url = display.buddyPictureLocalUrl = urls[id] = blobToObjectURL(blob); url = display.buddyPictureLocalUrl = urls[id] = blobToObjectURL(blob);
return url; return url;
} }

21
static/js/services/buddypicture.js

@ -50,14 +50,31 @@
mime_type = "image/jpeg"; mime_type = "image/jpeg";
} }
var canvas = $window.document.createElement("canvas"); var canvas = $window.document.createElement("canvas");
canvas.width = img.width; canvas.width = img.naturalWidth;
canvas.height = img.height; canvas.height = img.naturalHeight;
var ctx = canvas.getContext("2d"); var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0); ctx.drawImage(img, 0, 0);
return canvas.toDataURL(mime_type); return canvas.toDataURL(mime_type);
} }
return null; return null;
},
toBlob: function(dataUrl, img, mime_type) {
if (img) {
dataUrl = buddyPicture.toString(img, mime_type);
}
var byteString = atob(dataUrl.split(",")[1]);
var mimeString = dataUrl.split(",")[0].split(":")[1].split(";")[0];
var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
return new Blob([ab], {type: mimeString});
} }
}; };

1
static/js/services/contacts.js

@ -216,7 +216,6 @@ define(['underscore', 'jquery', 'modernizr', 'sjcl', 'text!partials/contactsmana
var d = this.decrypt(data.contact); var d = this.decrypt(data.contact);
if (d) { if (d) {
var contact = contactData.addByData(d); var contact = contactData.addByData(d);
// TODO(longsleep): Convert buddyImage string to Blob.
this.e.triggerHandler("contactadded", d); this.e.triggerHandler("contactadded", d);
} else { } else {
// Remove empty or invalid entries automatically. // Remove empty or invalid entries automatically.

Loading…
Cancel
Save