Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Diabliyo en 7 Enero 2014, 00:55 am



Título: Convertir BMP a JPG
Publicado por: Diabliyo en 7 Enero 2014, 00:55 am
Buen dia.

Tengo un BMP de 4bits que quiero convertir a JPG, hice este codigo pero no lo consigo :(

Código
  1. <?php
  2. $jpgfile= 'imagen.jpg';
  3. $bmpfile= 'imagen.bmp';
  4.  
  5. # creamos jpg
  6. $img= imagecreatefromwbmp($bmpfile);
  7. imagejpeg($img, $jpgfile, 50); # crear imagen jpg
  8. ?>

En el Log de Apache recibo:

Código:
PHP Warning:  imagecreatefromwbmp(): 'imagen.bmp' is not a valid WBMP file in /home/diabliyo/public_html/index.php on line 22, referer: http://localhost/test/index.php
[Mon Jan 06 17:53:49 2014] [error] [client 127.0.0.1] PHP Warning:  imagejpeg() expects parameter 1 to be resource, boolean given in /home/diabliyo/public_html/index.php on line 23, referer: http://localhost/test/index.php
[Mon Jan 06 17:53:49 2014] [error] [client 127.0.0.1] PHP Warning:  imagedestroy() expects parameter 1 to be resource, boolean given in /home/diabliyo/public_html/index.php on line 24, referer: http://localhost/test/index.php

Saludos !


Título: Re: Convertir BMP a JPG
Publicado por: Diabliyo en 7 Enero 2014, 01:13 am
De momento lo he resuelto usando un programa externo, pero aun estoy con la duda si es posible resolverlo con las funciones de PHP.

La forma como lo resolvi fue usando el programa "convert" incluido en gnu/linux:

<?php
$jpgfile= 'imagen.jpg';
$bmpfile= 'imagen.bmp';
 
# creamos jpg
system( "convert ". $bmpfile. " ". $jpgfile );
?>


Título: Re: Convertir BMP a JPG
Publicado por: EFEX en 7 Enero 2014, 01:18 am
BMP y WBMP son distintos formatos y la libreria gd no soporta imagenes bitmap.

Edito: Esta clase soporta imagenes bmp utilizando GD2BMPstring.
https://github.com/Oberto/php-image-magician/


Título: Re: Convertir BMP a JPG
Publicado por: ~ Yoya ~ en 7 Enero 2014, 03:12 am
BMP y WBMP son distintos formatos y la libreria gd no soporta imagenes bitmap.

Edito: Esta clase soporta imagenes bmp utilizando GD2BMPstring.
https://github.com/Oberto/php-image-magician/

Por esa razón, la función imagecreatefromwbmp retorna false y dicho valor se almacena en la variable $img. Y a la hora de pasarla como argumentos a las funciones imagejpeg y imagedestroy, lanza un error porque le estas pasando un valor Booleano (False).


Título: Re: Convertir BMP a JPG
Publicado por: EFEX en 7 Enero 2014, 04:16 am
Si buscas imagecreatefrombmp vas a encontrar algunos scripts hechos, el problema es que funcione...

Por ej, este no soporta bmp de 32b y 16b pero de 24b si los convierte( No probe de 4bits photoshop no me dejo lol ).
https://github.com/chisimba/chisimba/blob/master/app/core_modules/files/resources/imagecreatefrombmp.php

Código
  1. $bmp    = "image.bmp";
  2. $output = "image.jpg";
  3. $image  = imagecreatefrombmp($bmp);
  4.  
  5. imagejpeg($image, $output);
  6. imagedestroy($image);


Título: Re: Convertir BMP a JPG
Publicado por: Diabliyo en 7 Enero 2014, 15:24 pm
La verdad ni quise mencionar la funcion imagcreatefrombmp porque no esta disponible por default :S !... solo imagecreatefromwbmp.

Saludos !