Foros del Web » Programando para Internet » PHP »

Extrao error con PHP y GD. Ayuda!!!

Estas en el tema de Extrao error con PHP y GD. Ayuda!!! en el foro de PHP en Foros del Web. Saludos amigos. Necesito ayuda. Cuando intento mostrar una imagen creada por mi en cdigo PHP con la gd me sale un extrao cdigo ASCII, que ...
  #1 (permalink)  
Antiguo 08/09/2005, 08:27
 
Fecha de Ingreso: septiembre-2005
Mensajes: 5
Antigedad: 12 aos, 3 meses
Puntos: 0
Extrao error con PHP y GD. Ayuda!!!

Saludos amigos. Necesito ayuda. Cuando intento mostrar una imagen creada por mi en cdigo PHP con la gd me sale un extrao cdigo ASCII, que supongo que es el del .png en cuestin. Lo podis ver en:

http://lapasionenlinares.shinranet.c...ares/index.htm

Tengo todo bien puesto en mi php.ini, la librera activada, el dir_extension es el correcto... y por muchas vueltas que le doy no s cual es el problema.

Tambin os pego el cdigo:

<?
header("Content-type: image/png");
$im = imagecreate(200,200);
$fondo = imagecolorallocate ($im, 255,255,255);
$rojo = imagecolorallocate ($im, 255,0,0);
imageline($im, 100, 100, 800, 800, $fondo);
header("Content-type: image/png");
imagepng($im);
imagedestroy($im);
?>

<?
if (imagetypes() & IMG_GIF) {
echo "El tipo GIF es soportado<br>";
}else{
echo "El tipo GIF NO ES SOPORTADO<BR>";
}
if (imagetypes() & IMG_PNG) {
echo "El tipo PNG es soportado<br>";
}else{
echo "El tipo PNG NO ES SOPORTADO<BR>";
}
if (imagetypes() & IMG_JPG) {
echo "El tipo JPG es soportado<br>";
}else{
echo "El tipo JPG NO ES SOPORTADO<BR>";
}
if (imagetypes() & IMG_WBMP) {
echo "El tipo WBMP es soportado<br>";
}else{
echo "El tipo WBMP NO ES SOPORTADO";
}
?>
<?
header("Content-type: image/jpeg");
$im = imagecreate(200,200);
imagejpeg($im);
imagedestroy($im);
?>

Como vis, la primera parte (una simple linea) salen unos pocos caracteres ascii, la segunda parte me la hace bien (donde dice que el tipo gif es soportado, etc...) y la tercera parte, una caja de 200 por 200, pues vuelven a salir cdigos ASCII. Adems, me pasa tanto en localhost (Apache 1.3) como en mi servidor Shinranet. No s que hacer!!! Ayuda plis!!!

Gracias. un saludo.
  #2 (permalink)  
Antiguo 08/09/2005, 08:49
Avatar de tyo100  
Fecha de Ingreso: febrero-2005
Ubicacin: Monterrey, NL
Mensajes: 475
Antigedad: 12 aos, 10 meses
Puntos: 1
Pues es muy sencillo

pones este
Cdigo PHP:
<?
header
("Content-type: image/png");
$im imagecreate(200,200);
$fondo imagecolorallocate ($im255,255,255);
$rojo imagecolorallocate ($im255,0,0);
imageline($im100100800800$fondo);
header("Content-type: image/png");
imagepng($im);
imagedestroy($im);
?>
o pones este
Cdigo PHP:
<?
if (imagetypes() & IMG_GIF) {
echo 
"El tipo GIF es soportado<br>";
}else{
echo 
"El tipo GIF NO ES SOPORTADO<BR>";
}
if (
imagetypes() & IMG_PNG) {
echo 
"El tipo PNG es soportado<br>";
}else{
echo 
"El tipo PNG NO ES SOPORTADO<BR>";
}
if (
imagetypes() & IMG_JPG) {
echo 
"El tipo JPG es soportado<br>";
}else{
echo 
"El tipo JPG NO ES SOPORTADO<BR>";
}
if (
imagetypes() & IMG_WBMP) {
echo 
"El tipo WBMP es soportado<br>";
}else{
echo 
"El tipo WBMP NO ES SOPORTADO";
}
?>
o pones este, pero no los 3
Cdigo PHP:
<?
header
("Content-type: image/jpeg");
$im imagecreate(200,200);
imagejpeg($im);
imagedestroy($im);
?>
__________________
Desde la tierra de los nopales, las tortillas de maiz, y en cuya ciudad se encuenta el cerro de la silla.
NalgAss Web
SpiderMex - La Historia del Hombre Araa en MEXICO
  #3 (permalink)  
Antiguo 08/09/2005, 14:30
 
Fecha de Ingreso: septiembre-2005
Mensajes: 5
Antigedad: 12 aos, 3 meses
Puntos: 0
Gracias por la pronta respuesta.



Saludos. Ya he probado todos los cdigos por separado, y nada... hasta he quitado el men hecho en javascript pero el resultado es el mismo. Cualquier imagen que intente mostrar, bien sea con imagejpeg(), imagepng() o imagegif() me sale lo mismo. Es el fichero en cdigo ascii, si se nota por la cabecera:

JFIF>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C    $.' ",#(7),01444'9=82<.342C  2!!222222222222222222222222222222222222222222222 22222".... etccccc.

Por favor ayuda, no s a k es debido. Gracias de nuevo.
  #4 (permalink)  
Antiguo 08/09/2005, 17:43
Avatar de tyo100  
Fecha de Ingreso: febrero-2005
Ubicacin: Monterrey, NL
Mensajes: 475
Antigedad: 12 aos, 10 meses
Puntos: 1
Postea todo el contenido de tu archivo, pues segun esa pagina el contenido de frame2.php es

Cdigo PHP:
<html>

<
head>

<
title>CB Linares</title>

<
script language="JavaScript">
  if (
screen.width >= 1280)
      
document.write('<body   background="Fondos/FondoFrame2a.jpg" bgproperties="fixed" bgcolor="white" text="black" link="blue" vlink="purple" alink="red">');
  else if (
screen.width >= 1024)
      
document.write('<body   background="Fondos/FondoFrame2b.jpg" bgproperties="fixed" bgcolor="white" text="black" link="blue" vlink="purple" alink="red">');
  else
    
document.write('<body   background="Fondos/FondoFrame2c.jpg" bgproperties="fixed" bgcolor="white" text="black" link="blue" vlink="purple" alink="red" style="overflow-x:hidden;">');
</script>







<body>




<!-- ******** BEGIN ALLWEBMENUS CODE FOR Menu ******** -->
<img name='awmMenuPathImg-Menu' id='awmMenuPathImg-Menu' src='./awmmenupath.gif' alt=''>
<script type='text/javascript'>var MenuLinkedBy='AllWebMenus [2]', awmBN='496'; awmAltUrl='';</script>
<script src='Menu.js' language='JavaScript1.2' type='text/javascript'></script>
<script type='text/javascript'>awmBuildMenu();</script>
<!-- ******** END ALLWEBMENUS CODE FOR Menu ******** -->
PNG

   
IHDR         <   PLTE  Z   IDATx     S_ U    |P      IENDB`
El tipo GIF es soportado<br>El tipo PNG es soportado<br>El tipo JPG es soportado<br>El tipo WBMP es soportado<br>
 JFIF       >CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality
 C         

 $.' ",#(7),01444'9=82<.342 C             

2!!22222222222222222222222222222222222222222222222222   "                
    } !1AQa"q2#BR$3br    
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz            
   w !1AQaq"2B    #3Rbr
$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz    ? ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 


</body> 
__________________
Desde la tierra de los nopales, las tortillas de maiz, y en cuya ciudad se encuenta el cerro de la silla.
NalgAss Web
SpiderMex - La Historia del Hombre Araa en MEXICO
  #5 (permalink)  
Antiguo 08/09/2005, 17:59
 
Fecha de Ingreso: septiembre-2005
Mensajes: 5
Antigedad: 12 aos, 3 meses
Puntos: 0
Saludos. Vamos a ver, parece que no me explico bien. Es muy sencillo. Mi cdigo, aparte del menu javascript y del <body background etc...> es el siguiente:

<?
header("Content-type: image/jpeg");
$im = imagecreate(200,200);
imagejpeg($im);
imagedestroy($im);
?>

Esto es lo que yo tengo en frame2.php. Y cuando lo pruebo en el servidor (o en mi localhost, tengo instalado Apache bajo windows) lo que me sale pos ya lo podis ver. En vez de salirme un cuadradito de 200 por 200, me sale todo ese cdigo ascii, cuando se supone que tiene que salir un cuadrado, no? Eso que me has pegado es el cdigo ya interpretado por tu navegador (evidentemente, lo que sale cuando pones la direccin de mi web). Mira, se me ocurre que, hasta si os parece bien, puedo mandaros toda la pgina (index.htm, frame1.htm, frame2.php y los fondos en jpg) para que vosotros mismos la probis en vuestro servidor, a ver si a vosotros os sale el cuadradito en vez de esas cosas tan raras.

Gracias de nuevo por leerme. Un saludo.
  #6 (permalink)  
Antiguo 09/09/2005, 00:42
Avatar de tyo100  
Fecha de Ingreso: febrero-2005
Ubicacin: Monterrey, NL
Mensajes: 475
Antigedad: 12 aos, 10 meses
Puntos: 1
bueno ahi esta el problema, intenta hacerlo con el puro codigo php sin el javascrip
__________________
Desde la tierra de los nopales, las tortillas de maiz, y en cuya ciudad se encuenta el cerro de la silla.
NalgAss Web
SpiderMex - La Historia del Hombre Araa en MEXICO
  #7 (permalink)  
Antiguo 09/09/2005, 02:18
 
Fecha de Ingreso: septiembre-2005
Mensajes: 5
Antigedad: 12 aos, 3 meses
Puntos: 0
Insisto en que el problema no es ese. El javascript tambin lo he quitado, probando nicamente el siguiente cdigo en la web:

<html>
<head>
<title>CB Linares</title>
<body background="Fondos/FondoFrame2c.jpg" bgproperties="fixed" bgcolor="white" text="black" link="blue" vlink="purple" alink="red" style="overflow-x:hidden;">
<?
header("Content-type: image/png");
$im = imagecreate(200,200);
$fondo = imagecolorallocate ($im, 255,255,255);
$rojo = imagecolorallocate ($im, 255,0,0);
imageline($im, 100, 100, 800, 800, $fondo);
imagepng($im);
imagedestroy($im);
?>

Pero sigue sin salirme la dichosa linea.

Gracias.
  #8 (permalink)  
Antiguo 09/09/2005, 07:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicacin: Santiago - Chile
Mensajes: 34.417
Antigedad: 15 aos, 11 meses
Puntos: 126
Cita:
Iniciado por majegar
Insisto en que el problema no es ese. El javascript tambin lo he quitado, probando nicamente el siguiente cdigo en la web:

<html>
<head>
<title>CB Linares</title>
<body background="Fondos/FondoFrame2c.jpg" bgproperties="fixed" bgcolor="white" text="black" link="blue" vlink="purple" alink="red" style="overflow-x:hidden;">
<?
header("Content-type: image/png");
$im = imagecreate(200,200);
$fondo = imagecolorallocate ($im, 255,255,255);
$rojo = imagecolorallocate ($im, 255,0,0);
imageline($im, 100, 100, 800, 800, $fondo);
imagepng($im);
imagedestroy($im);
?>

Pero sigue sin salirme la dichosa linea.

Gracias.
No puedes hacer eso que planteas en ese script.

NO puedes mezclar HTML/javascript con envio de cabeceras HTTP (va header()) en un mismo script.

Lo que debes hacer es aislar ese cdigo:
Cdigo PHP:
<?
header
("Content-type: image/png");
$im imagecreate(200,200);
$fondo imagecolorallocate ($im255,255,255);
$rojo imagecolorallocate ($im255,0,0);
imageline($im100100800800$fondo);
imagepng($im);
imagedestroy($im);
?>
En un script aparte .. por ejemplo: crea_imagen.php

y lo llamas desde -OTRO- script/pgina HTML con su tag de imagen correspondiente HTML:

otro.html o .php
Cdigo PHP:
<img src="crea_imagen.php"
Un saludo,
  #9 (permalink)  
Antiguo 09/09/2005, 08:42
 
Fecha de Ingreso: septiembre-2005
Mensajes: 5
Antigedad: 12 aos, 3 meses
Puntos: 0
Muchas gracias, efectivamente ese era el problema, lo siento es que soy novatillo (en PHP, no en la programacin).

Gracias de nuevo. Un saludo y se tengo ms problemillas seguir preguntando.
  #10 (permalink)  
Antiguo 11/10/2014, 10:53
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigedad: 13 aos, 3 meses
Puntos: 2
Respuesta: Extrao error con PHP y GD. Ayuda!!!

Cita:
Iniciado por Cluster Ver Mensaje
No puedes hacer eso que planteas en ese script.

NO puedes mezclar HTML/javascript con envio de cabeceras HTTP (va header()) en un mismo script.

Lo que debes hacer es aislar ese cdigo:
Cdigo PHP:
<?
header
("Content-type: image/png");
$im imagecreate(200,200);
$fondo imagecolorallocate ($im255,255,255);
$rojo imagecolorallocate ($im255,0,0);
imageline($im100100800800$fondo);
imagepng($im);
imagedestroy($im);
?>
En un script aparte .. por ejemplo: crea_imagen.php

y lo llamas desde -OTRO- script/pgina HTML con su tag de imagen correspondiente HTML:

otro.html o .php
Cdigo PHP:
<img src="crea_imagen.php"
Un saludo,
Hola hace mucho no consultaba el foro, resuta que tengo un problema igual o parecido al mencionado y solucionado anteriormente pero ya realice lo que Cluster indica ya no muestra los caracteres pero no me dibuja el codigo de barras que puedo hacer, tengo mis scripts asi

carpeta includes: aqui esta la clase barcode en la siguiente ruta includes/barcode/
el archivo.

el archivo gd.php
Cdigo PHP:
<?php
header
("Cache-Control: no-store, no-cache, must-revalidate");    
header('Content-Type: image/png');
require(
'includes/barcode/BCGFontFile.php');
require(
'includes/barcode/BCGColor.php');
require(
'includes/barcode/BCGDrawing.php');
require(
'includes/barcode/BCGcode128.barcode.php');
 
$font = new BCGFontFile('includes/barcode/font/Arial.ttf'18);
$color_black = new BCGColor(000);
$color_white = new BCGColor(255255255);
 
// Barcode Part
$code = new BCGcode128();
$code->setScale(2);
$code->setThickness(30);
$code->setForegroundColor($color_black);
$code->setBackgroundColor($color_white);
$code->setFont($font);
$code->setStart(NULL);
$code->setTilde(true);
$code->parse('a123'); //este es el que intento imrpimir de ejemplo
 
// Drawing Part
$drawing = new BCGDrawing(''$color_white);
$drawing->setBarcode($code);
$drawing->draw();
  
$drawing->finish(BCGDrawing::IMG_FORMAT_PNG);
?>
y donde llamo la imagen es otro.php a pesar de ser html
Cdigo PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Documento sin t&iacute;tulo</title>
</
head>
<
body>
<
img src="gd.php" />
</
body>
</
html
y me sale el espacio de la imagen pero con la X como cuando la imagen no existe, ya he buscado por todos lados he bajado bajado ejemplos pero no logro hacer que dibuje el codigo de barras auxilio incluso gd.php es un ejemplo que baje de la pagina de la clase barcode
__________________
paty :adios:
Atencin: Ests leyendo un tema que no tiene actividad desde hace ms 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 13:20.