Bonjour!
j'aimerai savoir s'il est possible de redimensionner une image bmp.
j'ai chercher des fonctions pour cela mais je n'ai pas trouver. je vois uniquement des fonctions pour redimensionner des images gif, jpeg et png.
merci
Bonjour!
j'aimerai savoir s'il est possible de redimensionner une image bmp.
j'ai chercher des fonctions pour cela mais je n'ai pas trouver. je vois uniquement des fonctions pour redimensionner des images gif, jpeg et png.
merci
Bonjour,
La fonction imagecreatefromwbmp n'est utile que pour les fichiers WBMP (bitmap pour le wap) et n'est donc pas utilisable pour travailler avec des fichiers bitmap.
Je crois que PHP n'a aucune fonction native permettant de travailler avec ce type d'image.
Quel est ton besoin réel ?
je fait un site ou les utilisateurs envoi des images avec une taille que j'ai defini.
quand l'image est envoyé, si les dimensions ne sont pas respectées, je la redimensionne automatiquement.
Bonjour,
D'accord, ces images ne sont donc pas destinés à être affichés dans un navigateur ?
Le format bmp n'est pas recommandé pour des images web, les images étant assez lourdes et donc longues à afficher... Ce serait donc mieux de ne pas accepter les images au format BMP ou de les convertir au format jpg, plutot que de les redimensionner directement.
Sinon, comme l'a dit ThomasR il n'y a pas de fonction imagecreatefrombmp native, mais dans un commentaire de la page de manuel de imagecreratefromwbmp est proposé ce code :
http://fr.php.net/manual/fr/function...wbmp.php#83119
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 function imagecreatefrombmp( $filename ) { $file = fopen( $filename, "rb" ); $read = fread( $file, 10 ); while( !feof( $file ) && $read != "" ) { $read .= fread( $file, 1024 ); } $temp = unpack( "H*", $read ); $hex = $temp[1]; $header = substr( $hex, 0, 104 ); $body = str_split( substr( $hex, 108 ), 6 ); if( substr( $header, 0, 4 ) == "424d" ) { $header = substr( $header, 4 ); // Remove some stuff? $header = substr( $header, 32 ); // Get the width $width = hexdec( substr( $header, 0, 2 ) ); // Remove some stuff? $header = substr( $header, 8 ); // Get the height $height = hexdec( substr( $header, 0, 2 ) ); unset( $header ); } $x = 0; $y = 1; $image = imagecreatetruecolor( $width, $height ); foreach( $body as $rgb ) { $r = hexdec( substr( $rgb, 4, 2 ) ); $g = hexdec( substr( $rgb, 2, 2 ) ); $b = hexdec( substr( $rgb, 0, 2 ) ); $color = imagecolorallocate( $image, $r, $g, $b ); imagesetpixel( $image, $x, $height-$y, $color ); $x++; if( $x >= $width ) { $x = 0; $y++; } } return $image; }
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.
Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]
Tout à fait, j'ajouterais que seulement quelques navigateurs autorisent d'utiliser des images de type bitmap avec la balise <img />Le format bmp n'est pas recommandé pour des images web
Merci pour vos interventions. je pense que le mieux pour moi est de limiter les types d'images à uploader.
la solution de francoisIT est aussi intéressante.
merci beaucoup.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager