Skip to content
Extraits de code Groupes Projets
Valider 1b541cd9 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

amelioration de la presentation de la jauge de test GD

optimisation du nombre de hits et de calculs d'image (le nombre de hits est fixe (un hit pour chaque taille testee), mais le nombre de creation d'image test est minimise par pseudo-dichotomie)
un readfile au lieu d'un redirect dans l'action (compte tenu de la taille de l'image c'est plus rentable)
ne pas activer le buffer gzip en sortie si l'on est dans une action (ne sert a rien en general, et genant dans ce cas pour renvoyer l'image)
l'affichage de la jauge est OK sous Win dans IE6/FF/Opera
parent ad480d24
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -98,6 +98,7 @@ dist/images/interface-display-comp.png -text ...@@ -98,6 +98,7 @@ dist/images/interface-display-comp.png -text
dist/images/interface-display.png -text dist/images/interface-display.png -text
dist/images/jauge-fond.gif -text dist/images/jauge-fond.gif -text
dist/images/jauge-rouge.gif -text dist/images/jauge-rouge.gif -text
dist/images/jauge-test-gd.gif -text
dist/images/jauge-vert.gif -text dist/images/jauge-vert.gif -text
dist/images/langues-12.gif -text dist/images/langues-12.gif -text
dist/images/langues-24.gif -text dist/images/langues-24.gif -text
......
dist/images/jauge-test-gd.gif

464 octets

...@@ -24,6 +24,8 @@ function action_tester_taille_dist() { ...@@ -24,6 +24,8 @@ function action_tester_taille_dist() {
$max_size_echec = isset($GLOBALS['meta']['max_taille_vignettes_echec'])?$GLOBALS['meta']['max_taille_vignettes_echec']:0; $max_size_echec = isset($GLOBALS['meta']['max_taille_vignettes_echec'])?$GLOBALS['meta']['max_taille_vignettes_echec']:0;
$max_size_test = isset($GLOBALS['meta']['max_taille_vignettes_test'])?$GLOBALS['meta']['max_taille_vignettes_test']:0; $max_size_test = isset($GLOBALS['meta']['max_taille_vignettes_test'])?$GLOBALS['meta']['max_taille_vignettes_test']:0;
$taille = intval($arg); $taille = intval($arg);
$file = _DIR_IMG_PACK . 'jauge-vert.gif';
$file_size = 94;
if (($s = $taille*$taille)>$max_size){ if (($s = $taille*$taille)>$max_size){
if (!$max_size_echec OR $s < $max_size_echec) { if (!$max_size_echec OR $s < $max_size_echec) {
...@@ -52,9 +54,17 @@ function action_tester_taille_dist() { ...@@ -52,9 +54,17 @@ function action_tester_taille_dist() {
if (!$max_size_echec OR $s < $max_size_echec) if (!$max_size_echec OR $s < $max_size_echec)
ecrire_meta('max_taille_vignettes_echec',$taille*$taille,'non'); ecrire_meta('max_taille_vignettes_echec',$taille*$taille,'non');
# image echec # image echec
redirige_par_entete(_DIR_IMG_PACK . 'jauge-rouge.gif'); $file = _DIR_IMG_PACK . 'jauge-rouge.gif';
$file_size = 84;
} }
} }
redirige_par_entete(_DIR_IMG_PACK . 'jauge-vert.gif');
header('Content-Type: image/gif');
header("Content-Length: $file_size");
header('Cache-Control: max-age=20');
header('Pragma: public');
readfile($file);
exit;
} }
?>
?>
\ No newline at end of file
...@@ -252,13 +252,13 @@ function vignettes_config() ...@@ -252,13 +252,13 @@ function vignettes_config()
echo "<div id='config-preview' class='verdana2' style='$style margin-$spip_lang_left: 40px;'>"._T('info_taille_maximale_vignette'); echo "<div id='config-preview' class='verdana2' style='$style margin-$spip_lang_left: 40px;'>"._T('info_taille_maximale_vignette');
echo "<br /><input type='text' name='taille_preview' value='$taille_preview' class='fondl' size='5' />"; echo "<br /><input type='text' name='taille_preview' value='$taille_preview' class='fondl' size='5' />";
echo " "._T('info_pixels').'<br /><br />'; echo " "._T('info_pixels');
if ($creer_preview == "oui"){ if ($creer_preview == "oui"){
// detection de taille maxi d'image manipulable avec GDx pour faire les image_reduire notamment // detection de taille maxi d'image manipulable avec GDx pour faire les image_reduire notamment
if ($GLOBALS['meta']['image_process']=='gd1' OR $GLOBALS['meta']['image_process']=='gd2') { if ($GLOBALS['meta']['image_process']=='gd1' OR $GLOBALS['meta']['image_process']=='gd2') {
lire_metas(); // on force une mise a jour des meta avant le test lire_metas(); // on force une mise a jour des meta avant le test
echo "<div id='teste_memory_size_gd' style='float:right;width:192px;background:url("._DIR_IMG_PACK . "jauge-fond.gif) repeat;'>"; echo "<div dir='ltr' id='teste_memory_size_gd' style='text-align:left;float:$spip_lang_right;width:196px;background:url("._DIR_IMG_PACK . "jauge-test-gd.gif) no-repeat top left;'>";
$max_size = isset($GLOBALS['meta']['max_taille_vignettes'])?$GLOBALS['meta']['max_taille_vignettes']:(500*500); $max_size = isset($GLOBALS['meta']['max_taille_vignettes'])?$GLOBALS['meta']['max_taille_vignettes']:(500*500);
$max_size_echec = isset($GLOBALS['meta']['max_taille_vignettes_echec'])?$GLOBALS['meta']['max_taille_vignettes_echec']:0; $max_size_echec = isset($GLOBALS['meta']['max_taille_vignettes_echec'])?$GLOBALS['meta']['max_taille_vignettes_echec']:0;
$max_size_test = isset($GLOBALS['meta']['max_taille_vignettes_test'])?$GLOBALS['meta']['max_taille_vignettes_test']:0; $max_size_test = isset($GLOBALS['meta']['max_taille_vignettes_test'])?$GLOBALS['meta']['max_taille_vignettes_test']:0;
...@@ -267,20 +267,33 @@ function vignettes_config() ...@@ -267,20 +267,33 @@ function vignettes_config()
ecrire_metas(); ecrire_metas();
} }
$maxtest = 1740; // 3MPixels $maxtest = 1740; // 3MPixels
$test = array();
$time = time();
if ($max_size >= ($maxtest-20)*($maxtest-20)) $maxtest = 2380; // 6MPixels if ($max_size >= ($maxtest-20)*($maxtest-20)) $maxtest = 2380; // 6MPixels
for ($j = 80;$j>=20;$j = $j/2){ $top = 16;
for ($j = 320;$j>=20;$j = $j/2){
echo "<div style='position:relative;top:{$top}px;$spip_lang_left:0px;'>";
$l = round($j/10); $l = round($j/10);
$lok = 0; $lbad =0; $lok = 0; $lbad =0;
for ($i = 480;$i*$i<=$max_size && $i<=$maxtest;$i+=$j) $lok += $l; $margin_left = 0;
if ($lok) echo "<img src='"._DIR_IMG_PACK . 'jauge-vert.gif'."' width='$lok' height='8' alt='' />"; $top -= 8;
for ($i = 480;$i*$i<$max_size && $i<=$maxtest;$i+=$j) $lok += $l;
if ($lok-$l+2>0)
echo "<img src='"._DIR_IMG_PACK . 'jauge-vert.gif'."' width='".($lok-$l+2)."' style='margin-right:".($l-2)."px;' height='8' alt='' />";
for (;(!$max_size_echec OR $i*$i<$max_size_echec) && $i<=$maxtest;$i+=$j){ for (;(!$max_size_echec OR $i*$i<$max_size_echec) && $i<=$maxtest;$i+=$j){
$url = generer_url_action("tester_taille", "arg=$i&time=".time()); if (!isset($test[$i])){
echo "<img src='$url' width='$l' height='8' alt='' />"; $url = generer_url_action("tester_taille", "arg=$i&time=$time");
echo "<img src='$url' width='2' style='margin-left:{$margin_left}px;margin-right:".($l-2)."px;' height='8' alt='' />";
$test[$i] = 1;
$margin_left = 0;
}
else
$margin_left += $l;
} }
for ($i;$i<=$maxtest;$i+=$j) $lbad += $l; for (;$i<=$maxtest;$i+=$j) $lbad += $l;
if ($lbad) echo "<img src='"._DIR_IMG_PACK . 'jauge-rouge.gif'."' width='$lok' height='8' alt='' />"; if ($lbad) echo "<img src='"._DIR_IMG_PACK . 'jauge-rouge.gif'."' width='$lbad' height='8' style='margin-left:{$margin_left}px;' alt='' />";
echo '<br/>'; echo "</div>";
} }
echo "</div><br style='clear:both;'>"; echo "</div><br style='clear:both;'>";
} }
...@@ -291,6 +304,7 @@ function vignettes_config() ...@@ -291,6 +304,7 @@ function vignettes_config()
effacer_meta('max_taille_vignettes_test'); effacer_meta('max_taille_vignettes_test');
ecrire_metas(); ecrire_metas();
} }
echo '<br /><br />';
echo "</div>"; echo "</div>";
$block= "'none', 'block'"; $block= "'none', 'block'";
......
...@@ -375,7 +375,7 @@ OR _request('action') == 'test_dirs')) { ...@@ -375,7 +375,7 @@ OR _request('action') == 'test_dirs')) {
// //
// si un buffer est deja ouvert, stop // si un buffer est deja ouvert, stop
if (_DIR_RESTREINT AND $flag_ob AND strlen(ob_get_contents())==0 AND !headers_sent()) { if (_DIR_RESTREINT AND _request('action')===NULL AND $flag_ob AND strlen(ob_get_contents())==0 AND !headers_sent()) {
@header("Vary: Cookie, Accept-Encoding"); @header("Vary: Cookie, Accept-Encoding");
if ( if (
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter