Foros del Web » Programando para Internet » PHP »

Extraño error con PHP y GD. Ayuda!!!

Estas en el tema de Extraño 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 código PHP con la gd me sale un extraño código ASCII, que ...
  #1 (permalink)  
Antiguo 08/09/2005, 07:27
 
Fecha de Ingreso: septiembre-2005
Mensajes: 5
Antigüedad: 18 años, 7 meses
Puntos: 0
Extraño error con PHP y GD. Ayuda!!!

Saludos amigos. Necesito ayuda. Cuando intento mostrar una imagen creada por mi en código PHP con la gd me sale un extraño código ASCII, que supongo que es el del .png en cuestión. Lo podéis ver en:

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

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

También os pego el código:

<?
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 véis, 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 códigos ASCII. Además, 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, 07:49
Avatar de tyo100  
Fecha de Ingreso: febrero-2005
Ubicación: Monterrey, NL
Mensajes: 475
Antigüedad: 19 años, 2 meses
Puntos: 1
Pues es muy sencillo

pones este
Código 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
Código 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
Código 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 Araña en MEXICO
  #3 (permalink)  
Antiguo 08/09/2005, 13:30
 
Fecha de Ingreso: septiembre-2005
Mensajes: 5
Antigüedad: 18 años, 7 meses
Puntos: 0
Gracias por la pronta respuesta.



Saludos. Ya he probado todos los códigos 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 código ascii, si se nota por la cabecera:

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

Por favor ayuda, no sé a ké es debido. Gracias de nuevo.
  #4 (permalink)  
Antiguo 08/09/2005, 16:43
Avatar de tyo100  
Fecha de Ingreso: febrero-2005
Ubicación: Monterrey, NL
Mensajes: 475
Antigüedad: 19 años, 2 meses
Puntos: 1
Postea todo el contenido de tu archivo, pues segun esa pagina el contenido de frame2.php es

Código 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 Ú ù    IEND®B`‚
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‘¡#B±ÁRÑð$3br‚    
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ            
ÿÄ µ  w !1AQaq"2B‘¡±Á    #3RðbrÑ
$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 Araña en MEXICO
  #5 (permalink)  
Antiguo 08/09/2005, 16:59
 
Fecha de Ingreso: septiembre-2005
Mensajes: 5
Antigüedad: 18 años, 7 meses
Puntos: 0
Saludos. Vamos a ver, parece que no me explico bien. Es muy sencillo. Mi código, 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 podéis ver. En vez de salirme un cuadradito de 200 por 200, me sale todo ese código ascii, cuando se supone que tiene que salir un cuadrado, ¿no? Eso que me has pegado es el código ya interpretado por tu navegador (evidentemente, lo que sale cuando pones la dirección de mi web). Mira, se me ocurre que, hasta si os parece bien, puedo mandaros toda la página (index.htm, frame1.htm, frame2.php y los fondos en jpg) para que vosotros mismos la probéis 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 08/09/2005, 23:42
Avatar de tyo100  
Fecha de Ingreso: febrero-2005
Ubicación: Monterrey, NL
Mensajes: 475
Antigüedad: 19 años, 2 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 Araña en MEXICO
  #7 (permalink)  
Antiguo 09/09/2005, 01:18
 
Fecha de Ingreso: septiembre-2005
Mensajes: 5
Antigüedad: 18 años, 7 meses
Puntos: 0
Insisto en que el problema no es ese. El javascript también lo he quitado, probando únicamente el siguiente código 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, 06:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por majegar
Insisto en que el problema no es ese. El javascript también lo he quitado, probando únicamente el siguiente código 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 (vía header()) en un mismo script.

Lo que debes hacer es aislar ese código:
Código 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/página HTML con su tag de imagen correspondiente HTML:

otro.html o .php
Código PHP:
<img src="crea_imagen.php"
Un saludo,
  #9 (permalink)  
Antiguo 09/09/2005, 07:42
 
Fecha de Ingreso: septiembre-2005
Mensajes: 5
Antigüedad: 18 años, 7 meses
Puntos: 0
Muchas gracias, efectivamente ese era el problema, lo siento es que soy novatillo (en PHP, no en la programación).

Gracias de nuevo. Un saludo y se tengo más problemillas seguiré preguntando.
  #10 (permalink)  
Antiguo 11/10/2014, 09:53
 
Fecha de Ingreso: agosto-2004
Mensajes: 440
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: Extraño 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 (vía header()) en un mismo script.

Lo que debes hacer es aislar ese código:
Código 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/página HTML con su tag de imagen correspondiente HTML:

otro.html o .php
Código 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
Código 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
Código 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:
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:38.