Autor Zpráva
lachim15
Profil
Zdravím, nevím kam tento dotaz zařadit, tak radši to dám do tohohle tématu.

Programuju stránku, kde jsem se rozhodl určité obrázky zmenšovat a vykreslovat pomocí canvas. Trápí mě jedna otázka ohledně této funkce a to je velikost přenesených dat. Například uživatel nahraje obrázek o velikosti 3 Mb a obrázek pomocí canvas zmenším například na 150x100 px, bude se pokaždé když někdo načte stránku načítat 3 Mb z obrázku, nebo se budou přenesená data rovnat velikosti již zmenšenému obrázku?

díky za odpověď
pcmanik
Profil
lachim15:
Keď obrázku zmenšíš fyzické rozmery tak sa veľkosť samozrejme zmenší, ale ak len obrázok pri vykreslovaní zmenšíš tak veľkosť ostane logicky pôvodná.
juriad
Profil
lachim15:
Kde ten obrázek zmenšuješ?
V javascriptu => přenáší se celých 3MB
V PHP => přenáší se jen 150x150 pixelů, což je maximálně nějakých 90kB.
Mimochodem, canvas nebude všem fungovat. Proč nepoužiješ obyčejný img?
lachim15
Profil
Mno chtěl jsem aby se uživatel nemusel starat o velikost nahraného obrázku, a abych mohl kdykoli z původního obrázku udělat rozměr, jaký potřebuji.

Todle jsem měl namysli:
<canvas id="canvas" width="180" height="120"></canvas>
<script>
      var canvas = document.getElementById('canvas');
      var context = canvas.getContext('2d');
      var x = 15;
      var y = 10;
      var width = 150;
      var height = 100;
      var imageObj = new Image();

      imageObj.onload = function() {
        context.drawImage(imageObj, x, y, width, height);
      };
      imageObj.src = '<?php echo $odkazikony ?>';
    </script>
juriad
Profil
Tak ano, stahuje se celý obrázek; je to skoro ekvivalentní <img src='<?php echo $odkazikony ?>' width="150" height="100">


Napadají mě jen samé nevýhody. Jedinou výhodou snad je, že do obrázku můžeš něco dokreslit.
lachim15
Profil
aha, to jsem potřeboval vědět :) mno zmenším to tedy nejspíš přes php
Chamurappi
Profil
Reaguji na lachima15:
Jak sis myslel, že by to mohlo fungovat? Vždyť v JS výslovně načítáš ten obrázek v původní velikosti do <img> a čekáš na jeho úplné načtení…
Ve vývojářských nástrojích svého prohlížeče (ala Firebug) nebo v monitoringu sítě (ala Fiddler) si můžeš prohlédnout, co přesně se přenáší.
lachim15
Profil
Mno JS neumím zatím vůbec používat, maximálně upravovat již hotové scripty, proto jsem si nebyl jistý, jak to přesně funguje a zeptal jsem se.. ten Firebug vypadá dobře, podívám se na něj

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: