Base64 kodiranje za slike
 
Lucifix 18. nov 2010 12:42:36 Pridružen od:
14. okt 2008
744 objav
438 12 0
#1

Na netu sem našel nekaj tutorialov, ki priporočajo base64 kodiranje za slike. Tako namesto direktne povezave za prikaz slike uporabimo kodirano povezavo (če si prav interpretiram).



En tak tutorial sem našel tukaj:

http://www.9lessons.info/2010/11/base64-encoding-for-images.html



Koda je takšna:


<?php

$img_src = "image/sample.png";
$imgbinary = fread(fopen($img_src, "r"), filesize($img_src));
$img_str = base64_encode($imgbinary);
echo '<img src="data:image/jpg;base64,'.$img_str.'" />';

?>

Če jaz prav razumem Google to priporoča zato, da ni toliko zahtevkov za strani, kjer se recimo prikaže ogromno število slik.



Ampak kljub temu, če želimo prikazovati zakodirano povezavo do slike, jo mora strežnik najprej prebrati in šele na to servirati zakodirano verzijo. In potem tu glede obremenitve nismo dosegli nič. Seveda imam v mislih dinamične strani in ne statične.


všeč(0) ni všeč(0) spam(0)
 
fatg 18. nov 2010 13:57:26 Pridružen od:
28. jan 2008
94 objav
73 2 0
#2

Ni povezava zakodirana, temveč je v HTML kar vsebina slike, enkodirana z base64, zato da nimaš v HTML datoteki binary znakov. Rezultat je en request manj (ker vsebina pride v HTMLju) in za 33% prometa več (ker je vsebina v base64).


všeč(1) ni všeč(0) spam(0)
 
Lucifix 19. nov 2010 07:00:31 Pridružen od:
14. okt 2008
744 objav
438 12 0
#3

Rezultat je en request manj (ker vsebina pride v HTMLju)




Ampak ali ne že preko te vrstice prek PHP-ja izvršimo zahtevek ali je to drugače?


$img_src = "image/sample.png";

Hvala za odgovor!


všeč(0) ni všeč(0) spam(0)
 
bl4ckb1rd 19. nov 2010 08:34:30 Pridružen od:
18. avg 2008
1122 objav
750 91 11
#4

Zgeneriral testni primer in poglej izvorno kodo v brskalniku in videl boš o čem ti govorijo. In ne, ne šteje se requeste v php-ju ampak v htmlju...


všeč(0) ni všeč(0) spam(0)
blackbird.si - Moj plac za odlaganje problemov in rešitev...
 
fatg 19. nov 2010 08:54:52 Pridružen od:
28. jan 2008
94 objav
73 2 0
#5

Lucifix:

Ampak ali ne že preko te vrstice prek PHP-ja izvršimo zahtevek ali je to drugače?


$img_src = "image/sample.png";

Hvala za odgovor!




To ni request, v tem stavku samo nastaviš ime datoteke v vrednost spremenljivke.



V vrstici


$imgbinary = fread(fopen($img_src, "r"), filesize($img_src));

pa iz te datoteke lokalno prebereš vsebino datoteke v string. Enako lahko narediš z


$imgbinary = file_get_contents($img_src);

V bistvu pa ne vidim preveč smisla za tako uporabo. Dobiš bolj obremenjen strežnik zaradi branja v php, več prometa, slabše lahko izkoristiš caching ...


všeč(2) ni všeč(0) spam(0)
 
Lucifix 19. nov 2010 09:45:49 Pridružen od:
14. okt 2008
744 objav
438 12 0
#6

@bl4ckb1rd: okey to nisem bil prepričan ali gre za eno in isto zadevo.



@fatg: sem se moral prepričati ali je to sploh smiselno, ker gre za kar opevano zadevo na netu, ampak verjetno ni vse tako kot zgleda.



Hvala obema


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se