Foros del Web » Programando para Internet » PHP »

Redimensionar y subir imagen bmp

Estas en el tema de Redimensionar y subir imagen bmp en el foro de PHP en Foros del Web. Hola, estoy teniendo un gran problema, al intentar subir y redimensionar con mi script una imagen bmp.. no me la carga (o sea la subo ...
  #1 (permalink)  
Antiguo 16/03/2011, 17:54
 
Fecha de Ingreso: abril-2008
Mensajes: 39
Antigüedad: 16 años
Puntos: 1
Redimensionar y subir imagen bmp

Hola, estoy teniendo un gran problema, al intentar subir y redimensionar con mi script una imagen bmp.. no me la carga (o sea la subo y todo hermoso, pero me aparece en color negro ¬¬)

Si no redimensiono la imagen, me la sube lo mas bien, pero necesito que se pueda redimensionar

Realmente, necesito ayuda en esto... por que hace 1 mes vengo con lo mismo, mas que nada, por que tengo un "juego",que crea las imagenes bmp, pero le pone extension "jpg" ¬¬, y al subirla, me genera el problema XD

Espero que puedan ayudarme...

Por otra parte, si no se puede redimensionar, cambiar la extension, siempre tomando en cuenta que no me ponga la imagen en negro :S, o sea que se mantenga como es originalmente, solo que mas chica :D

Cya!
  #2 (permalink)  
Antiguo 16/03/2011, 18:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Redimensionar y subir imagen bmp

Usa el buscador del foro, hay varios aportes para redimensionar imagenes, seguramente alguno te sera de utilidad.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 16/03/2011, 18:23
 
Fecha de Ingreso: abril-2008
Mensajes: 39
Antigüedad: 16 años
Puntos: 1
Respuesta: Redimensionar y subir imagen bmp

ya estuve buscando, y por eso hago el post... por que no encuentro nada referente al problema de dichas imagenes :S, y sin utilizar librerias externas T.T

Cya!
  #4 (permalink)  
Antiguo 16/03/2011, 18:36
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 2 meses
Puntos: 13
Respuesta: Redimensionar y subir imagen bmp

Cita:
ya estuve buscando, y por eso hago el post... por que no encuentro nada referente al problema de dichas imagenes :S, y sin utilizar librerias externas T.T
significa q no quieres utilizar una librería externa? esq te iba a proponer una.. es un JS q con Jquery ya importado son +7Kb, pero tiene que pasar por el usuario para que la redimensione (CREO!)
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #5 (permalink)  
Antiguo 16/03/2011, 18:48
 
Fecha de Ingreso: abril-2008
Mensajes: 39
Antigüedad: 16 años
Puntos: 1
Respuesta: Redimensionar y subir imagen bmp

yo lo que busco es cambiar el formato, de bmp a jpg, y en el caso de tener que usar libreria, que sea para redimensionarlo, y subirlo sin problemas :P

Cya

PD: Gracias por la ayuda:D
  #6 (permalink)  
Antiguo 16/03/2011, 19:14
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 2 meses
Puntos: 13
Respuesta: Redimensionar y subir imagen bmp

En ese caso, no tengo qué pasarte... pero, Nose si conoces, si hablas inglés, aqui fijo que lo encuentras: http://stackoverflow.com/search?q=co...+jpg+using+php
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #7 (permalink)  
Antiguo 17/03/2011, 18:57
 
Fecha de Ingreso: abril-2008
Mensajes: 39
Antigüedad: 16 años
Puntos: 1
Respuesta: Redimensionar y subir imagen bmp

Gracias pero realmente no entiendo ingles, y por lo poco que vi, siempre se utilizan librerias, alguien por favor, me podria confirmar que la "transfusion", del pasaje de una imagen en bmp a jpg, o el redimensionamiento de un bmp, con una libreria, es 100% eficaz?, por que hasta ahora, solo obtengo imagenes muy malas, y si tenian fondo blanco pasan a negro :S

Cya!
  #8 (permalink)  
Antiguo 17/03/2011, 19:50
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Redimensionar y subir imagen bmp

La cosa es buscar bien... prueba: http://www.google.com.mx/search?hl=e...&aqi=&aql=&oq=

Siguiendo el enlace del primer resultado, el usuario comenta que pudo solucionarlo gracias a las sugerencias que le dieron ahi.

Si sigues teniendo problemas, por lo menos muestra el codigo que tienes actualmente para tratar de ver donde esta el error.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 18/03/2011, 13:03
 
Fecha de Ingreso: abril-2008
Mensajes: 39
Antigüedad: 16 años
Puntos: 1
Respuesta: Redimensionar y subir imagen bmp

Cita:
Iniciado por Triby Ver Mensaje
La cosa es buscar bien... prueba: http://www.google.com.mx/search?hl=e...&aqi=&aql=&oq=

Siguiendo el enlace del primer resultado, el usuario comenta que pudo solucionarlo gracias a las sugerencias que le dieron ahi.

Si sigues teniendo problemas, por lo menos muestra el codigo que tienes actualmente para tratar de ver donde esta el error.
Nuevamente, mil gracias por responder... pero el problema no es la "redimension" de la imagen en si...

Puedo redimensionar, actualmente y de forma eficaz imagenes con formato: jpg, jpeg, png, gif.

Pero la mas utilizada por "paint" ¬¬, y algunos juegos.. "bmp", al redimensionarla, me genera un archivo erroneo...

El tema es o bien, pasar de formato la imagen, por medio de un script (ya intente con la libreria GD y me pone SIEMPRE fondo negro, o me la deforma xD), o bien, redimensionar directamente la imagen bmp.... pero el tema es que no encuentro solucion a esto :S

Realmente, ya hace 1 mes que vengo con esto, y estoy bastante cansado de renegar, por eso decidí pedir ayuda a gente con un poco mas de experiencia :S




Los codigos que utilize para la libreria GD, los borre ¬¬, por que me trajo muchos dolores de cabeza, y sinceramente, no me sirvieron de nada, mas que lo ya dicho xD, y los actuales, no se si será por problema de php o que, simplemente, es una "redimension" de imagen :S

Espero sus respuestas, y nuevamente gracias!

Cya!
  #10 (permalink)  
Antiguo 18/03/2011, 14:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Redimensionar y subir imagen bmp

El problema es que la librería GD no tiene soporte para BMP, tienes que usar una función para transformar ese BMP, una idea es algo así:
Código PHP:
Ver original
  1. function ConvertBMP2GD($src, $dest = false) {
  2. if(!($src_f = fopen($src, "rb"))) {
  3. return false;
  4. }
  5. if(!($dest_f = fopen($dest, "wb"))) {
  6. return false;
  7. }
  8. $header = unpack("vtype/Vsize/v2reserved/Voffset", fread($src_f,
  9. 14));
  10. $info = unpack("Vsize/Vwidth/Vheight/vplanes/vbits/Vcompression/Vimagesize/Vxres/Vyres/Vncolor/Vimportant",
  11. fread($src_f, 40));
  12.  
  13. extract($info);
  14. extract($header);
  15.  
  16. if($type != 0x4D42) {    // signature "BM"
  17. return false;
  18. }
  19.  
  20. $palette_size = $offset - 54;
  21. $ncolor = $palette_size / 4;
  22. $gd_header = "";
  23. // true-color vs. palette
  24. $gd_header .= ($palette_size == 0) ? "\xFF\xFE" : "\xFF\xFF";
  25. $gd_header .= pack("n2", $width, $height);
  26. $gd_header .= ($palette_size == 0) ? "\x01" : "\x00";
  27. if($palette_size) {
  28. $gd_header .= pack("n", $ncolor);
  29. }
  30. // no transparency
  31. $gd_header .= "\xFF\xFF\xFF\xFF";
  32.  
  33. fwrite($dest_f, $gd_header);
  34.  
  35. if($palette_size) {
  36. $palette = fread($src_f, $palette_size);
  37. $gd_palette = "";
  38. $j = 0;
  39. while($j < $palette_size) {
  40. $b = $palette{$j++};
  41. $g = $palette{$j++};
  42. $r = $palette{$j++};
  43. $a = $palette{$j++};
  44. $gd_palette .= "$r$g$b$a";
  45. }
  46. $gd_palette .= str_repeat("\x00\x00\x00\x00", 256 - $ncolor);
  47. fwrite($dest_f, $gd_palette);
  48. }
  49.  
  50. $scan_line_size = (($bits * $width) + 7) >> 3;
  51. $scan_line_align = ($scan_line_size & 0x03) ? 4 - ($scan_line_size &
  52. 0x03) : 0;
  53.  
  54. for($i = 0, $l = $height - 1; $i < $height; $i++, $l--) {
  55. // BMP stores scan lines starting from bottom
  56. fseek($src_f, $offset + (($scan_line_size + $scan_line_align) *
  57. $l));
  58. $scan_line = fread($src_f, $scan_line_size);
  59. if($bits == 24) {
  60. $gd_scan_line = "";
  61. $j = 0;
  62. while($j < $scan_line_size) {
  63. $b = $scan_line{$j++};
  64. $g = $scan_line{$j++};
  65. $r = $scan_line{$j++};
  66. $gd_scan_line .= "\x00$r$g$b";
  67. }
  68. }
  69. else if($bits == 8) {
  70. $gd_scan_line = $scan_line;
  71. }
  72. else if($bits == 4) {
  73. $gd_scan_line = "";
  74. $j = 0;
  75. while($j < $scan_line_size) {
  76. $byte = ord($scan_line{$j++});
  77. $p1 = chr($byte >> 4);
  78. $p2 = chr($byte & 0x0F);
  79. $gd_scan_line .= "$p1$p2";
  80. }
  81. $gd_scan_line = substr($gd_scan_line, 0, $width);
  82. }
  83. else if($bits == 1) {
  84. $gd_scan_line = "";
  85. $j = 0;
  86. while($j < $scan_line_size) {
  87. $byte = ord($scan_line{$j++});
  88. $p1 = chr((int) (($byte & 0x80) != 0));
  89. $p2 = chr((int) (($byte & 0x40) != 0));
  90. $p3 = chr((int) (($byte & 0x20) != 0));
  91. $p4 = chr((int) (($byte & 0x10) != 0));
  92. $p5 = chr((int) (($byte & 0x08) != 0));
  93. $p6 = chr((int) (($byte & 0x04) != 0));
  94. $p7 = chr((int) (($byte & 0x02) != 0));
  95. $p8 = chr((int) (($byte & 0x01) != 0));
  96. $gd_scan_line .= "$p1$p2$p3$p4$p5$p6$p7$p8";
  97. }
  98. $gd_scan_line = substr($gd_scan_line, 0, $width);
  99. }
  100.  
  101. fwrite($dest_f, $gd_scan_line);
  102. }
  103. fclose($src_f);
  104. fclose($dest_f);
  105. return true;
  106. }
  107.  
  108. function imagecreatefrombmp($filename) {
  109. $tmp_name = tempnam("/tmp", "GD");
  110. if(ConvertBMP2GD($filename, $tmp_name)) {
  111. $img = imagecreatefromgd($tmp_name);
  112. unlink($tmp_name);
  113. return $img;
  114. }
  115. return false;
  116. }

Tomado de: http://bytes.com/topic/php/answers/3...bmp-support-gd

Con eso puedes transformar la imagen a bmp y usar directamente cualquier código actual cambiando la función por imagecreatefrombmp.

Saludos.

Etiquetas: redimensionar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:54.