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 simpleMerci.
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 simpleMerci.
à 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![]()
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
il se trouve que wbmp fonctionne pas correctement.
et ça marche bien
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
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); ?>
source - exemple écrit par "shd at earthling dot net"
Partager