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

report de [15274]

parent 557451b7
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -13,6 +13,15 @@ ...@@ -13,6 +13,15 @@
if (!defined("_ECRIRE_INC_VERSION")) return; if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/headers'); include_spip('inc/headers');
function action_tester_taille_error_handler($output)
{
// on est ici, donc echec lors de la creation de l'image
if ($error = error_get_last()){
return redirige_formulaire($GLOBALS['redirect']);
}
return $output;
}
// Tester nos capacites a creer des images avec GD2 (taille memoire) // Tester nos capacites a creer des images avec GD2 (taille memoire)
// http://doc.spip.org/@action_tester_taille_dist // http://doc.spip.org/@action_tester_taille_dist
...@@ -23,64 +32,59 @@ function action_tester_taille_dist() { ...@@ -23,64 +32,59 @@ function action_tester_taille_dist() {
$max_size = isset($GLOBALS['meta']['max_taille_vignettes'])?$GLOBALS['meta']['max_taille_vignettes']:0; $max_size = isset($GLOBALS['meta']['max_taille_vignettes'])?$GLOBALS['meta']['max_taille_vignettes']:0;
$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(_request('arg'));
$file = chemin_image('jauge-vert.gif'); $taille = _request('arg');
$file_size = 94; $taille = explode('-',$taille);
if (($s = $taille*$taille)>$max_size){ $GLOBALS['taille_max'] = end($taille);
if (!$max_size_echec OR $s < $max_size_echec) { $GLOBALS['taille_min'] = 0;
include_spip('inc/filtres'); if (count($taille)>1)
// des inclusions representatives d'un hit prive et/ou public pour la conso memoire $GLOBALS['taille_min'] = reset($taille);
include_spip('public/assembler');
include_spip('public/balises'); // si l'intervalle est assez petit, on garde la valeur min
include_spip('public/boucles'); if ($GLOBALS['taille_max']*$GLOBALS['taille_max']-$GLOBALS['taille_min']*$GLOBALS['taille_min']<50000){
include_spip('public/cacher'); ecrire_meta('max_taille_vignettes',$t=$GLOBALS['taille_min']*$GLOBALS['taille_min'],'non');
include_spip('public/compiler'); echo round($t/1000000,3).' Mpx';
include_spip('public/composer'); die();
include_spip('public/criteres');
include_spip('public/interfaces');
include_spip('public/parametrer');
include_spip('public/phraser_html');
include_spip('public/references');
include_spip('inc/presentation');
include_spip('inc/charsets');
include_spip('inc/documents');
$dummy = propre("<doc1>");
$image_source = chemin_image("test.png");
$row = sql_fetsel("valeur", "spip_meta", "nom='max_taille_vignettes_test'");
if ($row) $max_size_test = $row['valeur'];
if (!$max_size_test OR $max_size_test>$s)
ecrire_meta('max_taille_vignettes_test',$s,'non');
$result = filtrer('image_recadre',$image_source,$taille,$taille);
// on est ici, donc pas de plantage
if ($max_size_test>$s)
ecrire_meta('max_taille_vignettes_test',$max_size_test,'non');
else
effacer_meta('max_taille_vignettes_test');
$src = extraire_attribut($result,'src');
}
// et maintenant envoyer la vignette de tests
if ($src) {
ecrire_meta('max_taille_vignettes',$taille*$taille,'non');
spip_unlink($src);
}
else {
if (!$max_size_echec OR $s < $max_size_echec)
ecrire_meta('max_taille_vignettes_echec',$taille*$taille,'non');
# image echec
$file = chemin_image('jauge-rouge.gif');
$file_size = 84;
}
} }
header('Content-Type: image/gif'); $taille = $GLOBALS['taille_test'] = round(($GLOBALS['taille_max']+$GLOBALS['taille_min'])/2);
header("Content-Length: $file_size");
header('Cache-Control: max-age=20'); include_spip('inc/filtres');
header('Pragma: public'); // des inclusions representatives d'un hit prive et/ou public pour la conso memoire
readfile($file); include_spip('public/assembler');
exit; include_spip('public/balises');
include_spip('public/boucles');
include_spip('public/cacher');
include_spip('public/compiler');
include_spip('public/composer');
include_spip('public/criteres');
include_spip('public/interfaces');
include_spip('public/parametrer');
include_spip('public/phraser_html');
include_spip('public/references');
include_spip('inc/presentation');
include_spip('inc/charsets');
include_spip('inc/documents');
include_spip('inc/header');
$dummy = propre("<doc1>");
$i = _request('i')+1;
$image_source = chemin_image("test.png");
$GLOBALS['redirect'] = generer_url_action("tester_taille", "i=$i&arg=".$GLOBALS['taille_min']."-".$GLOBALS['taille_test']);
ob_start('action_tester_taille_error_handler');
$result = filtrer('image_recadre',$image_source,$taille,$taille);
$GLOBALS['redirect'] = generer_url_action("tester_taille", "i=$i&arg=$taille-".$GLOBALS['taille_max']);
// si la valeur intermediaire a reussi, on teste la valeur maxi qui est peut etre sous estimee
$taille = $GLOBALS['taille_max'];
$result = filtrer('image_recadre',$image_source,$taille,$taille);
$GLOBALS['redirect'] = generer_url_action("tester_taille", "i=$i&arg=$taille-".$GLOBALS['taille_max']);
ob_end_clean();
// on est ici, donc pas de plantage
echo redirige_formulaire($GLOBALS['redirect']);
} }
?> ?>
...@@ -74,47 +74,15 @@ function configuration_reducteur_dist() ...@@ -74,47 +74,15 @@ function configuration_reducteur_dist()
$test_out = ""; $test_out = "";
if ($GLOBALS['meta']['image_process']=='gd1' OR $GLOBALS['meta']['image_process']=='gd2') { if ($GLOBALS['meta']['image_process']=='gd1' OR $GLOBALS['meta']['image_process']=='gd2') {
$test_out .= "<p>"._T('info_taille_maximale_images')."</p>"; effacer_meta('max_taille_vignettes');
$test_out .= "<p>"._T('info_taille_maximale_images')."</p>";
$test_out .= "<div dir='ltr' id='teste_memory_size_gd' style='text-align:left;float:$spip_lang_right;width:196px;background:url(". chemin_image('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_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;
if ($max_size_test<$max_size_echec OR ($max_size_test AND !$max_size_echec)){
ecrire_meta('max_taille_vignettes_echec',$max_size_echec = $max_size_test,'non');
}
$maxtest = 1740; // 3MPixels
$test = array();
$time = time(); $time = time();
if ($max_size >= ($maxtest-20)*($maxtest-20)) $maxtest = 2380; // 6MPixels $url = generer_url_action("tester_taille", "arg=3000&time=$time");
$top = 16; $test_out .= "<iframe style='border:0;height:3em;overflow:hidden;' src='$url'></iframe>";
for ($j = 320;$j>=20;$j = $j/2){ $test_out .= "<br style='clear:both;' />";
$test_out .= "<div style='position:relative;top:{$top}px;$spip_lang_left:0px;font-size:1px;height:8px;'>"; }
$l = round($j/10); else {
$lok = 0; $lbad =0; effacer_meta('max_taille_vignettes');
$margin_left = 0;
$top -= 8;
for ($i = 480;$i*$i<$max_size && $i<=$maxtest;$i+=$j) $lok += $l;
if ($lok-$l+2>0)
$test_out .= "<img src='". chemin_image('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){
if (!isset($test[$i])){
$url = generer_url_action("tester_taille", "arg=$i&time=$time");
$test_out .= "<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<=$maxtest;$i+=$j) $lbad += $l;
if ($lbad) $test_out .= "<img src='" . chemin_image('jauge-rouge.gif') . "' width='$lbad' height='8' style='margin-left:{$margin_left}px;' alt='' />";
$test_out .= "</div>";
}
$test_out .= "</div><br style='clear:both;' />";
} else {
effacer_meta('max_taille_vignettes');
effacer_meta('max_taille_vignettes_echec');
effacer_meta('max_taille_vignettes_test');
} }
return ajax_action_greffe("configurer-reducteur", '', return ajax_action_greffe("configurer-reducteur", '',
......
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