Zkratka na hlavní stranu: Alt + Shift + horní 2(ě)
Linkedin FB e-mail Google Plus Twitter

Hledat na tomto webu

 
 

PHP – Přepočet rozměrů obrázku podle omezení šířky nebo výšky při zachování poměru stran
(vrací rozměry a HTML atributy)

 

Vytvořeno
asi 2013

 

Jednoduchá PHP funkce, jejímž smyslem je změna velikosti obrázku. Máte-li obrázek s naprosto libovolným (neznámým a neovlivnitelným) poměrem stran,
a k tomu omezení pro maximální výšku obrázku i pro maximální šířku obrázku, aby se vám obrázek vešel do rozložení webu,
čeká tato funkce právě na vás.

  /******Přepočet rozměrů obrázku podle omezení šířky nebo výšky při zachování poměru stran********/  
  /******Recalculation of size of image by limit for width or height, keeping aspect ratio********/
  function new_image_size($width, $height, $maxwidth, $maxheight=0)
    { // Vstupní parametry: 
      //    2x aktuální velikost obrázku (Ale ve většině případů místo nich můžete použít nativní funkci getimagesize().); 
      //    2x maximální požadovaný rozměr obrázku (0 == bez omezení), můžete vypustit poslední parametr pro maximální výšku (dosadí se 0 == neomezeně)   
      
      // Na vstupu můžete zadat rozměry obrázku s jakýmkoliv skutečným poměrem stran (poměr stran může být jiný než je poměr nejvyšších mezních rozměrů)
      // Na vstupu můžete zadat nejvyšší přípustné hodnoty pro šířku, nebo pro výšku, nebo pro obě  
      // Na výstupu dostanete šířku, výšku a XHTML kód s oběma těmi hodnotami
    
      // Autor: Martin Adámek, www.adamek.cz, Náchod 
      // Na internetu se vyskytuje mnoho podobných funkcí, ale hledání nějaké stejně univerzální jako je tato by zabralo více času než si tu funkci napsat: 

      if (($maxheight>0)and($maxheight<$height))
        { $width  = $width*$maxheight/$height;
          $height = $maxheight;
        }
      
      //Nepoužívejte tady 'elseif' ani 'else'! Funkce je připravená na obrázky s poměrem stran hodně odlišným od poměru horních omezení rozměrů. Takže je možné, že velikost bude opravena už v prvním kroku, ale nebude to stačit, takže bude znovu opravena ve druhém kroku!  
      //Do not use 'elseif' (n)or 'else' here! Function is ready for sizes of image with aspect ratio very different from aspect ratio of limits for size. So it is possible that size will be corrected already in first step, but it will not be enough, so it will be corrected again in second step!
      if (($maxwidth>0)and($maxwidth<$width))  
        { $height = $height*$maxwidth/$width;
          $width  = $maxwidth;
        }
      return array($width, $height, 'width="'.$width.'" height="'.$height.'"');
    }

Skok nahoru na: Navigační menu
(klávesová zkratka Alt + Shift + horní „5”)

Zaujala Vás tato stránka?

  • Přidat do záložek (Ctrl+D)
  • Sdílet odkaz (vysílačka)Skok nahoru na:
  • Vytisknout (Ctrl+P)
  • Citovat podle ČSN ISO 690

    Tuto stránku

    ADÁMEK, Martin. PHP – Přepočet rozměrů obrázku podle omezení šířky nebo výšky při zachování poměru stran: (vrací rozměry a HTML atributy). Martin Adámek [online]. Náchod / Meziměstí [cit. 2024-11-21]. Dostupné z: https://www.adamek.cz/sw/php/prepocet-rozmeru-obrazku

    Celý web

    ADÁMEK, Martin. Martin Adámek [online]. Náchod / Meziměstí [cit. 2024-11-21]. Dostupné z: https://www.adamek.cz

 

 
 

Národní kulturní dědictví

WebArchiv – Stránky archivovány Národní knihovnou ČR Tyto stránky jsou pravidelně archivovány Národní knihovnou ČR pro svou kulturní, vzdělávací, vědeckou, výzkumnou nebo jinou informační hodnotu za účelem dokumentace autentického vzorku českého webu. Jsou součástí kolekce českých webových stránek, které NK ČR hodlá dlouhodobě uchovávat a zpřístupňovat pro budoucí generace. Jejich záznam je součástí České národní bibliografie a katalogu NK ČR.  

 

 
 

Pro rozptýlení

Bernardýn běžící rychlostí 10 km/h nese pouzdro s 10 disky DVD, každý s daty o velikosti 4,7 GB.
Přenese na trase 8 km data rychleji, než síť Fast Ethernet 100 Mbps?

 

Pro zamyšlení

Kritizovat – to znamená usvědčit autora, že to nedělá tak, jak bych to dělal já, kdybych to uměl.
[Karel Čapek]