Solution a la contrainte du format unique en chargement d'image (le jpg "non progressive")

Contenu du snippet

Beaucoups de flasheurs sont emmerdés a cause de la contrainte qu'impose macromedia avec loadMovie().
On ne peut charger que des jpg "non progressive".
Le probleme, c'est que sur certains contrats, on doit charger des images gif par exemple (tres frequent) ou png. Flash ne charge pas ces formats.
Je vous propose donc une solution non pas en flash, mais en php.

Non, je ne me suis pas trompé de site, et je ne posterai pas ce code sur phpcs, car c'est aux flasheurs que j'adresse ce code.

Source / Exemple :


<?php
# begin-configuration
$maxWidth 	= 200;
$maxHeight 	= 200;
# end-configuration

header("Content-Type: image/jpeg");
// amelioration de detection de l'extention par Bricomix
$ext = strtolower(substr($pic, strrpos($pic, '.') + 1));
switch($ext) {
	case "jpg":
	case "jpeg":
		$img_in = imagecreatefromjpeg($pic);
		break;
	case "gif":
		$img_in = imagecreatefromgif($pic);
		break;
	case "png":
		$img_in = imagecreatefrompng($pic);
		break;
	default:
	
}
list($width, $height, $type, $attr) = getimagesize($pic);
if (empty($noresize)) {
	$ratio = $width/$height;
	if ($ratio>=0) {
		$nw = $maxWidth;
		$nh = $maxHeight/$ratio;
	} else {
		$nw = $maxWidth/$ratio;
		$nh = $maxHeight;
	}
} else {
	$nw = $width;
	$nh = $height;
}
$img_out = imagecreatetruecolor($nw, $nh);
imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), imagesx($img_in), imagesy($img_in));

$t = imagejpeg($img_out);
echo $t;

?>

Conclusion :


Ce script va resoudre vos problemes.
seul contrainte, il ne charge que les images sur le meme server que le script. (ce qui est le cas la pluspart du temps).

l'utilisation est simple:
- pour convertir un gif, un png ou un jpg "progressive" en jpg "non progressive":
loadMovie("img.php?pic="+imageURL+"&noresize=true");

- pour convertir un gif, un png ou un jpg "progressive" en jpg "non progressive", et la redimentionner en gardant les proportions:
loadMovie("img.php?pic="+imageURL);
Dans ce dernier cas, vous devez configurer le script php pour specifier la hauteur et la largeur maximum.

Je ne met pas de source d'exemple car ceux qui ont ce probleme savent se servir de loadMovie

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.