Foros del Web » Programando para Internet » PHP »

Me podeis ayudar con este codigo

Estas en el tema de Me podeis ayudar con este codigo en el foro de PHP en Foros del Web. // aplicamos la funcion a una imagen "original.jpg" $ok = marcadeagua("intplus/imag00000002.jpg","intplus/watermark.png","imags/imag00000002.jpg",100); if ($ok) { echo "si existe la función"; } Os explico, en la primera ...
  #1 (permalink)  
Antiguo 14/11/2007, 17:38
 
Fecha de Ingreso: noviembre-2007
Mensajes: 12
Antigüedad: 16 años, 5 meses
Puntos: 0
Me podeis ayudar con este codigo

// aplicamos la funcion a una imagen "original.jpg"
$ok = marcadeagua("intplus/imag00000002.jpg","intplus/watermark.png","imags/imag00000002.jpg",100);

if ($ok) {
echo "si existe la función"; }


Os explico, en la primera parte creo una funcion "marcadeagua" para poner un logotipo a una imagen y que la guarde en otra carpeta, en el trozo que veis de codigo creo la variable $ok llamando a la función.
El propósito es que si la función hace su trabajo (que lo hace) imprima en pantalla "si existe la función".
Utilizo if($ok) para ver si devuelve un valor verdadero y si lo hace que imprima "si existe la función".

El problema es que la función marca de agua, si hace su cometido pero devuelve false. ¿por qué?.

Soy nuevo en esto del php y a lo mejor me estoy colando en algo.

Un saludo
fernando
  #2 (permalink)  
Antiguo 14/11/2007, 17:48
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Me podeis ayudar con este codigo

dentro de la funcion marca de agua haces un return true?, ya que ok tendrá valor solo si la funcion le devuelve algo, de lo contrario $ok siempre sera falso.
Código PHP:
function algo(){
//...codigo
if($todobien){
return 
true;}
else{
return 
false;}

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #3 (permalink)  
Antiguo 14/11/2007, 17:59
 
Fecha de Ingreso: noviembre-2007
Mensajes: 12
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Me podeis ayudar con este codigo

Pongo el codigo entero para que lo veas...

<?php
function marcadeagua($img_original, $img_marcadeagua, $img_nueva, $calidad) {

// obtener datos de la fotografia
$info_original = getimagesize($img_original);
$anchura_original = $info_original[0];
$altura_original = $info_original[1];

// obtener datos de la "marca de agua"
$info_marcadeagua = getimagesize($img_marcadeagua);
$anchura_marcadeagua = $info_marcadeagua[0];
$altura_marcadeagua = $info_marcadeagua[1];

// calcular la posicion donde debe copiarse la "marca de agua" en la fotografia
$horizextra = $anchura_original - $anchura_marcadeagua;
$vertextra = $altura_original - $altura_marcadeagua;
$horizmargen = round($horizextra / 2);
$vertmargen = round($vertextra / 2);

// crear imagen desde el original
$original = ImageCreateFromJPEG($img_original);
ImageAlphaBlending($original, true);

// crear nueva imagen desde la marca de agua
$marcadeagua = ImageCreateFromPNG($img_marcadeagua);

// copiar la "marca de agua" en la fotografia
ImageCopy($original, $marcadeagua, 458, 0, 0, 0, $anchura_marcadeagua, $altura_marcadeagua);

// guardar la nueva imagen
ImageJPEG($original, $img_nueva, $calidad);

// cerrar las imagenes
ImageDestroy($original);
ImageDestroy($marcadeagua);
}
// aplicamos la funcion a una imagen "original.jpg"
$ok = marcadeagua("intplus/imag00000002.jpg","intplus/watermark.png","imags/imag00000002.jpg",100);
if ($ok) {
echo "si existe la función"; }
if (!$ok) {
echo "no existe la función"; }
?>


He modificado el final pero el caso es el mismo, cuando lo ejecuto me imprime "no existe la función" cuando en realidad la funcion marcadeagua la ha llevado a cabo bien y debería devolver verdadero.

Saludos y gracias
  #4 (permalink)  
Antiguo 14/11/2007, 18:18
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Me podeis ayudar con este codigo

no he usado mucho lo de la creación de imagenes, pero creo que esto te puede servir
Código PHP:
function marcadeagua($img_original$img_marcadeagua$img_nueva$calidad) {

// obtener datos de la fotografia
$info_original getimagesize($img_original);
$anchura_original $info_original[0];
$altura_original $info_original[1];

// obtener datos de la "marca de agua"
$info_marcadeagua getimagesize($img_marcadeagua);
$anchura_marcadeagua $info_marcadeagua[0];
$altura_marcadeagua $info_marcadeagua[1];

// calcular la posicion donde debe copiarse la "marca de agua" en la fotografia
$horizextra $anchura_original $anchura_marcadeagua;
$vertextra $altura_original $altura_marcadeagua;
$horizmargen round($horizextra 2);
$vertmargen round($vertextra 2);

// crear imagen desde el original
$original ImageCreateFromJPEG($img_original);
ImageAlphaBlending($originaltrue);

// crear nueva imagen desde la marca de agua
$marcadeagua ImageCreateFromPNG($img_marcadeagua);
if(!
$marcadeagua){return false;}//si falla la creación de la imagen devolvemos false
// copiar la "marca de agua" en la fotografia
ImageCopy($original$marcadeagua458000$anchura_marcadeagua$altura_marcadeagua);

// guardar la nueva imagen
ImageJPEG($original$img_nueva$calidad);

// cerrar las imagenes
ImageDestroy($original);
ImageDestroy($marcadeagua);
return 
true;//si llega hasta este punto sin error, devolvemos true
}
// aplicamos la funcion a una imagen "original.jpg"
$ok marcadeagua("intplus/imag00000002.jpg","intplus/watermark.png","imags/imag00000002.jpg",100);
if (
$ok) {
echo 
"si existe la función"; }
else {
echo 
"no existe la función"; } 
suerte y saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #5 (permalink)  
Antiguo 14/11/2007, 18:32
 
Fecha de Ingreso: noviembre-2007
Mensajes: 12
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Me podeis ayudar con este codigo

Muchas gracias eits por tu ayuda voy a seguir haciendo pruebas a ver si doy con el tema.

Gracias de nuevo
Saludos
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 18:24.