Jump to content

egonacho

Warianos
  • Posts

    4
  • Joined

  • Last visited

About egonacho

  • Birthday 05/05/1988

Información Personal

  • Pais
    Chile
  • Genero
    Hombre
  • Lugar
    concepcion
  • Intereses
    skateboarder

Métodos de Contacto

egonacho's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Hola, hace unos dias me di la idea de hacer agun escript para trabajar con imagenes en PHP este script retorna imagenes en minitura de diferentes formas. Puede "hacerlas caer" dentro de un cuadro de X=ancho , Y=alto. Puede definirles un ancho maxino y escalar su alto para no distorsionarla o viceversa. Puede crearles una "mascara" cuadrada que ce centrara o alineara a la imagen segun quieran. img.class.php <?php class somaImagen{ var $imagen_recurso; var $imagen_salida; var $imagen_recurso_ancho; var $imagen_salida_ancho; var $imagen_recurso_alto; var $imagen_salida_alto; var $imagen_recurso_desde_x = 0; var $imagen_salida_desde_x = 0; var $imagen_recurso_desde_y = 0; var $imagen_salida_desde_y = 0; var $escala; var $imagen_imprimible; var $rango_menor = 1; var $rango_mayor = 1000; // metodo para validar rangos de medidas function validarMedida($valor){ if ($valor>=($this->rango_menor) and $valor<$this->rango_mayor){ return $valor; }else{ if($valor <= ($this->rango_menor-1) ){return ($this->rango_menor); } if($valor >= $this->rango_mayor ){return $this->rango_mayor; } } } //metodo para crear imagen y cambiar header function crearImagen($imagen){ $this->imagen_recurso = $imagen; $this->imagen_salida = imagecreatefromjpeg($this->imagen_recurso); $this->imagen_recurso_ancho = imagesx($this->imagen_salida); $this->imagen_recurso_alto = imagesy($this->imagen_salida); } //metodo para generar salida a la imagen function crearSalida($ancho,$alto){ $this->imagen_salida_ancho = $ancho; $this->imagen_salida_alto = $alto; $this->imagen_imprimible = imagecreatetruecolor($this->imagen_salida_ancho,$this->imagen_salida_alto); imagecopyresampled( $this->imagen_imprimible, $this->imagen_salida, $this->imagen_recurso_desde_x, $this->imagen_recurso_desde_y, $this->imagen_salida_desde_x, $this->imagen_salida_desde_y, $this->imagen_salida_ancho, $this->imagen_salida_alto, $this->imagen_recurso_ancho, $this->imagen_recurso_alto ); imagejpeg($this->imagen_imprimible, NULL,100); imagedestroy($this->imagen_imprimible); } ## Metodo para crear imagen de ANCHO o ALTO MAXIMO function Cuadro($lados,$imagen){ $lados=$this->validarMedida($lados); $this->crearImagen($imagen); if ( $this->imagen_recurso_ancho >= $this->imagen_recurso_alto ) {$this->escala=$lados/$this->imagen_recurso_ancho;} else {$this->escala=$lados/$this->imagen_recurso_alto;} $this->crearSalida($this->imagen_recurso_ancho * $this->escala , $this->imagen_recurso_alto * $this->escala); } ## Metodo para crear imagen de ANCHO maximo (sin importar alto) function AnchoMax($ancho,$imagen){ $ancho=$this->validarMedida($ancho); $this->crearImagen($imagen); $this->escala=$ancho/$this->imagen_recurso_ancho; $this->crearSalida($this->imagen_recurso_ancho * $this->escala , $this->imagen_recurso_alto * $this->escala); } ## Metodo para crear imagen de ALTO maximo (sin importar ancho) function AltoMax($alto,$imagen){ $alto=$this->validarMedida($alto); $this->crearImagen($imagen); $this->escala=$alto/$this->imagen_recurso_alto; $this->crearSalida($this->imagen_recurso_ancho * $this->escala , $this->imagen_recurso_alto * $this->escala); } ## Metodo para crear imagen # nota: Alineacion = Tope+Izquierda=0; Fondo+Derecha=1; Centrada+Centrada=2; function Encuadrar($medida,$imagen,$alineacion){ $medida=$this->validarMedida($medida); $this->crearImagen($imagen); if ( $this->imagen_recurso_ancho <= $this->imagen_recurso_alto ){ $this->escala = $this->imagen_salida_ancho/$this->imagen_recurso_ancho; if($alineacion!=0){ if($alineacion==1){ $this->imagen_salida_desde_y=($this->imagen_recurso_alto-$this->imagen_recurso_ancho); } if($alineacion==2){ $this->imagen_salida_desde_y=($this->imagen_recurso_alto-$this->imagen_recurso_ancho)/2; } } $this->imagen_recurso_alto = $this->imagen_recurso_ancho; }else { $this->escala = $this->imagen_salida_alto/$this->imagen_recurso_alto; if($alineacion!=0){ if($alineacion==1){ $this->imagen_salida_desde_x=($this->imagen_recurso_ancho-$this->imagen_recurso_alto); } if($alineacion==2){ $this->imagen_salida_desde_x=($this->imagen_recurso_ancho-$this->imagen_recurso_alto)/2; } } $this->imagen_recurso_ancho = $this->imagen_recurso_alto; } $this->crearSalida($medida,$medida); } } ?> Para hacerlo funcionar hay que crear un segundo archivo e incluir img.class.php <?php ################################### >> UTILIZACION header('Content-type: image/jpeg'); include('img.inc.php'); $imagen = new somaImagen(); $imagen->Encuadrar(200,'carpeta/imagen.jpg',2); // esta es la unica linea de codigo // puedes enviarles las variables por GET ################################### >> FIN UTILIZACION // Ejemplos de Metodos ## Metodo para crear imagen de ANCHO o ALTO MAXIMO (300px) (escalando el lado menor) # $imagen->Cuadro (300,'carpeta/a.jpg'); ## Metodo para crear imagen de ANCHO (300px) maximo (sin importar alto) # $imagen->AnchoMax(300,'carpeta/a.jpg'); ## Metodo para crear imagen de ALTO maximo (300px) (sin importar ancho) # $imagen->AltoMax (300,'carpeta/a.jpg'); ## Metodo para crear imagen cuadrada y centrada (encajada en el centro (300px)) # $imagen->Encuadrar(300,'carpeta/soma.jpg',2); # nota: Alineacion = Tope+Izquierda=0; Fondo+Derecha=1; Centrada+Centrada=2; // Notas: ## 1 # Los Rangos de medida por defecto estan configurados por defecto entre 1 & 1000 # si son menores a 1 entonces lo deja en 1 & si son mayores a 1000 los deja en 1000 ## 2 # Solo Imagenes JPG ?> espero que les sirba pude hecerlo con funciones pero asi se ve mas lindo O.o Aun es un poco brusco y pretendo hacer algo mas elaborado luego. saludos
  2. OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO yo amo estos juegos :'( gracias!!! :P :P :P :P :P :P :P :P :P :banana: :banana: :banana: :banana:
×
×
  • Create New...