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

21
static/js/services/buddypicture.js

@ -50,14 +50,31 @@ @@ -50,14 +50,31 @@
mime_type = "image/jpeg";
}
var canvas = $window.document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
canvas.width = img.naturalWidth;
canvas.height = img.naturalHeight;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
return canvas.toDataURL(mime_type);
}
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 @@ -216,7 +216,6 @@ define(['underscore', 'jquery', 'modernizr', 'sjcl', 'text!partials/contactsmana
var d = this.decrypt(data.contact);
if (d) {
var contact = contactData.addByData(d);
// TODO(longsleep): Convert buddyImage string to Blob.
this.e.triggerHandler("contactadded", d);
} else {
// Remove empty or invalid entries automatically.

Loading…
Cancel
Save