Foros del Web » Programación para mayores de 30 ;) » Programación General »

formato xbm (x-bitmap)

Estas en el tema de formato xbm (x-bitmap) en el foro de Programación General en Foros del Web. hola, estoy haciendo un programa en CGI que debe tener una salida gráfica y bueno estuve viendo ejemplos y para no utilizar librerías raras me ...
  #1 (permalink)  
Antiguo 09/02/2005, 22:05
amj
 
Fecha de Ingreso: marzo-2002
Ubicación: Manizales
Mensajes: 152
Antigüedad: 22 años, 1 mes
Puntos: 1
formato xbm (x-bitmap)

hola, estoy haciendo un programa en CGI que debe tener una salida gráfica y bueno estuve viendo ejemplos y para no utilizar librerías raras me gustaría hacerlo con el formato .xbm (x-bitmap) o el .xpm (x-pixmap) alguien sabe como manejar estos formatos, estuve buscando en el google y halle información algo confusa, o confusa no, incompleta sería la palabra.

Gracias
__________________
"SJ
  #2 (permalink)  
Antiguo 09/02/2005, 22:45
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Me parece que en www.perlenespanol.com tienes un tutorial que explica como utilizar gráficas en PERL pero seguramente es a través de un módulo del cpan, no tengas miedo en usarlos, si es del cpan no hay problemas en usarlos...

buscca en search.cpan.org, que ahí están todos los módulos "oficiales" sino te puedes volver loco haciendo tus propias gráficas...

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 10/02/2005, 19:55
amj
 
Fecha de Ingreso: marzo-2002
Ubicación: Manizales
Mensajes: 152
Antigüedad: 22 años, 1 mes
Puntos: 1
el problema de los módulos gráficos que da el cpan (sino estoy mal el mejor es el GD) es la instalación, estoy trabajando en un servidor IRIX64 OS5, acerca del manejo de xbm encontré un ejemplo de un contador este es el código por sí a alguien le interesa
Código PHP:
#!/usr/bin/perl
# X-BITMAP

#Digitos en XBM
$num{0,0} =  "0xf0,0x0f";
$num{0,1} =  "0xf0,0x0f";
$num{0,2} =  "0x0c,0x30";
$num{0,3} =  "0x0c,0x30";
$num{0,4} =  "0x0c,0x30";
$num{0,5} =  "0x0c,0x30";
$num{0,6} =  "0x0c,0x30";
$num{0,7} =  "0x00,0x00";
$num{0,8} =  "0x00,0x00";
$num{0,9} =  "0x0c,0x30";
$num{0,10} = "0x0c,0x30";
$num{0,11} = "0x0c,0x30";
$num{0,12} = "0x0c,0x30";
$num{0,13} = "0x0c,0x30";
$num{0,14} = "0xf0,0x0f";
$num{0,15} = "0xf0,0x0f";

$num{1,0} =  "0x00,0x00";
$num{1,1} =  "0x00,0x00";
$num{1,2} =  "0x00,0x30";
$num{1,3} =  "0x00,0x30";
$num{1,4} =  "0x00,0x30";
$num{1,5} =  "0x00,0x30";
$num{1,6} =  "0x00,0x30";
$num{1,7} =  "0x00,0x00";
$num{1,8} =  "0x00,0x00";
$num{1,9} =  "0x00,0x30";
$num{1,10} = "0x00,0x30";
$num{1,11} = "0x00,0x30";
$num{1,12} = "0x00,0x30";
$num{1,13} = "0x00,0x30";
$num{1,14} = "0x00,0x00";
$num{1,15} = "0x00,0x00";

$num{2,0} =  "0xf0,0x0f";
$num{2,1} =  "0xf0,0x0f";
$num{2,2} =  "0x00,0x30";
$num{2,3} =  "0x00,0x30";
$num{2,4} =  "0x00,0x30";
$num{2,5} =  "0x00,0x30";
$num{2,6} =  "0x00,0x30";
$num{2,7} =  "0xf0,0x0f";
$num{2,8} =  "0xf0,0x0f";
$num{2,9} =  "0x0c,0x00";
$num{2,10} = "0x0c,0x00";
$num{2,11} = "0x0c,0x00";
$num{2,12} = "0x0c,0x00";
$num{2,13} = "0x0c,0x00";
$num{2,14} = "0xf0,0x0f";
$num{2,15} = "0xf0,0x0f";

$num{3,0} =  "0xf0,0x0f";
$num{3,1} =  "0xf0,0x0f";
$num{3,2} =  "0x00,0x30";
$num{3,3} =  "0x00,0x30";
$num{3,4} =  "0x00,0x30";
$num{3,5} =  "0x00,0x30";
$num{3,6} =  "0x00,0x30";
$num{3,7} =  "0xf0,0x0f";
$num{3,8} =  "0xf0,0x0f";
$num{3,9} =  "0x00,0x30";
$num{3,10} = "0x00,0x30";
$num{3,11} = "0x00,0x30";
$num{3,12} = "0x00,0x30";
$num{3,13} = "0x00,0x30";
$num{3,14} = "0xf0,0x0f";
$num{3,15} = "0xf0,0x0f";

$num{4,0} =  "0x00,0x00";
$num{4,1} =  "0x00,0x00";
$num{4,2} =  "0x0c,0x30";
$num{4,3} =  "0x0c,0x30";
$num{4,4} =  "0x0c,0x30";
$num{4,5} =  "0x0c,0x30";
$num{4,6} =  "0x0c,0x30";
$num{4,7} =  "0xf0,0x0f";
$num{4,8} =  "0xf0,0x0f";
$num{4,9} =  "0x00,0x30";
$num{4,10} = "0x00,0x30";
$num{4,11} = "0x00,0x30";
$num{4,12} = "0x00,0x30";
$num{4,13} = "0x00,0x30";
$num{4,14} = "0x00,0x00";
$num{4,15} = "0x00,0x00";

$num{5,0} =  "0xf0,0x0f";
$num{5,1} =  "0xf0,0x0f";
$num{5,2} =  "0x0c,0x00";
$num{5,3} =  "0x0c,0x00";
$num{5,4} =  "0x0c,0x00";
$num{5,5} =  "0x0c,0x00";
$num{5,6} =  "0x0c,0x00";
$num{5,7} =  "0xf0,0x0f";
$num{5,8} =  "0xf0,0x0f";
$num{5,9} =  "0x00,0x30";
$num{5,10} = "0x00,0x30";
$num{5,11} = "0x00,0x30";
$num{5,12} = "0x00,0x30";
$num{5,13} = "0x00,0x30";
$num{5,14} = "0xf0,0x0f";
$num{5,15} = "0xf0,0x0f";

$num{6,0} =  "0xf0,0x0f";
$num{6,1} =  "0xf0,0x0f";
$num{6,2} =  "0x0c,0x00";
$num{6,3} =  "0x0c,0x00";
$num{6,4} =  "0x0c,0x00";
$num{6,5} =  "0x0c,0x00";
$num{6,6} =  "0x0c,0x00";
$num{6,7} =  "0xf0,0x0f";
$num{6,8} =  "0xf0,0x0f";
$num{6,9} =  "0x0c,0x30";
$num{6,10} = "0x0c,0x30";
$num{6,11} = "0x0c,0x30";
$num{6,12} = "0x0c,0x30";
$num{6,13} = "0x0c,0x30";
$num{6,14} = "0xf0,0x0f";
$num{6,15} = "0xf0,0x0f";

$num{7,0} =  "0xf0,0x0f";
$num{7,1} =  "0xf0,0x0f";
$num{7,2} =  "0x00,0x30";
$num{7,3} =  "0x00,0x30";
$num{7,4} =  "0x00,0x30";
$num{7,5} =  "0x00,0x30";
$num{7,6} =  "0x00,0x30";
$num{7,7} =  "0x00,0x00";
$num{7,8} =  "0x00,0x00";
$num{7,9} =  "0x00,0x30";
$num{7,10} = "0x00,0x30";
$num{7,11} = "0x00,0x30";
$num{7,12} = "0x00,0x30";
$num{7,13} = "0x00,0x30";
$num{7,14} = "0x00,0x00";
$num{7,15} = "0x00,0x00";

$num{8,0} =  "0xf0,0x0f";
$num{8,1} =  "0xf0,0x0f";
$num{8,2} =  "0x0c,0x30";
$num{8,3} =  "0x0c,0x30";
$num{8,4} =  "0x0c,0x30";
$num{8,5} =  "0x0c,0x30";
$num{8,6} =  "0x0c,0x30";
$num{8,7} =  "0xf0,0x0f";
$num{8,8} =  "0xf0,0x0f";
$num{8,9} =  "0x0c,0x30";
$num{8,10} = "0x0c,0x30";
$num{8,11} = "0x0c,0x30";
$num{8,12} = "0x0c,0x30";
$num{8,13} = "0x0c,0x30";
$num{8,14} = "0xf0,0x0f";
$num{8,15} = "0xf0,0x0f";

$num{9,0} =  "0xf0,0x0f";
$num{9,1} =  "0xf0,0x0f";
$num{9,2} =  "0x0c,0x30";
$num{9,3} =  "0x0c,0x30";
$num{9,4} =  "0x0c,0x30";
$num{9,5} =  "0x0c,0x30";
$num{9,6} =  "0x0c,0x30";
$num{9,7} =  "0xf0,0x0f";
$num{9,8} =  "0xf0,0x0f";
$num{9,9} =  "0x00,0x30";
$num{9,10} = "0x00,0x30";
$num{9,11} = "0x00,0x30";
$num{9,12} = "0x00,0x30";
$num{9,13} = "0x00,0x30";
$num{9,14} = "0xf0,0x0f";
$num{9,15} = "0xf0,0x0f";

$max_length 4;
$width 16*($max_length+1);
$height 16;

#archivo donde se va a guardar la cuenta
$countfile "counter.txt";
$srcfile $ENV{'QUERY_STRING'};
if (
$srcfile eq "") {
    
$srcfile="test";
}
$now_host $ENV{'REMOTE_ADDR'};
if (
$now_host eq "") {
    
$now_host="test";
}


if ( 
open(FILE"<$countfile") ) {
    @
file = <FILE> ;
    
close(FILE);
} else {
    print 
"Error : Counter File is not found!\n";
    
flock(LOCK8);
    
close(LOCK);
    exit(
1);
};
$joinedfile join'', @file ); 
@
count_ split(/n/,$joinedfile);
open(OUT">$countfile");
foreach 
$in (@count_) {
    (
$in_counter$hostname ,$checkfile) = split(/,/, $in3);
    if (
$checkfile eq $srcfile) {
        
$found_flag "yes";
        if (
$now_host ne $hostname ) {
            
$counter $in_counter+1;
        } else {
            
$counter $in_counter;
        };
        print 
OUT "$counter,$now_host,$srcfile\n";
    } else {
        print 
OUT "$in\n";
    }
}
if (
$found_flag ne "yes"){
    print 
OUT "1,$now_host,$srcfile\n";
};
close(OUT);
flock(LOCK8);
close(LOCK);

(
$sec,$min,$hour,$day,$mon,$year) = localtime(time);
$mon $mon 1
$year $year 1900 ;

open(LOCK"<counter.lock");
flock(LOCK2);
open(LOG">>COUNTLOG.TXT");
print 
LOG "$year/$mon/$day,$hour:$min:$sec , $ENV{'QUERY_STRING'} , $ENV{'REMOTE_ADDR'} , $ENV{'HTTP_USER_AGENT'} , $ENV{'HTTP_REFERER'}\n";
close(LOG);
flock(LOCK8);
close(LOCK);

print <<
EOF;
Content-typeimage/x-xbitmap

#define cg_width $width
#define cg_height $height
static char cg_bits[] = {
EOF
foreach $a (0..15) {
    
$count__ sprintf("%05d",$counter);
    foreach 
$i (0..$max_length) {
        
$num_ substr($count__,$i,1);
        print 
"$num{$num_ , $a},";
    }
    print 
"\n";
}
print 
"}\;\n\n";
__END__ 
__________________
"SJ
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 09:45.