Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   Edición de imágenes con PHPImagen (Aporte) (http://www.forosdelweb.com/f18/edicion-imagenes-con-phpimagen-aporte-540846/)

okram 05/03/2008 21:12

Re: Edición de imágenes con PHPImagen (Aporte)
 
Esto como una acotación. Verás, todos los cambios se hacen directamente en la propiedad $source, no existe una propiedad que se llame $output. Por lo tanto, desconozco como es que ese cambio solucionó el problema de asdf-1.

Ahora, yendo a tu problema. El error está en tu código:
Código PHP:

<? 
# Estas lineas debes borrarlas. Hacen que el codigo PHP de este archivo
# quede visible si se define la variable de URL source
if(isset($_GET['source'])) {  
    
highlight_file(__FILE__);  
    exit;  
}  
# ------------
 
# Aqui guardas el nombre de archivo en la variable $imagen
$imagen $_GET['file'];   
 
# incluyes el script
include_once "PHPImagen.lib.php";   
 
# OJO: estás instanciando la clase en la misma variable $imagen
$imagen = new Imagen($imagen);   
 
# ancho y alto
$nuevo_ancho $_GET['ancho'];  
$nuevo_alto $_GET['alto'];  
 
# aparentemente esta linea no te sirve de nada, ya que en la
# siguiente linea, cuando llamas el metodo resize(), le das
# al tercer parametro el valor de true
$cut = (isset($_GET['cut'])) ? true false;  
 
# redimensionas
$imagen->resize($nuevo_ancho$nuevo_altotrue);  
 
# Hasta aqui todo esta bien. Aqui esta el problema:
$imagen->doSave("$imagen",90); 
# La variable $imagen contenia inicialmente el nombre del archivo,
# pero luego la usaste para instanciar la clase. Por lo tanto
# ya no es un string, es un objeto
?>

Si intentas abrir el script directamente en tu navegador (http://www.tusitio.com/trataimg.php?...o=180&cut=true) te devolverá un error del tipo

Catchable fatal error: Object of class Imagen could not be converted to string

Lo solucionas cambiando el nombre de las variables:

Código PHP:

<?php 
//if(isset($_GET['source'])) {  
//  highlight_file(__FILE__);  
//  exit;  
//}  
 
# Usamos $archivo para guardar el nombre de la imagen
$archivo $_GET['file'];   
 
include_once 
"PHPImagen.lib.php";   
 
$imagen = new Imagen($archivo); # $archivo
 
$nuevo_ancho $_GET['ancho'];  
$nuevo_alto $_GET['alto'];  
$cut = (isset($_GET['cut'])) ? true false;  
$imagen->resize($nuevo_ancho$nuevo_altotrue);  
 
$imagen->doSave($archivo,90); # $archivo
 
# Ademas, como el script lo llamas con un tag <img>, es necesario
# que envies al navegador la imagen [doPrint()]
$imagen->doPrint();
 
?>

Espero que esto solucione tu problema. Saludos, :adios:

popobcn 06/03/2008 04:32

Re: Edición de imágenes con PHPImagen (Aporte)
 
Bueno... correcciones aplicadas!!!

Ayer por la noche o bien estaba ciego o bien tenia problemas demenciales para no haberlo visto... Pero tu aporte me esta dando "trabajito" para que nos vamos a engañar... jajajajajaja :neurotico

Ahora tengo problemas con la RUTA del archivo o con el nombre del mismo, ya que lo ponga como lo ponga me da error en el procesamiento de la imagen, indicando que el nombre del archivo ha de ser valido...

En fin... continuo mi batalla xD jajajajajajaja Gracias por tu ayuda!

Saludos

EDICION: Ponga la ruta que ponga, directa o absoluta me lanza exactamente el mismo error. I can't understand!!!

popobcn 06/03/2008 05:42

Re: Edición de imágenes con PHPImagen (Aporte)
 
CORRGIDO.... Esta claro que tengo que cambiar de marca de café!!!! xD

Por ciierto, una pequeña aportación con el fin de que las imagenes se escalen a la perfección si son excesivamente grandes (mi caso particular... ). En este ejemplo he marcado un limite de alto y ancho de 600px, posteriormente tan solo se ha de efectuar la llamada al ficherin que efectué el tratamiento de las imagenes :)

Código PHP:

if($ancho>600){
     
$nalto round($alto 600 $ancho,0); 
     
$nancho=600;
}elseif(
$alto>600){
     
$nalto=600;
     
$nancho round($ancho 600 $alto,0);


Okram... Ya lo habran dicho y seguramente yo también, pero... GRACIAS por este aporte. La verdad es que simplifica muchoooooooooooo la vida para aquellos que a los que les mola solo romperse la cabeza con otras parte de código no relacionadas con la manipulación de imagenes :)

Saludos

farra 06/03/2008 05:47

Re: Edición de imágenes con PHPImagen (Aporte)
 
una funcion muy util para imagenes:

Código PHP:

function create_tb($img_o,$w_tb,$h_tb,$bg_color){
 
$img_return=imagecreatetruecolor($w_tb,$h_tb);
 if(isset(
$bg_color) && $bg_color != ""){
   
$colorimagecolorallocate($img_returnhexdec(substr($bg_color,0,2)), hexdec(substr($bg_color,2,2)), hexdec(substr($bg_color,4,2))); 
 }else{
  
$colorimagecolorallocate($img_return255255255);
 }
 
    
imagefilledrectangle($img_return00$w_tb$h_tb$color);
 
$wo=imagesx($img_o);
 
$ho=imagesy($img_o);
 
 if(
$wo >= $ho){ 
  
  
$wtb_copy=$w_tb;
  
$htb_copy=($ho*(($w_tb*100)/$wo))/100;
  
$xtb_copy=0;
  
$ytb_copy=($h_tb/2)-($htb_copy/2);
 }elseif(
$ho $wo){
  
  
$wtb_copy=($wo*(($h_tb*100)/$ho))/100;
  
$htb_copy=$h_tb
  
$xtb_copy=($w_tb/2)-($wtb_copy/2);
  
$ytb_copy=0;
 }
 
imagecopyresampled($img_return$img_o$xtb_copy$ytb_copy00$wtb_copy$htb_copy$wo$ho);
 return 
$img_return;



y luego validas antes de crear la imagen, este crea 2 imagenes 1 chica y otra grande:


Código PHP:

$valido true
$file=$_FILES["file"];
    if(
$file["type"]=="image/pjpeg" || $file["type"]=="image/jpg" || $file["type"]=="image/jpeg"){ 
        if(
$file["size"]>=5120000){
              
$valido false;
            echo 
"tamaño incorrecto";
         }
    }else{
        
$valido false;
        echo 
"tipo incorrecto";
    }


    
    if(
$valido){
     
$imgGrande=imagecreatefromjpeg($file["tmp_name"]);
     
$imggrande=create_tb($imgGrande,150,150,"CCE6FF");
            
$imgChica=create_tb($imgGrande,60,60,"CCE6FF");
            
imagejpeg($imggrande,"carpeta/imagen_".($ID).".jpg",60);
            
imagejpeg($imgChica,"carpeta/imagen_".($ID).".jpg",60);
    

    }



Dundee 18/03/2008 07:29

Re: Edición de imágenes con PHPImagen (Aporte)
 
Felicidades por la clase ¡¡ es cojonuda ¡¡ , el problema es que para iniciados novatos en php como yo es un poco complicado de entender el código NO DE USAR ¡¡ojo¡¡ , una cosa es no saber usarla (cosa q está al alcance de casi todos) y otra es desmenuzar el código y enteenderlo cosa ya más complicada sino se tienen un buen nivel en php.

un saludo y mi mas sinceras felicitaciones por la labor.

superjosal 30/05/2008 02:35

Respuesta: Edición de imágenes con PHPImagen (APORTE)
 
Muchas gracias, okram. Me es de excelente utilidad.

Un saludo!

darchy 01/09/2008 06:16

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
Estoy pensando... seria posible adpatarla a oscommerce para que me haga un 2 en 1, subir la foto y redimesionarla a la vez, verdad??

Edit:
es cosa mia o esta roto el link de la pagina??

okram 01/09/2008 19:02

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
@darchy, el script trabaja solamente con imágenes que ya están en el servidor. Sin embargo, lo que sugieres es algo que pensaré ;-). Los links a la página están activos. Puedes confirmarme si ya puedes entrar? http://scripts.phperu.net/imagen

:adios:

darchy 03/09/2008 03:42

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
Pues debe de ser cosa de mi proveedor de internet o del navegador o yo que se que, pero sigo sin poder descargarlo :(

destor77 12/02/2009 07:47

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
no puedo descargar la libreria me sale que la url de la descarga no existe :s

okram 12/02/2009 09:18

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
Se trataba de una URL externa que ya no está activa. El código del script lo puedes ver aquí: http://scripts.phperu.net/imagen/PHP...lib.php?source. Se trata de la versión para PHP5.

:adios:

DjMiki 11/05/2009 18:25

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
okram, muy buen aporte eh visto los demos de tu web, pero sabes en mi hosting no funka chekea "m i k i t o . u n i . c c / ies/img.php?file=h t t p : / / m i k i t o . u n i . c c /img_menus/sagas.jpg&ancho=166&alto=196&mark=false&recolor=80 0"
y no se por que, la libreria GD eta activada, aunque no se si esta la freetype, pero como dices es opcional, y bueno el php, q cuenta el hostiing q utiliza es 5.2 pero aun asi no funciona mi codigo de mi archio img, es el siguiente:
Código PHP:

<?php 

$files 
$_GET['file'];

require_once 
'admincp/PHPImg.lib.php';
// Instanciamos la clase
$imagen = new Imagen($files); 
// Redimension de la imagen. Los parámetros los 
// recibimos de la URL. Por motivos de seguridad,
// Los tamaños máximos permitidos son de 500x500 px.
$nuevo_ancho = ($_GET['ancho'] <= 500) ? $_GET['ancho'] : null
$nuevo_alto = ($_GET['alto'] <= 500) ? $_GET['alto'] : null;
$cut = (isset($_GET['cut'])) ? true false
$imagen->resize($nuevo_ancho$nuevo_alto$cut);
/* 
// Aplicación de la marca de agua
if($_GET['mark'] !== "false") {
    $imagen->watermark("wm2.png",null,false,1);
}

// Apicar nueva coloración
if(isset($_GET['gris'])) 
    $imagen->grayscale(); 
elseif(isset($_GET['recolor'])) { 
    $exact = (isset($_GET['exact'])) ? true : false;
    $color = urldecode($_GET['recolor']);
    $imagen->colorize($color,$exact); 
}  

if($_GET['mark'] !== "false") {
    // Inserción de textos
    /* 
    TEXTO 1: Imagen v1.0 
    
    CARACTERÍSTICAS: 
        Color: #ff0 -> Amarillo 
        Tamaño: 15px 
        Fuente: font2.ttf 
        Rotación: 90º en sentido antihorario (+90) 
        Posición en eje horizontal: a 15px del borde izquierdo de la imagen 
        Posición en eje vertical: a 17px del borde inferior de la imagen  
    
    Para el color AMARILLO podré poner: 
    
    #ff0 
    #ffff00 
    ff0 
    ffff00 
    255,255,0 
    255.255.0 
    255 255 0 
    

    
    //Sombra
    $imagen->textmark("ISTP DAVINCI","#f00",29,"admincp/font/BAUHS93.TTF",null,8,-19); 
    
    //Texto
    $imagen->textmark("ISTP DAVINCI","ff0",29,"admincp/font/BAUHS93.TTF",null,7,-20); 
    

    TEXTO 2: MyOkram.INFO 
    
    CARACTERÍSTICAS: 
        Color: #fff -> Blanco 
        Tamaño: 3pt 
        Fuente: Por default 
        Rotación: - 
        Posición en eje horizontal: a 5px del border izquierdo de la imagen 
        Posición en eje vertical: a 15px del border inferior de la imagen  
    
    Para el color BLANCO podré poner: 
    
    #fff 
    #ffffff 
    fff 
    ffffff 
    255,255,255 
    255.255.255 
    255 255 255 
    

    
    //Sombra
    $imagen->textmark("MyOkram.INFO","0.0.200",2,null,null,6,-13); 
    
    //Texto
    $imagen->textmark("MyOkram.INFO","255 255 255",2,null,null,5,-15); 
} */
//MOSTRAMOS LA IMAGEN
if(isset($_GET['download'])) 
    
$imagen->doDownload(); 
else 
    
$imagen->doPrint();  
?>


aunque probe quitar la opcion download, sigue sin funcionar, espero me puedas ayduar en que eh fallado, lo que intento hacer es solo mostrar la imagen en una noticia, claro que coloco las etiquetas para mostrar la imagen. pero no funciona, lo ago de esta manera:
Código HTML:

<img src="img.php?file=h t t p : / / m i k i t o . u n i . c c /img_menus/sagas.jpg&ancho=166&alto=196&mark=false&recolor=800" />
Pero nada

okram 11/05/2009 18:41

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
Al parecer el script está generando la imagen correctamente. Revisa que no haya espacios ni saltos de línea ni ningún otro caracter antes de <?php, y de preferencia omite el tag de cierre (No coloques ?>). Por otro lado, puede deberse a problemas con la codificación de tu archivo img.php. Con qué codificación estás guardando ese archivo?

:adios:

DjMiki 12/05/2009 11:37

Siguen los problemas
 
Gracias por responder OKRAM, pero bueno aun siguo teniendo problemas, mi codificacion es la Europea Occidental, y ya me asegure de eso, y ya quite la etiqueta de cierre del php, pero aun sigue sin funcionar y no se q mas pueda ser, ahora intente hacerlo en otro hosting pero me salio la codificacion, osea caracteres extraños chekea
Cita:

h t t p : / / mikito2.uni.cc/ies/img.php?file=01b.jpg&ancho=200&alto=300
bueno sigue siendo el mismo codigo, que mas crees q peuda ser, quizas me equivoque en algo.
O quizas lo puedas colgar en algun hosting de paga para probarlos, por que yo utilizo hosting free.
Gracias de antemano

felix46 10/06/2009 12:32

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
no funciona el link

enunez810 24/09/2009 07:44

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 

SIIIIIIIIIIIIII TANTO LA LIB DE LAS IMAGENES COMO LA DE PAGINACION ESTAN BESTIAL SOLO ME QUEDA DECIRTE

http://setven.net/images/sosgroso_homero.jpg

davidortega 24/09/2009 13:39

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
no puedo acceder a esa direccion, dice que el dominio esta suspendido alguien tiene otra para probar

enunez810 24/09/2009 13:59

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
Cita:

Iniciado por davidortega (Mensaje 3096993)
no puedo acceder a esa direccion, dice que el dominio esta suspendido alguien tiene otra para probar

lee un poco ortega mas abajo esta este link
http://phpimagen.phperu.net/

dejame decirte q esta demasiado buenas la info

DEMASIADO !!!!!!!!

ody777 05/02/2011 12:22

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
Buenas, ya pude insertar el texto en la imagen, lo que me gustaria saber es como hacer para que quedara centrado el texto en la imagen.

Porque si lo configuro para una palabra queda bien, pero si se escribe otra palabra con menos caracteres queda muy contra la izquierda, como puedo hacer para que quede centrada?

Gracias!

chemon 24/02/2011 09:39

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
Saludos a todos
Y en especial a okram. Quiero agradecerte el que hayas decidido compartir esta librería con todos. En concreto, a mi me ha facilitado mucho la vida.

Escribo para comentaros un pequeño problema que tengo con la libreria.
He desarrollado un gestor de noticias y permito que los usuarios suban imágenes en cualquier formato web (gif, jpg o png). La librería me permite manipular cualquier tipo de imagen menos los png. Cuando trato de manipular un png me devuelve el siguiente mensaje
No se puede mostrar la imagen ... porque contiene errores

He revisado el código por si no admitia png, pero veo que puede trabajar con ellos perfectamente

¿Alguién sabe a que puede deberse esto?

Muchas gracias por adelantado

Un saludo



Edito:

Ya lo he solucionado. He encontrado un post de otro usuario en el que se comentaba que comentando la linea header en la función doPrint podía mostrar los errores. Allí he visto que no estaba declarada la constante PNG_ALL_FILTERS y ese era el problema. En el servidor donde tengo alojada la web parece que no está activado. Quitando esa constante que es opcional en imagepng he conseguido que funcione.
De nuevo gracias por esta magnifica librería

alexisfch 12/04/2011 10:56

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
esta muerto el link de la claso, por favor postearlo correctamente.

Unxky28 12/04/2011 11:30

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
El Link por favor.

Gracias!!!

Mcruzmx 01/08/2011 19:37

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
no esta disponible el link de descarga :/ la pagina ya no existe

Mcruzmx 01/08/2011 20:36

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
no se que pasa pero me muestra el codigo :S osea en lugar de mostrarme la imagen

lo llamo asi --> thumbail.php?source=preview/20100329105323.jpg&alto=80&mark=false


y el codigo lo tome de http://phpimagen.sourceforge.net/img...=80&mark=false

lo probe tanto en localhost como en un hosting comercial, ambos la misma cosa...


el codigo que tengo (aparte de la tipica libreria para php5) es:

<?php

/**
* @author Myokram
* @copyright 2007
*/


if(isset($_GET['source'])) {
highlight_file(__FILE__);
exit;
}

$imagen = $_GET['file'];

include_once "PHPImagen.lib.php";

// Instanciamos la clase
$imagen = new Imagen($imagen);

// Agregamos el logo en esquina sup. izq. Este logo se redimensionará
// junto con la imagen, pues es agregado antes de la redimensión
if($_GET['mark'] !== "false" and isset($_GET['wm2'])) {
$rot = (is_numeric($_GET['wm2'])) ? intval($_GET['wm2']) : 45;
$imagen->watermark("wm.gif",5,5,false,$rot);
}

// Redimension de la imagen. Los parámetros los
// recibimos de la URL. Por motivos de seguridad,
// Los tamaños máximos permitidos son de 500x500 px.
$nuevo_ancho = ($_GET['ancho'] <= 500) ? $_GET['ancho'] : null;
$nuevo_alto = ($_GET['alto'] <= 500) ? $_GET['alto'] : null;
$cut = (isset($_GET['cut'])) ? true : false;
$imagen->resize($nuevo_ancho, $nuevo_alto, $cut);

// Aplicación de la marca de agua
if($_GET['mark'] !== "false") {
$imagen->watermark("wm2.png",null,false,1);
}

// Apicar nueva coloración
if(isset($_GET['gris']))
$imagen->grayscale();
elseif(isset($_GET['recolor'])) {
$exact = (isset($_GET['exact'])) ? true : false;
$color = urldecode($_GET['recolor']);
$imagen->colorize($color,$exact);
}

if($_GET['mark'] !== "false") {
// Inserción de textos
/*
TEXTO 1: Imagen v1.0

CARACTERÍSTICAS:
Color: #ff0 -> Amarillo
Tamaño: 15px
Fuente: font2.ttf
Rotación: 90º en sentido antihorario (+90)
Posición en eje horizontal: a 15px del borde izquierdo de la imagen
Posición en eje vertical: a 17px del borde inferior de la imagen

Para el color AMARILLO podré poner:

#ff0
#ffff00
ff0
ffff00
255,255,0
255.255.0
255 255 0

*/

//Sombra
$imagen->textmark("PHPImagen","#f00",29,"font4.ttf",null,8 ,-19);

//Texto
$imagen->textmark("PHPImagen","ff0",29,"font4.ttf",null, 7,-20);

/*
TEXTO 2: MyOkram.INFO

CARACTERÍSTICAS:
Color: #fff -> Blanco
Tamaño: 3pt
Fuente: Por default
Rotación: -
Posición en eje horizontal: a 5px del border izquierdo de la imagen
Posición en eje vertical: a 15px del border inferior de la imagen

Para el color BLANCO podré poner:

#fff
#ffffff
fff
ffffff
255,255,255
255.255.255
255 255 255

*/

//Sombra
$imagen->textmark("MyOkram.INFO","0.0.200",2,null,null,6 ,-13);

//Texto
$imagen->textmark("MyOkram.INFO","255 255 255",2,null,null,5,-15);
}

//Por la URL recibiremos el parámetro download
if(isset($_GET['download']))
$imagen->doDownload();
else
$imagen->doPrint();


?>

dicho codigo es de thumbail.php, gracias por la ayuda :S

Mcruzmx 01/08/2011 20:37

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
Cita:

Iniciado por Mcruzmx (Mensaje 3946453)
no esta disponible el link de descarga :/ la pagina ya no existe

ya lo encontré aqui http://phpimagen.sourceforge.net/

ManelGomez 14/10/2011 13:54

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
Hola Okram:

no encuentro esa clase que dices.

Un saludo.

UBladimir94 29/01/2013 23:34

Respuesta: Edición de imágenes con PHPImagen (Aporte)
 
bueno amigo, al parecer el hosting ya no esta
es una verdadera lastima

igual gracias ;)


La zona horaria es GMT -6. Ahora son las 06:22.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.