SET character_set_client = x; //2- Résultats du serveur en x // mysql> SET character_set_results = x; //3- Connexion entre le client et le serveur en x // mysql> SET character_set_connection = x; return $id_conn; } ?>", $withinGroup=true) { $newArgument=charsTOHTML($argument); if($withinGroup) $formattedText=""; echo $formattedText; } //Récupération d'une fiche formatée (tableau ou liste énumérée) à partir //de plusieurs lignes séparées à l'intérieur function formatTechData($texte, $itemsSeparator, $inItemSeparator) { $items=explode($itemsSeparator, $texte); for($i=0;$i ".charsTOHTML($temp[1]); } return $formattedTechData; } ?>"; } //echo $local_log ; if($image_file_name) { $image_file_name = clean_path($image_file_name); call_user_func ('imagejpeg', $image_to_send, $home_dir.$image_file_name, $qualite); return $image_file_name; } else { header("MIME-Version: 1.0"); header("Content-Type: image/jpeg"); header("Content-Transfer-Encoding: 8bit"); call_user_func ('imagejpeg', $image_to_send, NULL, $global_quality); } } function insertImage($path, $size, $operation, $optionnal_arguments="", $atributes="") { $imageInfos = array(); $imageInfos = howToInsertImage($path, $size, $operation, $optionnal_arguments, $atributes); return ''; } function howToInsertImage($path, $size, $operation, $optionnal_arguments="", $atributes="") { $argumentsToSend = array(); //Vérification de l'existence du fichier image if(($foundFile=searchFile($path))!=FALSE) $imageToInsert=$foundFile; else $imageToInsert=$GLOBALS["default_image"]; //Determination de la taille de la fenêtre $imageSize=getimagesize($GLOBALS["home_dir"].$imageToInsert); if(!$size) { $size = $imageSize[0]."x".$imageSize[1]; } $windowWidth=substr($size, 0, strpos($size,"x")); if(!$windowWidth) $windowWidth = $imageSize[0]; $windowHeight=substr($size, strpos($size,"x")+1); if(!$windowHeight) $windowHeight = $imageSize[1]; //Récupération des valeurs optionnelles en leur créant des variables locales //Décomposition de la chaine complète $argumentsArray = explode(" ", $optionnal_arguments); foreach($argumentsArray as $option) { //effacement des balncs de chaque couple $option = trim($option); //Décomposition du couple $option_elements = explode("=",$option); //création de la variable ${$option_elements[0]} = $option_elements[1]; } //Traitements à faire selon l'oprétation demandées if(!$operation) $operation = $GLOBALS["default_process"]; switch($operation) { //Zoom case "zoom" : //Vérification du zoom if (!$zoom) $zoom = 100; $zoom = abs($zoom); //Multiplication par le facteur zoom $imageSize[0] = floor($imageSize[0]*$zoom/100); $imageSize[1] = floor($imageSize[1]*$zoom/100); $ImageHeight = $windowHeight; $ImageWidth = $windowWidth; $argumentsToSend[] = "zoom=".$zoom; break; //Adaptation comme l'étirement mais avec sauvegarde des proportions case "adapt" : //Ajustement si la taille de l'image est plus grande que la fenêtre if($imageSize[0]!=$windowWidth) { $imageSize[1] = floor($imageSize[1]*$windowWidth/$imageSize[0]); $imageSize[0] = $windowWidth; } if($imageSize[1]>$windowHeight) { $imageSize[0] = floor($imageSize[0]*$windowHeight/$imageSize[1]); $imageSize[1] = $windowHeight; } $argumentsToSend[] = "strech=1"; $ImageWidth = $imageSize[0]; $ImageHeight = $imageSize[1]; break; //Etirement case "strech": //Nous fixons la taille de l'image à la taille de la fenêtre //Nous fixons la variable strech à 1 $argumentsToSend[] = "strech=1"; $ImageWidth = $windowWidth; $ImageHeight = $windowHeight; break; //Rien ! ! ! default : case "none" : //Rien n'est fait. $argumentsToSend[] = "zoom=100"; $ImageWidth = $windowWidth; $ImageHeight = $windowHeight; break; } //Nous fixons tout débordement à l'intérieur de la fenêtre //Si l'image est plus petite alors c'est ok //Sinon tronquer voir l'alignement si possible //Si les dimensions sont différentes de celles de la fenêtre alors on appele le script: if($background_color) $argumentsToSend[] = "background_color=".$background_color; if($halign) $argumentsToSend[] = "halign=".$halign; if($valign) $argumentsToSend[] = "valign=".$valign; if($imageToInsert!=$default && ($windowWidth!=$imageSize[0] || $windowHeight!=$imageSize[1])) { $imageToInsert = "/application/templates/default/js/images.php?source=".$imageToInsert."&width=".$ImageWidth."&height=".$ImageHeight; if(count($argumentsToSend)) { $argumentsString = join("&", $argumentsToSend); $imageToInsert .= "&".$argumentsString; } //echo $optionnal_arguments; } return array($imageToInsert, $ImageWidth, $ImageHeight, $atributes); } function processImage($width, $height, $image_source, $optionnal_arguments) { global $home_dir, $global_quality; define("UNKNOWN", "0"); //Récupération des valeurs optionnelles en leur créant des variables locales //Décomposition de la chaine complète $argumentsArray = explode(" ", $optionnal_arguments); foreach($argumentsArray as $option) { //effacement des balncs de chaque couple $option = trim($option); //Décomposition du couple $option_elements = explode("=",$option); //création de la variable ${$option_elements[0]} = $option_elements[1]; } //Positionnement de certaines variable if(!isset($quality)) $quality = $global_quality; if(isset($zoom)) { if($zoom==0) unset($zoom); $zoom = abs($zoom); } //Variable de positionnement de l'image dans la fenêtre : if(!isset($valign)) $valign = $GLOBALS["valign"]; if(!isset($halign)) $halign = $GLOBALS["halign"]; //Couleur de fond ? if(!isset($background_color)) $background_color = $GLOBALS["default_bg"]; //Création de l'image à envoyer $image_to_send = creerImage($width, $height); //Récupération des composantes de la couleur de fond $background_color_integer = hexdec($background_color); //remplissage avec la couleur imagefill ($image_to_send, 0, 0, $background_color_integer); //Récupération de l'image source $image_path = searchFile($image_source); //Obtention des infos $image_info = getimagesize($home_dir.$image_path); switch($image_info[2]) { case "1" : $image_type = $function_suffix = "GIF"; break; case "2" : $image_type = "JPG"; $function_suffix = "JPEG"; break; case "3" : $image_type = $function_suffix = "PNG"; break; case "4" : $image_type = $function_suffix = "UNKNOWN"; break; case "5" : $image_type = $function_suffix = "PSD"; break; case "6" : $image_type = $function_suffix = "BMP"; break; case "7" : case "8" : $image_type = $function_suffix = "TIFF"; break; case "9" : $image_type = $function_suffix = "JPC"; break; case "10" : $image_type = $function_suffix = "JP2"; break; case "11" : $image_type = $function_suffix = "JPX"; break; case "12" : $image_type = $function_suffix = "JB2"; break; case "13" : $image_type = $function_suffix = "SWC"; break; case "14" : $image_type = $function_suffix = "IFF"; break; default : $image_type = "UNKNOWN"; } if(function_exists('imagecreatefrom'.strtolower($function_suffix))) { $image = call_user_func ('imagecreatefrom'.strtolower($function_suffix), $home_dir.$image_path); } else { $image = creerImage ($image_info[0], $image_info[1]); imagestring($image, 1, 0, 0, "No imagecreatefrom".strtolower); } if ($image) { $xFromPos = 0; $yFromPos = 0; //Si adaptation if($strech) { //désactiver le zoom $zoom = 100; //Récupération de l'image ouverte dans une variable temporaire $tmp_image = creerImage ($image_info[0], $image_info[1]); imagecopy ($tmp_image, $image, 0, 0, 0, 0, $image_info[0], $image_info[1]); //Destruction et recréation de l'image dans la bonne taille unset($image); $image = creerImage ($width, $height); //Copie et réechantillonage de l'image depuis le contenu original vers le contenu adapté imagecopyresampled($image, $tmp_image, 0, 0, 0, 0, $width, $height, $image_info[0], $image_info[1]); //destruction de l'image temporaire et ajustement des tailles de l'image unset($tmp_image); $image_info[0]=$width; $image_info[1]=$height; } if(isset($zoom)) { //Calcul de la nouvelle taille $zoomedWidth = max(floor($image_info[0]*$zoom/100),1); $zoomedHeight = max(floor($image_info[1]*$zoom/100),1); //Récupération de l'image ouverte dans une variable temporaire $tmp_image = creerImage ($image_info[0], $image_info[1]); imagecopy ($tmp_image, $image, 0, 0, 0, 0, $image_info[0], $image_info[1]); //Destruction et recréation de l'image dans la bonne taille unset($image); $image = creerImage ($zoomedWidth, $zoomedHeight); //Copie et réechantillonage de l'image depuis le contenu original vers le contenu adapté imagecopyresampled($image, $tmp_image, 0, 0, 0, 0, $zoomedWidth, $zoomedHeight, $image_info[0], $image_info[1]); //destruction de l'image temporaire et ajustement des tailles de l'image unset($tmp_image); $image_info[0]=$zoomedWidth; $image_info[1]=$zoomedHeight; switch($valign) { default : case "top" : break; case "middle": $yDecal = floor(($zoomedHeight-$height)/2); break; case "bottom": $yDecal = ($zoomedHeight-1)-$height; break; } switch($halign) { default : case "left" : break; case "center": $xDecal = floor(($zoomedWidth-$width)/2); break; case "right": $xDecal = ($zoomedWidth-1)-$width; break; } //Qui est plus petit ? if($zoomedWidth>$width) $xFromPos = $xDecal; else $xToPos = abs($xDecal); if($zoomedHeight>$height) $yFromPos = $yDecal; else $yToPos = abs($yDecal); } //Copie de l'image traitée vers l'image finale imagecopy($image_to_send, $image, $xToPos, $yToPos, $xFromPos, $yFromPos, $image_info[0], $image_info[1]); } //echo $local_log ; if($image_file_name) { $image_file_name = clean_path($image_file_name); call_user_func ('imagejpeg', $image_to_send, $home_dir.$image_file_name, $quality); return $image_file_name; } else { header("MIME-Version: 1.0"); header("Content-Type: ".image_type_to_mime_type(IMAGETYPE_JPEG)); header("Content-Transfer-Encoding: 8bit"); call_user_func ('imagejpeg', $image_to_send, NULL, $quality); } } ?>