Autor
|
Tema: Micro Tutorial Tratamiento de imagenes en Php (Leído 2,506 veces)
|
n3fisto
Desconectado
Mensajes: 153
|
Hola bueno miren queria darles essta ayuda a todos los que trabajan con imagenes le di el nombre de microTutorial por que es mi primero y si tienes fallas me avisas porfavor soy principiante: NOTA: La informacion la saque de toda parte asi que es un codigo Mixtura (Me refiero que ES CODIGO sacado de varios source) TRATAMIENTO DE LA IMAGENPrimero tenemos que aprender a tratar a la imagen con esta pagina lo que hacemos es redimensionar el tamaño y ajustarlo. Nombre de la pagina img.inc.php<?php //TRATAMIENTO DE IMAGENES //==================================== 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; 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 ; } } } function crearImagen($imagen){ $this->imagen_recurso = $imagen; $this->imagen_recurso_ancho = imagesx($this->imagen_salida); $this->imagen_recurso_alto = imagesy($this->imagen_salida); } 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); $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); } 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); } 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); } 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); } 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); } } ?>
|
|
« Última modificación: 27 Noviembre 2009, 16:10 pm por N3FISTO »
|
En línea
|
|
|
|
n3fisto
Desconectado
Mensajes: 153
|
Continuando........ Luego de realizar ese tratamiento lo que sigue es la carga a la base de datos, y la redimension de la imagen, lo que yo pude hacer, fue que en una sola pagina me cree un temporal mas la subida a la base de datos. Subir imagen a la Base de DatosLo siguiente que se hace es crear la pagina que se encarga de la subida, como yo soy Linuxero pude hacer que se suba el servidor de la misma manera la imagen aver que les parece <?php // Constantes # Altura de el thumbnail en píxeles # Nombre del archivo temporal del thumbnail //define("NAMETHUMB", "/tmp/thumbtemp"); //Esto en servidores Linux, en Windows podría ser: define("NAMETHUMB", "D:/windows/temp/thumbtemp"); // y te olvidas de los problemas de permisos Bueno lo de D: es por que en mi portatil esta el sistema # Servidor de base de datos define("DBHOST", "localhost"); # nombre de la base de datos define("DBNAME", "productos"); # Usuario de base de datos # Password de base de datos define("DBPASSWORD", "delirion"); // Mime types permitidos $mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png"); // Variables de la foto $name = $_FILES['form_foto']['name']; $type = $_FILES['form_foto']['type']; $tmp_name = $_FILES['form_foto']['tmp_name']; $size = $_FILES['form_foto']['size']; // Verificamos si el archivo es una imagen válida die("El archivo que subiste no es una imagen válida"); // Creando el thumbnail switch($type) { case $mimetypes[0]: case $mimetypes[1]: break; case $mimetypes[2]: break; case $mimetypes[3]: break; } $ratio = ($datos[1]/ALTURA); $ancho = round($datos[0]/$ratio); imagecopyresized($thumb, $img, 0, 0, 0, 0, $ancho, ALTURA , $datos[0], $datos[1]); switch($type) { case $mimetypes[0]: case $mimetypes[1]: break; case $mimetypes[2]: break; case $mimetypes[3]: break; } // Extrae los contenidos de las fotos # contenido de la foto original $fp = fopen($tmp_name, "rb"); # contenido del thumbnail $fp = fopen(NAMETHUMB , "rb"); // Borra archivos temporales si es que existen // Guardamos todo en la base de datos ?>
NOTA Bueno con esto termina si necesitan algo o falta algo espero recibir sus criticas y me ayuden a mejorarlo o empeorarlo jajaaj gracias a todos saludos y porfavor sean compasivos es mi primer micro tutorial.... es mi primer bb lo puedo decir
|
|
|
En línea
|
|
|
|
luiggy2
Desconectado
Mensajes: 439
¡ Hello word ! XD
|
Está interesante, pero si se llama microtutorial, es porque enseña a hacer las cosas, no solo poner código.
Por lo menos podrías poner algún que otro comentario.
Saludos!
|
|
|
En línea
|
" Las grandes ideas suelen salir la mayoría de veces de grandes estupideces "
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Warnings en tratamiento de ficheros con C++ Builder XE
Programación C/C++
|
mario_tko
|
1
|
3,168
|
15 Noviembre 2011, 16:01 pm
por do-while
|
|
|
Tratamiento de Imagenes J2me
Java
|
mapers
|
0
|
1,195
|
18 Julio 2012, 20:47 pm
por mapers
|
|
|
Tratamiento de dos tablas a la vez
Programación C/C++
|
muymuyperdido
|
8
|
4,046
|
1 Enero 2013, 13:01 pm
por muymuyperdido
|
|
|
Consulta tratamiento de imágenes en python
Programación General
|
achu08
|
1
|
1,910
|
7 Mayo 2016, 18:53 pm
por MCKSys Argentina
|
|
|
¿Por qué sucede lo siguiente con el tratamiento de punteros?
Programación C/C++
|
mester
|
1
|
1,719
|
14 Septiembre 2016, 12:43 pm
por do-while
|
|