forked from cory/tildefriends
Docs and emoji picker and probably some other random app updates.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4124 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
@@ -61,7 +61,7 @@ class TfComposeElement extends LitElement {
|
||||
preview.innerHTML = tfutils.markdown(text);
|
||||
}
|
||||
|
||||
convert_to_webp(buffer, type) {
|
||||
convert_to_format(buffer, type, mime_type) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
let img = new Image();
|
||||
img.onload = function() {
|
||||
@@ -73,7 +73,7 @@ class TfComposeElement extends LitElement {
|
||||
canvas.height = img.height * scale;
|
||||
let context = canvas.getContext('2d');
|
||||
context.drawImage(img, 0, 0, canvas.width, canvas.height);
|
||||
let data_url = canvas.toDataURL('image/webp');
|
||||
let data_url = canvas.toDataURL(mime_type);
|
||||
let result = atob(data_url.split(',')[1]).split('').map(x => x.charCodeAt(0));
|
||||
resolve(result);
|
||||
}
|
||||
@@ -92,8 +92,18 @@ class TfComposeElement extends LitElement {
|
||||
let buffer = await file.arrayBuffer();
|
||||
let type = file.type;
|
||||
if (type.startsWith('image/')) {
|
||||
buffer = await self.convert_to_webp(buffer, file.type);
|
||||
type = 'image/webp';
|
||||
let best_buffer;
|
||||
let best_type;
|
||||
for (let format of ['image/png', 'image/jpeg']) {
|
||||
let test_buffer = await self.convert_to_format(buffer, file.type, format);
|
||||
console.log(format, test_buffer.length);
|
||||
if (!best_buffer || test_buffer.length < best_buffer.length) {
|
||||
best_buffer = test_buffer;
|
||||
best_type = format;
|
||||
}
|
||||
}
|
||||
buffer = best_buffer;
|
||||
type = best_type;
|
||||
} else {
|
||||
buffer = Array.from(new Uint8Array(buffer));
|
||||
}
|
||||
|
Reference in New Issue
Block a user