
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
- MSN
-
Website URL
http://www.chileskate.com
egonacho's Achievements
Newbie (1/14)
0
Reputation
-
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
-
Muy buena.. interesadisimo
-
bueeena
-
SUPER NINTENDO EMULADOR (SNES) + 295 JUEGOS
egonacho replied to DARK_EXTREMO's topic in Arcade, Emuladores & Mugen
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: