Autor Zpráva
kozaknewton
Profil *
Zdravím,

Zajímalo by mě téma ohledně obrázků nové generace (webp, jpeg2000..). Klient to po nás chtěl, ovšem víme, že né všechny prohližeče toto podporují.
Jak toto prosím řešíte?

Děkuji všem za rady :)
Bubák
Profil
Prohlížeče posílají hlavičku accept, pokud tam najdeš image/webp, tak ho podporuje.
Mám dojem, že jpeg2000 nepodporuje žáden prohlížeč.
Jak jednoduše poznat, zda prohlížeč podporuje SVG, nevím.
Klasika, GIF, JPEG a PNG se zobrazí všude.

Ediit:
Tak podle Can I use JPEG2000 podporuje Safari.
caniuse.com/#feat=jpeg2000
kozaknewton
Profil *
Jasně, ale jak mohu dopředu zjistit, jaký obrázek mu mám zobrazit...
Jde mi o to, že klient chce co nejrychleji načíst web, tedy zobrazím třeba obrázek muj-obrazek.webp, ale někomu se nezobrazí a tomu potřebuji poslat normální .jpg, tj. muj-obrazek.jpg.
blaaablaaa
Profil
kozaknewton:
Viz www.vzhurudolu.cz/prirucka/webp
Prohlížeč si sám vybere, co umí.
<picture>
  <source srcset="image.webp" type="image/webp">
  <img src="image.jpg" alt="…">
</picture>

Pokud máš obrázky na pozadí, musíš to řešit přes js (a podporu webp ti zjistí např. Modernizr a přidat si třeba do body třídu webp, pokud to podporuje):
.box {
  background-image: url("image.jpg");
}

.webp .box {
  background-image: url("image.webp");
}
Keeehi
Profil
kozaknewton:
Jasně, ale jak mohu dopředu zjistit, jaký obrázek mu mám zobrazit
Bubák ti v [#2] napsal, že prohlížeče v požadavku na tvůj server posílají hlavičku accept. Pokud v ní najdeš image/webp, pak víš že můžeš zobrazit webp obrázek.
Pseudokód
$headers = get_headers();

if(
    Pole $headers obsahuje hlavičku accept AND
    V řetězci $headers[accept] je podřetězec image/webp
)
    echo '<img src="obrazek.webp">';
else
    echo '<img src="obrazek.jpg">';

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0