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.'"');
    }

Komentáře návštěvníků

Poskytovatelé diskusních služeb (Facebook, Disqus) si do cookies ve vašem prohlížeči ukládají různé údaje, čímž mohou narušit vaše soukromí. Načtením diskusí na vaši žádost s tím souhlasíte.
Na drtivé většině webů se plug-iny Facebooku, Googlu, Disqusu a jiných třetích stran načítají automaticky; a že u mě se to děje až na vaše výslovné přání (tedy většinou neděje), je moje specialitka pro ochranu vašeho soukromí.
Discussion plugins from 3rd parties (Facebook, Disqus) provide information about you to theirs providers, saving some information into cookies in your browser. If you will load discussion on your request, it means you agree with it.

Pokud máte účet na Facebooku

(nebo jiném z několika podporovaných serverů)

Chovejte se tady jako doma, ať vidíme, jak to u vás vypadá.
[nápis v linkovém autobusu]

A priori upřímně doufám, že mě obsah a forma příspěvků nedonutí k žádným moderátorským zásahům,
ale právo zásahu si vyhrazuji, protože tyto komentáře jsou přístupné komukoliv, kdo se zaregistroval na FB, a já netuším, co se tu může objevit.

V souvislosti s vkládáním odkazů na Vaše weby do komentářů nejsem hysterický. Odkaz na nekomerční web s relevantním obsahem, který může pomoci ostatním návštěvníkům, uvítám.

 
Načíst sem facebookové komentáře
pro čtení (aktuální počet: 0)
nebo přidání vlastního

(vyžadován javascript)
 
Komentáře se záměrně nenačítají samy, aby až do jejich načtení:
Facebook nevěděl, že jste tady právě vy,
nezkazila se přizpůsobivost webu a kvalita kódu
a nezvyšoval se datový tok.
 
Facebook ví, že tuto stránku teď někdo navštívil, ale na rozdíl od řešení obvyklého na drtivé většině jiných webů s FB pluginy tady díky mému způsobu realizace nepoznal, že jste to byli právě vy.

 

Pokud nemáte účet na Facebooku

Komentářový plugin Facebooku umožňuje vkládat komentáře i prostřednictvím účtů na několika dalších serverech (i když u nás nejsou moc používané).

Pokud nemáte žádný účet, prostřednictvím kterého byste sem mohli napsat komentář, neberte to jako diskriminaci. Zkrátka jsou tu komentáře alespoň pro uživatele FB a pár dalších serverů, což je lepší, než kdyby tu nebyly vůbec.

Kromě zjevné nevýhody má toto řešení i své výhody:

  • Při použití své FB identity by se většina uživatelů mohla zamyslet, co vypouští z prstů.
  • Odkaz na komentovanou stránku se může šířít Facebookem.
  • Ve výchozím nastavení se přednostně zobrazují komentáře zanechané návštěvníkovými facebookovými známými, což v důsledku podporuje obě předchozí výhody.

Navíc většina neuživatelů FB zůstává mimo FB ze svého vlastního rozhodnutí, takže jim neužívání Facebooku přináší různé pro ně důležité výhody (soukromí, čas), které snad vykompenzují nemožnost sem něco napsat.
Případně je možné jako náhradní možnost použít návštěvní knihu společnou pro celý web.
Časem třeba napíšu nebo nasadím nějaký jiný komentářový systém, který bude mít menší omezení pro komentátory, ale teď je tu alespoň toto.

Ale i tak si můžete alespoň přečíst komentáře od ostatních.

Strukturovaný opis komentářů

Pro:

  • paranoidní jedince, kteří nechtějí, aby FB věděl, že právě oni navštívili tuto stránku,
  • programátory, kterým se ta struktura vnořených polí bude líbit,
  • uživatele mobilních zařízení, kteří nechtějí, aby FB pokazil přizpůsobivost webu,
  • případný prohlížeč bez javascriptu
  • webový archiv, který si je takto uloží jako statický text dostupný v budoucnu i bez spolupráce Facebooku.
Array
(
    [error] => Array
        (
            [message] => (#4) Application request limit reached
            [type] => OAuthException
            [is_transient] => 1
            [code] => 4
            [fbtrace_id] => HaHOlr9FJdr
        )

)

Komentáře Disqus

Sem se javascriptem vkládají komentáře Disqus, teď Vám ale asi javascript nefunguje.
System for comments Disqus doesn't work without javascript.

Skok nahoru na: Navigační menu (klávesová zkratka „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 [cit. 2017-10-22]. Dostupné z: http://www.adamek.cz/sw/php/prepocet-rozmeru-obrazku

    Celý web

    ADÁMEK, Martin. Martin Adámek [online]. Náchod [cit. 2017-10-22]. Dostupné z: http://www.adamek.cz

 

 
 

Národní kulturní dědictví

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í

Pro matematika je reálný život jenom speciální případ.

 

Pro zamyšlení

Žít, to je nejvzácnější věc na světě, neboť většina lidí jenom existuje.
[Oscar Wilde]