Jose Salazar commited on
Commit
1441be7
·
1 Parent(s): c51b22a

Resize uploaded images to 1024px max to prevent mobile network errors from large payloads

Browse files
Files changed (1) hide show
  1. js/ui.js +17 -6
js/ui.js CHANGED
@@ -315,12 +315,23 @@ document.querySelectorAll('.zona-imagen').forEach(zona => {
315
  if (!file) return;
316
  const reader = new FileReader();
317
  reader.onload = ev => {
318
- imagenesDataUrl[indice] = ev.target.result;
319
- vistaPrevia.src = ev.target.result;
320
- vistaPrevia.hidden = false;
321
- btnQuitar.hidden = false;
322
- vacia.hidden = true;
323
- zona.classList.add('con-imagen');
 
 
 
 
 
 
 
 
 
 
 
324
  };
325
  reader.readAsDataURL(file);
326
  });
 
315
  if (!file) return;
316
  const reader = new FileReader();
317
  reader.onload = ev => {
318
+ const img = new Image();
319
+ img.onload = () => {
320
+ const MAX_PIXELES = 1024;
321
+ const scale = Math.min(MAX_PIXELES / img.width, MAX_PIXELES / img.height, 1);
322
+ const canvas = document.createElement('canvas');
323
+ canvas.width = Math.round(img.width * scale);
324
+ canvas.height = Math.round(img.height * scale);
325
+ canvas.getContext('2d').drawImage(img, 0, 0, canvas.width, canvas.height);
326
+ const dataUrl = canvas.toDataURL('image/jpeg', 0.85);
327
+ imagenesDataUrl[indice] = dataUrl;
328
+ vistaPrevia.src = dataUrl;
329
+ vistaPrevia.hidden = false;
330
+ btnQuitar.hidden = false;
331
+ vacia.hidden = true;
332
+ zona.classList.add('con-imagen');
333
+ };
334
+ img.src = ev.target.result;
335
  };
336
  reader.readAsDataURL(file);
337
  });