Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > Imagick
Imagick Forum d'entraide pour l'extension Imagick permettant de manipuler des images en PHP (port de l'API ImageMagick).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/03/2006, 19h57   #1
Invité de passage
 
Inscription : juillet 2005
Messages : 4
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 4
Points : 1
Points : 1
Par défaut [ImageMagick] Conversion de fichiers jpeg en bmp

Bonjour,

J'aimerais convertir des fichiers JPG en BMP (et pas l'inverse) via un script PHP. J'ai effectué quelques recherches sur le net, et je suis tombé sur la bibliothèque GD. Mais j'aimerais savoir s'il y a plus simple Merci.
sheep_k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 20h35   #2
Rédacteur/Modérateur
 
Avatar de Michaël
 
Michaël Todorovic
Ingénieur systèmes et réseaux
Inscription : juillet 2003
Messages : 3 493
Détails du profil
Informations personnelles :
Nom : Michaël Todorovic
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2003
Messages : 3 493
Points : 5 899
Points : 5 899
à part utiliser un programme sur le serveur qui fait la conversion, je vois pas comment tu pourrais faire sans gd !

je te donne le nom des fonctions à utiliser
  • imagecreatefromjpeg (pour ouvrir l'image source)
  • imagesx et imagesy pour récupérer les dimensions de l'image à créer
  • imagecreatetruecolor (pour créer la nouvelle image)
  • imagecopymerge
  • imagewbmp
  • imagedestroy

la description des fonctions est dans la doc sur php.net et dans ce tuto
Michaël est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 22h43   #3
Invité de passage
 
Inscription : juillet 2005
Messages : 4
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 4
Points : 1
Points : 1
Merci beaucoup, parfait ce tuto
sheep_k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2006, 14h56   #4
Invité de passage
 
Inscription : juillet 2005
Messages : 4
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 4
Points : 1
Points : 1
J'ai un problème avec imagewbmp, ça me sort un fichier illisible de 13ko à partir d'un jpg de 45ko...

La fonction imagepng fonctionne nickel par contre... je comprends pas
sheep_k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2006, 15h23   #5
Rédacteur/Modérateur
 
Avatar de Michaël
 
Michaël Todorovic
Ingénieur systèmes et réseaux
Inscription : juillet 2003
Messages : 3 493
Détails du profil
Informations personnelles :
Nom : Michaël Todorovic
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2003
Messages : 3 493
Points : 5 899
Points : 5 899
il se trouve que wbmp fonctionne pas correctement.

Code :
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
45
<?php
function imagebmp ($im, $fn = false)
{
   if (!$im) return false;
 
   if ($fn === false) $fn = 'php://output';
   $f = fopen ($fn, "w");
   if (!$f) return false;
 
   //Image dimensions
   $biWidth = imagesx ($im);
   $biHeight = imagesy ($im);
   $biBPLine = $biWidth * 3;
   $biStride = ($biBPLine + 3) & ~3;
   $biSizeImage = $biStride * $biHeight;
   $bfOffBits = 54;
   $bfSize = $bfOffBits + $biSizeImage;
 
   //BITMAPFILEHEADER
   fwrite ($f, 'BM', 2);
   fwrite ($f, pack ('VvvV', $bfSize, 0, 0, $bfOffBits));
 
   //BITMAPINFO (BITMAPINFOHEADER)
   fwrite ($f, pack ('VVVvvVVVVVV', 40, $biWidth, $biHeight, 1, 24, 0, $biSizeImage, 0, 0, 0, 0));
 
   $numpad = $biStride - $biBPLine;
   for ($y = $biHeight - 1; $y >= 0; --$y)
   {
       for ($x = 0; $x < $biWidth; ++$x)
       {
           $col = imagecolorat ($im, $x, $y);
           fwrite ($f, pack ('V', $col), 3);
       }
       for ($i = 0; $i < $numpad; ++$i)
           fwrite ($f, pack ('C', 0));
   }
   fclose ($f);
   return true;
}
 
 
imagecreatefromjpeg('image.jpg');
header("Content-type: ".image_type_to_mime_type(IMAGETYPE_WBMP));
imagebmp($image);
?>
et ça marche bien
source - exemple écrit par "shd at earthling dot net"
Michaël est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h44.


 
 
 
 
Partenaires

Hébergement Web