Convertir BMP a JPG

Iniciado por Diabliyo, 7 Enero 2014, 00:55 AM

0 Miembros y 1 Visitante están viendo este tema.

Diabliyo

Buen dia.

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

Código (php) [Seleccionar]
<?php
$jpgfile
'imagen.jpg';
$bmpfile'imagen.bmp';

# creamos jpg
$imgimagecreatefromwbmp($bmpfile);
imagejpeg($img$jpgfile50); # crear imagen jpg
imagedestroy($img);
?>


En el Log de Apache recibo:

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 !

Diabliyo

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 );
?>

EFEX

#2
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/
GITHUB 

~ Yoya ~

Cita de: 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/

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).
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

EFEX

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 (PHP) [Seleccionar]

$bmp    = "image.bmp";
$output = "image.jpg";
$image  = imagecreatefrombmp($bmp);

imagejpeg($image, $output);
imagedestroy($image);
GITHUB 

Diabliyo

La verdad ni quise mencionar la funcion imagcreatefrombmp porque no esta disponible por default :S !... solo imagecreatefromwbmp.

Saludos !