Foros del Web » Programando para Internet » PHP »

bmp en php se descarga

Estas en el tema de bmp en php se descarga en el foro de PHP en Foros del Web. Buen día. Tengo un problema, genero un codigo de barras bmp en php, el problema es que en vez de mostrarlo, lo descarga. Manejo un ...
  #1 (permalink)  
Antiguo 23/05/2013, 10:24
 
Fecha de Ingreso: mayo-2013
Mensajes: 19
Antigüedad: 10 años, 11 meses
Puntos: 0
bmp en php se descarga

Buen día.

Tengo un problema, genero un codigo de barras bmp en php, el problema es que en vez de mostrarlo, lo descarga.

Manejo un GD 2.0

el código es el siguiente

Código PHP:
<?php

require_once("php-barcode-configure.php");
require_once(
"encode_bars.php");

$font_loc="fonts/arialbd.ttf";
if (isset(
$_ENV['windir']) && file_exists($_ENV['windir'])){
 
$font_loc=$_ENV['windir']."\Fonts\arialbd.ttf";
}

function 
barcode_outimage($text$bars$scale=1$mode $total_y=0$space ''){
 global 
$bar_color$bg_color$text_color;
 global 
$font_loc;
 (
$scale 1) ? $scale null;
 
$total_y=(int)($total_y);
 if (
$total_y 1)
  
$total_y = (int)$scale barcodeHeight;
 if(!
$space)
  
$space=array('top'   => $scale,
               
'bottom'=> $scale,
               
'left'  => $scale,
               
'right' => $scale);

 
$xpos=0;
 
$width=true;
 for (
$i=0$i<strlen($bars); $i++){
  
$val=strtolower($bars[$i]);
  if(
$width){
   
$xpos += $val $scale;
   
$width false;
   continue;
  }
  if(
ereg("[a-z]"$val)){
   
$val=ord($val)-ord('a')+1;
  } 
  
$xpos+=$val*$scale;
  
$width=true;
 }
 
$total_x = ($xpos) + $space['right'] + $space['right'];
 
$xpos $space['left'];
 if(!
function_exists("imagecreate")){
  print 
"Es necesaria tener la extension gd2 activada en PHP<BR>\n";
  return 
"";
 }
 
$im imagecreate($total_x$total_y);
 if (
barcodeTransparent == "false"){
  
$col_bg imageColorAllocate($im,$bg_color[0],$bg_color[1],$bg_color[2]);
 }
 else{
  
$col_bg imagecolorallocatealpha($im,$bg_color[0],$bg_color[1],$bg_color[2],127);
 }
 
$col_bar imageColorAllocate($im,$bar_color[0],$bar_color[1],$bar_color[2]);
 
$col_text imageColorAllocate($im,$text_color[0],$text_color[1],$text_color[2]);
 
$height round($total_y - ($scale alignedBarsBottom));
 
$height2=round($total_y-$space['bottom']);

 
$width=true;
 for(
$i=0;$i<strlen($bars);$i++){
  
$val=strtolower($bars[$i]);
  if(
$width){
   
$xpos+=$val*$scale;
   
$width=false;
   continue;
  }
  if(
ereg("[a-z]"$val)){
   
$val=ord($val)-ord('a')+1;
   
$h=$height2;
  }
  else
   
$h=$height;
  
imagefilledrectangle($im$xpos$space['top'], $xpos+($val*$scale)-1$h$col_bar);
  
$xpos+=$val*$scale;
  
$width=true;
 }

 global 
$_SERVER;
 
$chars=explode(" "$text);
 
reset($chars);
 while (list(
$n$v)=each($chars)){
  if(
trim($v)){
   
$inf=explode(":"$v);
   
$fontsize=$scale*($inf[1]/1.8);
   
$fontheight=$total_y-($fontsize/2.7)+1;
   @
imagettftext($im$fontsize0$space['left']+($scale*$inf[0])+2,$fontheight$col_text$font_loc$inf[2]);
  }
 }

 
$mode=strtolower($mode);
 
/*if($mode=='jpg' || $mode=='jpeg'){
  header("Content-Type: image/jpeg; name=\"".$code.".jpg\"");
  imagejpeg($im);
 }
 else
  if ($mode=='gif'){
   header("Content-Type: image/gif; name=\"".$code.".gif\"");
   imagegif($im);
  }
  else {
   header("Content-Type: image/png; name=\"".$code.".png\"");
   imagepng($im);
  }*/
  
header("Content-Type: image/avn.vpn.bmp; name=\"".$code.".bmp\"");
   
imagewbmp($im);
}

function 
barcode_outtext($code,$bars){
 
$width=true;
 
$xpos=$heigh2=0;
 
$bar_line="";
 for (
$i=0;$i<strlen($bars);$i++){
  
$val=strtolower($bars[$i]);
  if (
$width){
   
$xpos+=$val;
   
$width=false;
   for (
$a=0;$a<$val;$a++) $bar_line.="-";
   continue;
  }
  if (
ereg("[a-z]"$val)){
   
$val=ord($val)-ord('a')+1;
   
$h=$heigh2;
   for (
$a=0;$a<$val;$a++) $bar_line.="I";
  }
  else
   for (
$a=0;$a<$val;$a++) $bar_line.="#";
  
$xpos+=$val;
  
$width=true;
 }
 return 
$bar_line;
}

function 
barcode_encode_genbarcode($code,$encoding){
 global 
$genbarcode_loc;
 if (
eregi("^ean$"$encoding) && strlen($code)==13$code=substr($code,0,12);
 if (!
$encoding$encoding="EAN13";
 
$encoding=ereg_replace("[|\\]""_"$encoding);
 
$code=ereg_replace("[|\\]""_"$code);
 
$cmd=$genbarcode_loc." \""
 
.str_replace("\"""\\\"",$code)."\" \""
 
.str_replace("\"""\\\"",strtoupper($encoding))."\"";
 
$fp=popen($cmd"r");
 if (
$fp){
  
$bars=fgets($fp1024);
  
$text=fgets($fp1024);
  
$encoding=fgets($fp1024);
  
pclose($fp);
 }
 else return 
false;
 
$ret=array(
  
"encoding" => trim($encoding),
  
"bars" => trim($bars),
  
"text" => trim($text)
 );
 if (!
$ret['encoding']) return false;
 if (!
$ret['bars']) return false;
 if (!
$ret['text']) return false;
 return 
$ret;
}

function 
barcode_encode($code$encoding){
 global 
$genbarcode_loc;
 if(
  ((
eregi("^ean$"$encoding) &&
  ( 
strlen($code)==12 || strlen($code)==13)))
  || ((
$encoding) && (eregi("^isbn$"$encoding))
  && (( 
strlen($code)==|| strlen($code)==10) ||
  (((
ereg("^978"$code) && strlen($code)==12) ||
  (
strlen($code)==13)))))
  || (( !isset(
$encoding) || !$encoding || (eregi("^ANY$"$encoding) ))
  && (
ereg("^[0-9]{12,13}$"$code)))
  ){
  
$bars=barcode_encode_ean($code$encoding);
 }
 return 
$bars;
}

function 
barcode_print($code$encoding$scale$mode){
 
$bars=barcode_encode($code$encoding);
 if (!
$bars) return;
 if (!
$mode$mode="png";
 
barcode_outimage($bars['text'],$bars['bars'],$scale$mode);
 return 
$bars;
}

?>
como verán la parte que genera el bmp es esta...

Código PHP:
header("Content-Type: image/avn.vpn.bmp; name=\"".$code.".bmp\"");
   
imagewbmp($im); 
el problema es que si lo cambio a jpeg, gif o pnh si lo muestra; pero en bmp descarga la imagen como php y no se ve.

alguien tiene una solución con la que me pueda ayudar? D:

necesito el bmp porque uso la función "printer_draw_bmp"

gracias c:
  #2 (permalink)  
Antiguo 23/05/2013, 11:12
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: bmp en php se descarga

Lo que sucede es simple, elimina esta linea

Cita:
header("Content-Type: image/avn.vpn.bmp; name=\"".$code.".bmp\"");
Ya que con esta linea le indicas que descargue la imagen
  #3 (permalink)  
Antiguo 23/05/2013, 11:42
 
Fecha de Ingreso: mayo-2013
Mensajes: 19
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: bmp en php se descarga

pues lo intenté, pero ahora me sale una cadena de simbolos, intentaré poniendolo como https


la cadena es esta...

�X� �������������������������������������������������� �������������������������������������������������� �������������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������? �3���? ���< �3��0<������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������������������������������� �������������������������
Warning: printer_draw_bmp() [function.printer-draw-bmp]: Failed to load bitmap Array in C:\xampp\htdocs\tickets\re_impreccion_ticket.php on line 451
  #4 (permalink)  
Antiguo 23/05/2013, 11:48
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: bmp en php se descarga

ese ya es error de creación de imagen o las codificacion de los archivos...
  #5 (permalink)  
Antiguo 23/05/2013, 11:51
 
Fecha de Ingreso: mayo-2013
Mensajes: 19
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: bmp en php se descarga

ese es el problema, que como jpeg, gif o png sale perfecto
  #6 (permalink)  
Antiguo 23/05/2013, 13:09
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: bmp en php se descarga

y porque no usas uno de esos formatos entonces?
  #7 (permalink)  
Antiguo 23/05/2013, 13:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: bmp en php se descarga

Usa PNG o JPG.
Olvidate de BMP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 03/06/2013, 08:24
 
Fecha de Ingreso: mayo-2013
Mensajes: 19
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: bmp en php se descarga

es que el problema es que tengo que usar la función "printer_draw_bmp"

Etiquetas: bmp
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 03:41.