SlideShare una empresa de Scribd logo
Encuadre y redimensionado de imágenes


Lectura de
imágenes externas
                                      Lectura de imágenes externas

La visualización de imágenes no          Uno de los problemas que puede presentarse es la forma de indicar dónde están la imagen a
presenta ningún problema –lo          visualizar. En Windows es necesario utilizar la "" mientras que para Linux hay que usar "/".
hacemos habitualmente mediante
etiquetas HTML– cuando se                Al utilizar "" en Windows puede plantearse el problema de que vaya precedida por algún
encuentran en el espacio del          caracter que pueda tener una significación especial como por ejemplo n. Una solución para
servidor, bien sea propio o ajeno.    evitar esos eventuales problemas es escribir "" como separador de niveles de directorio. De
                                      esta forma el primer "" indica que lo que le precede ha de interpretarse sin ninguna
El problema puede surgir cuando       significación especial.
tratemos de almacenar esas
imágenes fuera del root del
servidor (una forma de impedir la      <?
accesibilidad desde otras webs) y      # indicar la ruta de la imagen
eso puede conseguirse mediante         $original="C:ApachehtdocscursoPHPimagescaballos.jpg";
las funciones que veremos en este
capítulo.                              # extraer el tipo de imagen según su la extension del fichero
                                       for($i=strlen($original)-1;$i>0;$i--){
El primer paso será establecer la
                                           if (substr($original,$i,1)=="."){
ruta y el nombre de la imagen. Al
margen tienes comentados                      $tipo=substr($original,$i+1);
algunos detalles al respecto.                 break;
                                           }
El paso siguiente será extraer el      }
formato de la imagen. Lo hice          # las diferentes opciones dependiendo del formato de la imagen
leyendo la parte de la cadena          switch($tipo){
comprendida entre el último punto          case "jpg":
(.) y el final de la cadena que                   Header("Content-type:image/jpeg");
contiene el nombre de la imagen.
                                                  $nueva=imagecreatefromjpeg($original);
Mediante el switch elijo las                      imagejpeg($nueva);
instrucciones para cada tipo de            break;
imagen que son similares pero con
matices según del formato.                  case "png":
                                                   Header("Content-type:image/png");
La visualización de la imagen                      $nueva=imagecreatefrompng($original);
contiene tres instrucciones:
                                                   imagepng($nueva);
Header, imagecreatefrom e
                                            break;
imageXXX.

En Header hay que incluir un                case "gif":
Content - type acorde con el tipo                  Header("Content-type:image/gif");
de imagen. Puede ser, entre otros                  $nueva=imagecreatefromgif($original);
valores: image/jpeg, image/                        imagegif($nueva);
png ó image/gif según la imagen             break;
tenga formato: jpg, png ó gif.          }
Con idéntico criterio, la función      ImageDestroy();
que crea la imagen ha de ser una       ?>
de estas:

$f=imagecreatefromjpeg($i)                      Ver ejemplo .jpg           Ver ejemplo .png           Ver ejemplo .gif
ó
$f=imagecreatefrompng($i)
ó                                         ¡Cuidado!
$f=imagecreatefromgif($i)
                                        Observa que en las imágenes en formato png se visualizan con deficiencias en los bordes de las
siendo $i la variable que recoge el     áreas transparentes.
nombre y el path de la imagen
original y $f la variable que           Con el método que vemos a continuación ese problema se reduce considerablemente.
contiene el resultado de la
ejecución de esta función.

La función image (la que permite
visualizar la nueva imagen)           Lectura y redimensionado de imágenes externas
también puede tener una de las
tres variantes que ya conocemos
de ejemplos anteriores. Pueden
ser:                                   <?
imagejpeg($f), imagepng($f) ó
                                       # indicar la ruta de la imagen
imagegif($f), donde $f es la
variable que recoge el resultado de    $original="C:ApachehtdocscursoPHPimagescaballos.jpg";
la función anterior.                   for($i=strlen($original)-1;$i>0;$i--){
                                           if (substr($original,$i,1)=="."){
                                              $tipo=substr($original,$i+1);
Redimensionado de                             break;
imágenes externas                          }
                                       }
Tampoco parece ninguna utilidad.       # dimesiones del original
¿Verdad? A fin de cuentas con          $tamano=getimagesize($original);
etiquetas HTML podemos asignar         $orig_Ancho = $tamano[0];
el ancho y el alto de una imagen.      $orig_Alto =$tamano[1];
Pero... ya verás como no es tan        # factores de ampliación, distintos para provocar una distorsión
trivial esta opción.
                                       # en la imagen resultante
El proceso es el siguiente:            $ampliacion_X=2;
                                       $ampliacion_Y=1.5;
1º.- Determinamos cuales son las       # dimesiones de la imagen resultante. Vamos a dejarla a sangre
dimensiones de la imagen externa       # (sin márgenes en blanco) y vamos a reproducir el original
que vamos a utilizar. Para ello,       # sin reencuadrar así que las esquinas superiores izquierdas de
usaremos de la función:                # ambas imágenes estarán en 0,0.
$dim=getimagesize($r)
                                       $resultado_Ancho=$orig_Ancho*$ampliacion_X;
                                       $resultado_Alto= $orig_Alto*$ampliacion_Y;
donde $r es la variable que            #creamos una imagen a partir de la original. Debemos elegir
contiene el path y nombre del          #la funcion adecuada al tipo de imagen original
fichero que contiene la imagen y       switch($tipo){
$dim es un array escalar que
                                           case "jpg":
contiene las dimensiones de la
                                                  $importada=imagecreatefromjpeg($original);
imagen analizada.
                                                break;
El elemento del array $dim[0]                  case "png":
contiene el ancho y $dim[1] el                    $importada=imagecreatefrompng($original);
alto, ambos expresados en pixels.               break;
                                                case "gif":
¡Cuidado...!                                      $importada=imagecreatefromgif($original);
Esta función solo funciona cuando
                                                break;
se trata de imágenes externas.
Para determinar las dimensiones        }
de imágenes generadas por PHP          # insertamos la cabecera de la nueva imagen
tendrás que utilizar otra distinta.    Header("Content-type:image/jpeg");
De nada ;-)                                  #creamos una imagen nueva en color verdadero
                                              $im_base=imagecreatetruecolor($resultado_Ancho,$resultado_Alto);
2º.- Creamos una copia de la                      #aplicamos un color de fondo a la nueva imagen
imagen original por medio de la                   #para poder visualizar que incluye la transparencia del png o del
función imagecreate adecuada al        gif
tipo de imagen que deseamos
                                                  if($tipo=="png" OR $tipo=="gif"){
importar. Es exactamente lo que
hemos visto en el párrafo anterior.
                                                           $fondo=imagecolorAllocate($im_base,255,255,200);
                                                           imagefill($im_base,0,0,$fondo);
3º.- Creamos una nueva imagen                     }
-podemos trabajar con varias           #superponemos la imagen importada sobre la que acabamos de crear
imágenes, en eso no hay                       imagecopyresampled($im_base,$importada,0,0,0,0,
problema– mediante la función:                                          $resultado_Ancho, $resultado_Alto,
                                                                        $orig_Ancho,$orig_Alto);
$d=imagecreatetruecolor(x,y)
                                                       # visualizamos la imagen resultante
dónde $d es el identificador de la               imagejpeg($im_base);
imagen, y x e y son las                ImageDestroy();
dimensiones de esta nueva imagen.      ?>

Dado que esta imagen va a ser el
soporte –una imagen en color                    Ver ejemplo .jpg        Ver ejemplo .png         Ver ejemplo .gif
verdadero (de ahí lo de truecolor)
con fondo negro, algo muy similar
al papel fotográfico que se usa en    Observa que –tanto en el ejemplo anterior como en el siguiente– solo hemos utilizado la
los laboratorios– sobre el que se     extensión de la imagen original para elegir la función imagecreatefrom.... En el Header hemos
va a impresionar esa especie de
                                      puesto image/jpeg y, como es obvio, hemos utilizado la función asociada a este formato
negativo que es la imagen original
es necesario que sus dimensiones      (imagejpeg). Si sustituimos ambos valores por los correspondientes a otro formato (gif, png)
sean las deseadas para la imagen      obtendríamos resultados similares.
resultante.

4º.-Ahora toca positivar la nueva
foto. Para hacerlo disponemos de      Recortar imágenes externas
la función

imagecopyresampled() que
debe incluir –dentro del
                                       <?
paréntesis– un montón de
parámetros que son (por este
                                       # obtener la imagen
orden):                                $original="C:ApachehtdocscursoPHPimagesaviones4.jpg";
                                       for($i=strlen($original)-1;$i>0;$i--){
$d que es el identificador de la           if (substr($original,$i,1)=="."){
imagen destino, es decir el papel             $tipo=substr($original,$i+1);
fotográfico que hemos creado en el            break;
paso anterior.                             }
$f que es el identificador de la
                                       }
imagen original (negativo)             # tamaño del original
obtenido en el punto 2º.               $tamano=getimagesize($original);
                                       $orig_Ancho = $tamano[0];
Xd e Yd son las coordenadas de un      $orig_Alto =$tamano[1];
punto situado en la esquina            # estableceremos un margen en blanco alrededor de la imagen de 5 pixels
superior izquierda del papel a         # igual por los cuatro lados
partir del que queremos que se         $margen=10;
impresione la fotografía. Si           # establecemos rocortes para reencuadrar la imagen
queremos una foto a sangre             $recorte_izq=50;
pondremos 0,0 y, si quieres dejar
                                       $recorte_sup=80;
márgenes en blanco, habrá que
                                       $recorte_der=40;
poner los anchos de esos
márgenes (izquierdo y superior)        $recorte_inf=60;
respectivamente.                       # calculamos las dimensiones para utilizar como parámetros
                                       # en la funcion imagecopyresampled
Xf e Yf nos servirán para              # ancho y alto original recortado
reencuadrar la foto original           $Ancho_recortado=$orig_Ancho-$recorte_izq-$recorte_der;
recortando por la izquierda y por      $Alto_recortado=$orig_Alto-$recorte_sup-$recorte_inf;
arriba, respectivamente, los           # factores de ampliación en este caso iguales
anchos que se indiquen aquí en         # sin distorsión de imagen
pixels.                                $ampliacion_X=1;
Dx e Dy indican el ancho y el alto     $ampliacion_Y=1;
                                       # dimensiones del soporte
(por este orden) que va a tener la
mancha de imagen en el positivo.       $papel_Ancho=$Ancho_recortado*$ampliacion_X+ 2*$margen;
Ten en cuenta que no puedes            $papel_Alto=$Alto_recortado*$ampliacion_Y+2*$margen;
salirte del papel así que esos         # dimensiones de la mancha de imagen al positivar
valores sumados con los márgenes       # hay que quitar los márgenes
(izquierdo y superior) no podrán       $resultado_Ancho=$papel_Ancho -2*$margen;
ser mayores que las dimensiones        $resultado_Alto=$papel_Alto -2*$margen;
que has elegido para el papel          switch($tipo){
fotográfico en el punto 2º.                case "jpg":
                                                 $importada=imagecreatefromjpeg($original);
Fx e Fy indican el ancho y el alto
                                             break;
de la porción del original que
                                           case "png":
tratamos de reproducir. Sumados
con Xf e Yf no pueden exceder el
                                                 $importada=imagecreatefrompng($original);
                                             break;
tamaño del negativo.
                                           case "gif":
Con estos parámetros la función ya              $importada=imagecreatefromgif($original);
se encarga de redimensionar la            break;
imagen (incluso distorsionarla si     }
no hay proporcionalidad entre los
                                        Header("Content-type:image/jpeg");
anchos y altos del original y del
soporte.
                                          $im_base=imagecreatetruecolor($papel_Ancho,$papel_Alto);
                                              $fondo=imagecolorAllocate($im_base,255,255,200);
                                                         imagefill($im_base,0,0,$fondo);
                                             imagecopyresampled($im_base,$importada,$margen,$margen,
                                                                       $recorte_izq,$recorte_sup,
                                                                       $resultado_Ancho,$resultado_Alto,
                                                                       $Ancho_recortado,$Alto_recortado);
                                                imagejpeg($im_base);
                                     ImageDestroy();
                                     ?>


                                                                  Ver imágenes original y
                                                                  resultante

                                                   Anterior                Indice                  Siguiente

Más contenido relacionado

La actualidad más candente

Cómo domar SonataAdminBundle
Cómo domar SonataAdminBundleCómo domar SonataAdminBundle
Cómo domar SonataAdminBundle
Victoria Quirante Ruiz
 
Php funciones en detalle
Php   funciones en detallePhp   funciones en detalle
Php funciones en detalle
Dev 010101
 
Ruby intro
Ruby introRuby intro
Ruby intro
Miguel Fernández
 
PresentacióN 4
PresentacióN 4PresentacióN 4
PresentacióN 4pokerpc
 
Ejercisos condicionales
Ejercisos condicionalesEjercisos condicionales
Ejercisos condicionalesJoshe Varillas
 

La actualidad más candente (7)

14 PHP. Variables
14 PHP. Variables14 PHP. Variables
14 PHP. Variables
 
Cómo domar SonataAdminBundle
Cómo domar SonataAdminBundleCómo domar SonataAdminBundle
Cómo domar SonataAdminBundle
 
Php funciones en detalle
Php   funciones en detallePhp   funciones en detalle
Php funciones en detalle
 
Php
PhpPhp
Php
 
Ruby intro
Ruby introRuby intro
Ruby intro
 
PresentacióN 4
PresentacióN 4PresentacióN 4
PresentacióN 4
 
Ejercisos condicionales
Ejercisos condicionalesEjercisos condicionales
Ejercisos condicionales
 

Destacado

Evolución de Necesidades Tecnológicas de la Escucha Activa
Evolución de Necesidades Tecnológicas de la Escucha ActivaEvolución de Necesidades Tecnológicas de la Escucha Activa
Evolución de Necesidades Tecnológicas de la Escucha Activa
Francisco Manuel Rangel Pardo
 
examen
examen examen
83 Php. AñAdir Registros E Indices
83 Php. AñAdir Registros E Indices83 Php. AñAdir Registros E Indices
83 Php. AñAdir Registros E IndicesJosé M. Padilla
 
Wayra Trabajo De Computacion Del Dia De La Independencia De Mexico
Wayra Trabajo De Computacion Del Dia De La Independencia De MexicoWayra Trabajo De Computacion Del Dia De La Independencia De Mexico
Wayra Trabajo De Computacion Del Dia De La Independencia De MexicoWayra Gonzalez Rodriguez
 
El árbol De Los Problemas
El árbol De Los ProblemasEl árbol De Los Problemas
El árbol De Los Problemas
DIRECTIVO DOCENTE
 
S 2870 integra comis espec elabore prop modificac integ reea
S 2870 integra comis espec elabore prop modificac integ reeaS 2870 integra comis espec elabore prop modificac integ reea
S 2870 integra comis espec elabore prop modificac integ reea
Freelance
 
C:\Fakepath\Aplicaciones De Un Blog
C:\Fakepath\Aplicaciones De Un BlogC:\Fakepath\Aplicaciones De Un Blog
C:\Fakepath\Aplicaciones De Un Blog
guest5c1dbf
 
Sonrie
SonrieSonrie
Sonrie
guestd09b98
 
Fondos Recibidos Por Ayuntamientos 1999 2005 úLtimo
Fondos Recibidos Por Ayuntamientos 1999 2005 úLtimoFondos Recibidos Por Ayuntamientos 1999 2005 úLtimo
Fondos Recibidos Por Ayuntamientos 1999 2005 úLtimo
Observatorio Politico Dominicano
 
Presentació Power Point de la sortida
Presentació Power Point de la sortidaPresentació Power Point de la sortida
Presentació Power Point de la sortidaguestd85874
 
Mi lenguaje de programación
Mi lenguaje de programaciónMi lenguaje de programación
Mi lenguaje de programaciónRyaluk0252
 
Programacion de proceso de datos
Programacion de proceso de datosProgramacion de proceso de datos
Programacion de proceso de datos
rfrancod
 
the eye of the dog, by ismail reza
the eye of the dog, by ismail rezathe eye of the dog, by ismail reza
the eye of the dog, by ismail reza
Sari Asih
 
Curso community manager
Curso community managerCurso community manager
Curso community manager
Tomas Torres Sanchez
 
Curso community manager 2013
Curso community manager 2013Curso community manager 2013
Curso community manager 2013
Bling Wino
 
Experienciae
ExperienciaeExperienciae
Experienciae
Tomas Torres Sanchez
 

Destacado (20)

Evolución de Necesidades Tecnológicas de la Escucha Activa
Evolución de Necesidades Tecnológicas de la Escucha ActivaEvolución de Necesidades Tecnológicas de la Escucha Activa
Evolución de Necesidades Tecnológicas de la Escucha Activa
 
examen
examen examen
examen
 
83 Php. AñAdir Registros E Indices
83 Php. AñAdir Registros E Indices83 Php. AñAdir Registros E Indices
83 Php. AñAdir Registros E Indices
 
Wayra Trabajo De Computacion Del Dia De La Independencia De Mexico
Wayra Trabajo De Computacion Del Dia De La Independencia De MexicoWayra Trabajo De Computacion Del Dia De La Independencia De Mexico
Wayra Trabajo De Computacion Del Dia De La Independencia De Mexico
 
Ibague
IbagueIbague
Ibague
 
El árbol De Los Problemas
El árbol De Los ProblemasEl árbol De Los Problemas
El árbol De Los Problemas
 
S 2870 integra comis espec elabore prop modificac integ reea
S 2870 integra comis espec elabore prop modificac integ reeaS 2870 integra comis espec elabore prop modificac integ reea
S 2870 integra comis espec elabore prop modificac integ reea
 
Pres Web2.0
Pres Web2.0Pres Web2.0
Pres Web2.0
 
C:\Fakepath\Aplicaciones De Un Blog
C:\Fakepath\Aplicaciones De Un BlogC:\Fakepath\Aplicaciones De Un Blog
C:\Fakepath\Aplicaciones De Un Blog
 
Sonrie
SonrieSonrie
Sonrie
 
Fondos Recibidos Por Ayuntamientos 1999 2005 úLtimo
Fondos Recibidos Por Ayuntamientos 1999 2005 úLtimoFondos Recibidos Por Ayuntamientos 1999 2005 úLtimo
Fondos Recibidos Por Ayuntamientos 1999 2005 úLtimo
 
Distrito (2002)
Distrito (2002)Distrito (2002)
Distrito (2002)
 
Desde el-aire-
Desde el-aire-Desde el-aire-
Desde el-aire-
 
Presentació Power Point de la sortida
Presentació Power Point de la sortidaPresentació Power Point de la sortida
Presentació Power Point de la sortida
 
Mi lenguaje de programación
Mi lenguaje de programaciónMi lenguaje de programación
Mi lenguaje de programación
 
Programacion de proceso de datos
Programacion de proceso de datosProgramacion de proceso de datos
Programacion de proceso de datos
 
the eye of the dog, by ismail reza
the eye of the dog, by ismail rezathe eye of the dog, by ismail reza
the eye of the dog, by ismail reza
 
Curso community manager
Curso community managerCurso community manager
Curso community manager
 
Curso community manager 2013
Curso community manager 2013Curso community manager 2013
Curso community manager 2013
 
Experienciae
ExperienciaeExperienciae
Experienciae
 

Similar a 66 Php. Encuadre Y Redimensionado De Imagenes

88 Php. Imagenes En Tablas
88 Php. Imagenes En Tablas88 Php. Imagenes En Tablas
88 Php. Imagenes En TablasJosé M. Padilla
 
Tutorial tarea gimp cartel
Tutorial  tarea gimp cartelTutorial  tarea gimp cartel
Tutorial tarea gimp cartelArte_Factory
 
Gimp manual basico by berna
Gimp manual basico by bernaGimp manual basico by berna
Gimp manual basico by bernabalea
 
Gimp manual basico
Gimp manual basicoGimp manual basico
Gimp manual basico
maria_master
 
Pagina Web 4
Pagina Web 4 Pagina Web 4
Pagina Web 4
John Edward
 
Agregar una imagen
Agregar una imagenAgregar una imagen
Agregar una imagen
Esmedc20
 
Clase 4
Clase 4Clase 4
Clase 4
EsvinRol
 
Clase 4
Clase 4Clase 4
Clase 4
esvin Rey
 
Guardar y extraer imágenes en my sql
Guardar y extraer imágenes en my sqlGuardar y extraer imágenes en my sql
Guardar y extraer imágenes en my sqlOscar Hernandez
 
INFOSAN Objetos en javascript
INFOSAN Objetos en javascriptINFOSAN Objetos en javascript
INFOSAN Objetos en javascript
FRANCIACOCO
 
Programación con Pygame III
Programación con Pygame IIIProgramación con Pygame III
Programación con Pygame III
Fernando Salamero
 
Agregar una imagen
Agregar una imagenAgregar una imagen
Agregar una imagen
lourdes9898
 
Xna game studio presentación 02
Xna game studio   presentación 02Xna game studio   presentación 02
Xna game studio presentación 02
Juan Cardona
 
Curso HTML 5 & jQuery - Leccion 3
Curso HTML 5 & jQuery - Leccion 3Curso HTML 5 & jQuery - Leccion 3
Curso HTML 5 & jQuery - Leccion 3
Emmanuel Ortiz Gutierrez
 
Eclipse
EclipseEclipse
Eclipse
ang13gam3r
 

Similar a 66 Php. Encuadre Y Redimensionado De Imagenes (20)

62 Php. Creando Imagenes
62 Php. Creando Imagenes62 Php. Creando Imagenes
62 Php. Creando Imagenes
 
88 Php. Imagenes En Tablas
88 Php. Imagenes En Tablas88 Php. Imagenes En Tablas
88 Php. Imagenes En Tablas
 
Lab2-POO
Lab2-POOLab2-POO
Lab2-POO
 
Práctica 8
Práctica 8Práctica 8
Práctica 8
 
Tutorial tarea gimp cartel
Tutorial  tarea gimp cartelTutorial  tarea gimp cartel
Tutorial tarea gimp cartel
 
Gimp manual basico by berna
Gimp manual basico by bernaGimp manual basico by berna
Gimp manual basico by berna
 
Gimp manual basico
Gimp manual basicoGimp manual basico
Gimp manual basico
 
Pagina Web 4
Pagina Web 4 Pagina Web 4
Pagina Web 4
 
Agregar una imagen
Agregar una imagenAgregar una imagen
Agregar una imagen
 
Clase 4
Clase 4Clase 4
Clase 4
 
Clase 4
Clase 4Clase 4
Clase 4
 
Guardar y extraer imágenes en my sql
Guardar y extraer imágenes en my sqlGuardar y extraer imágenes en my sql
Guardar y extraer imágenes en my sql
 
INFOSAN Objetos en javascript
INFOSAN Objetos en javascriptINFOSAN Objetos en javascript
INFOSAN Objetos en javascript
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Programación con Pygame III
Programación con Pygame IIIProgramación con Pygame III
Programación con Pygame III
 
Agregar una imagen
Agregar una imagenAgregar una imagen
Agregar una imagen
 
Xna game studio presentación 02
Xna game studio   presentación 02Xna game studio   presentación 02
Xna game studio presentación 02
 
Imagenes
ImagenesImagenes
Imagenes
 
Curso HTML 5 & jQuery - Leccion 3
Curso HTML 5 & jQuery - Leccion 3Curso HTML 5 & jQuery - Leccion 3
Curso HTML 5 & jQuery - Leccion 3
 
Eclipse
EclipseEclipse
Eclipse
 

Más de José M. Padilla

Informe Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERTInforme Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERTJosé M. Padilla
 
Manual multimedia y web 2.0
Manual multimedia y web 2.0Manual multimedia y web 2.0
Manual multimedia y web 2.0José M. Padilla
 
Guia optimizacion motores_busqueda
Guia optimizacion motores_busquedaGuia optimizacion motores_busqueda
Guia optimizacion motores_busquedaJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004José M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody AssistantModulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody AssistantJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke PlayerModulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke PlayerJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower AmpModulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower AmpJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track StudioModulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track StudioJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. AudacityModulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. AudacityJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One PlayerModulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One PlayerJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C DexModulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C DexJosé M. Padilla
 
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema OperativoModulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema OperativoJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 AlmacenamientoModulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 AlmacenamientoJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El AudioModulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El AudioJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El MidiModulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El MidiJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. EdicionModulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. EdicionJosé M. Padilla
 
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su RepresentacionModulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su RepresentacionJosé M. Padilla
 
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.José M. Padilla
 
00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.José M. Padilla
 
00 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 2000 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 20José M. Padilla
 

Más de José M. Padilla (20)

Informe Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERTInforme Riesgos y amenazas en cloud computing. INTECTO-CERT
Informe Riesgos y amenazas en cloud computing. INTECTO-CERT
 
Manual multimedia y web 2.0
Manual multimedia y web 2.0Manual multimedia y web 2.0
Manual multimedia y web 2.0
 
Guia optimizacion motores_busqueda
Guia optimizacion motores_busquedaGuia optimizacion motores_busqueda
Guia optimizacion motores_busqueda
 
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
Modulo 2. Sonido Y Musica Por Ordenador. 08 Partituras. Note Pad 2004
 
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody AssistantModulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
Modulo 2. Sonido Y Musica Por Ordenador. 10 Karaoke 2. Melody Assistant
 
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke PlayerModulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
Modulo 2. Sonido Y Musica Por Ordenador. 09 Karaoke 1. Van Basco Karaoke Player
 
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower AmpModulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
Modulo 2. Sonido Y Musica Por Ordenador. 07 Conversor. D Bpower Amp
 
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track StudioModulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
Modulo 2. Sonido Y Musica Por Ordenador. 06 Secuenciador. N Track Studio
 
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. AudacityModulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
Modulo 2. Sonido Y Musica Por Ordenador. 05 Editor De Audio. Audacity
 
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One PlayerModulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
Modulo 2. Sonido Y Musica Por Ordenador. 04 Reproductor. Real One Player
 
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C DexModulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
Modulo 2. Sonido Y Musica Por Ordenador. 03 Extraccion De Audio. C Dex
 
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema OperativoModulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
Modulo 2. Sonido Y Musica Por Ordenador. 02 Sonido En El Sistema Operativo
 
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 AlmacenamientoModulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
Modulo 1. Sonido Y Musica Por Ordenador. 07 Almacenamiento
 
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El AudioModulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
Modulo 1. Sonido Y Musica Por Ordenador. 06 El Audio
 
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El MidiModulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
Modulo 1. Sonido Y Musica Por Ordenador. 05 El Midi
 
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. EdicionModulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
Modulo 1. Sonido Y Musica Por Ordenador. 04 El Estudio De Sonido. Edicion
 
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su RepresentacionModulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
Modulo 1. Sonido Y Musica Por Ordenador. 03 El Sonido Y Su Representacion
 
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
Modulo 1. Sonido y musica por ordenador. 02 El ordenador en el aula.
 
00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.00 Sonido y musica por ordenador. Guia del alumno.
00 Sonido y musica por ordenador. Guia del alumno.
 
00 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 2000 Sonido y musica por ordenador. Caso 20
00 Sonido y musica por ordenador. Caso 20
 

Último

INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Festibity
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
bendezuperezjimena
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
IsabelQuintero36
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1
yuki22434
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
JuanAlvarez413513
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
juanchogame18
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
aljitagallego
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
SofiaCollazos
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 

Último (20)

INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 

66 Php. Encuadre Y Redimensionado De Imagenes

  • 1. Encuadre y redimensionado de imágenes Lectura de imágenes externas Lectura de imágenes externas La visualización de imágenes no Uno de los problemas que puede presentarse es la forma de indicar dónde están la imagen a presenta ningún problema –lo visualizar. En Windows es necesario utilizar la "" mientras que para Linux hay que usar "/". hacemos habitualmente mediante etiquetas HTML– cuando se Al utilizar "" en Windows puede plantearse el problema de que vaya precedida por algún encuentran en el espacio del caracter que pueda tener una significación especial como por ejemplo n. Una solución para servidor, bien sea propio o ajeno. evitar esos eventuales problemas es escribir "" como separador de niveles de directorio. De esta forma el primer "" indica que lo que le precede ha de interpretarse sin ninguna El problema puede surgir cuando significación especial. tratemos de almacenar esas imágenes fuera del root del servidor (una forma de impedir la <? accesibilidad desde otras webs) y # indicar la ruta de la imagen eso puede conseguirse mediante $original="C:ApachehtdocscursoPHPimagescaballos.jpg"; las funciones que veremos en este capítulo. # extraer el tipo de imagen según su la extension del fichero for($i=strlen($original)-1;$i>0;$i--){ El primer paso será establecer la if (substr($original,$i,1)=="."){ ruta y el nombre de la imagen. Al margen tienes comentados $tipo=substr($original,$i+1); algunos detalles al respecto. break; } El paso siguiente será extraer el } formato de la imagen. Lo hice # las diferentes opciones dependiendo del formato de la imagen leyendo la parte de la cadena switch($tipo){ comprendida entre el último punto case "jpg": (.) y el final de la cadena que Header("Content-type:image/jpeg"); contiene el nombre de la imagen. $nueva=imagecreatefromjpeg($original); Mediante el switch elijo las imagejpeg($nueva); instrucciones para cada tipo de break; imagen que son similares pero con matices según del formato. case "png": Header("Content-type:image/png"); La visualización de la imagen $nueva=imagecreatefrompng($original); contiene tres instrucciones: imagepng($nueva); Header, imagecreatefrom e break; imageXXX. En Header hay que incluir un case "gif": Content - type acorde con el tipo Header("Content-type:image/gif"); de imagen. Puede ser, entre otros $nueva=imagecreatefromgif($original); valores: image/jpeg, image/ imagegif($nueva); png ó image/gif según la imagen break; tenga formato: jpg, png ó gif. } Con idéntico criterio, la función ImageDestroy(); que crea la imagen ha de ser una ?> de estas: $f=imagecreatefromjpeg($i) Ver ejemplo .jpg Ver ejemplo .png Ver ejemplo .gif ó $f=imagecreatefrompng($i) ó ¡Cuidado! $f=imagecreatefromgif($i) Observa que en las imágenes en formato png se visualizan con deficiencias en los bordes de las siendo $i la variable que recoge el áreas transparentes. nombre y el path de la imagen original y $f la variable que Con el método que vemos a continuación ese problema se reduce considerablemente. contiene el resultado de la ejecución de esta función. La función image (la que permite visualizar la nueva imagen) Lectura y redimensionado de imágenes externas también puede tener una de las tres variantes que ya conocemos de ejemplos anteriores. Pueden ser: <? imagejpeg($f), imagepng($f) ó # indicar la ruta de la imagen imagegif($f), donde $f es la variable que recoge el resultado de $original="C:ApachehtdocscursoPHPimagescaballos.jpg"; la función anterior. for($i=strlen($original)-1;$i>0;$i--){ if (substr($original,$i,1)=="."){ $tipo=substr($original,$i+1); Redimensionado de break; imágenes externas } } Tampoco parece ninguna utilidad. # dimesiones del original ¿Verdad? A fin de cuentas con $tamano=getimagesize($original); etiquetas HTML podemos asignar $orig_Ancho = $tamano[0]; el ancho y el alto de una imagen. $orig_Alto =$tamano[1]; Pero... ya verás como no es tan # factores de ampliación, distintos para provocar una distorsión trivial esta opción. # en la imagen resultante El proceso es el siguiente: $ampliacion_X=2; $ampliacion_Y=1.5; 1º.- Determinamos cuales son las # dimesiones de la imagen resultante. Vamos a dejarla a sangre dimensiones de la imagen externa # (sin márgenes en blanco) y vamos a reproducir el original que vamos a utilizar. Para ello, # sin reencuadrar así que las esquinas superiores izquierdas de usaremos de la función: # ambas imágenes estarán en 0,0. $dim=getimagesize($r) $resultado_Ancho=$orig_Ancho*$ampliacion_X; $resultado_Alto= $orig_Alto*$ampliacion_Y; donde $r es la variable que #creamos una imagen a partir de la original. Debemos elegir
  • 2. contiene el path y nombre del #la funcion adecuada al tipo de imagen original fichero que contiene la imagen y switch($tipo){ $dim es un array escalar que case "jpg": contiene las dimensiones de la $importada=imagecreatefromjpeg($original); imagen analizada. break; El elemento del array $dim[0] case "png": contiene el ancho y $dim[1] el $importada=imagecreatefrompng($original); alto, ambos expresados en pixels. break; case "gif": ¡Cuidado...! $importada=imagecreatefromgif($original); Esta función solo funciona cuando break; se trata de imágenes externas. Para determinar las dimensiones } de imágenes generadas por PHP # insertamos la cabecera de la nueva imagen tendrás que utilizar otra distinta. Header("Content-type:image/jpeg"); De nada ;-) #creamos una imagen nueva en color verdadero $im_base=imagecreatetruecolor($resultado_Ancho,$resultado_Alto); 2º.- Creamos una copia de la #aplicamos un color de fondo a la nueva imagen imagen original por medio de la #para poder visualizar que incluye la transparencia del png o del función imagecreate adecuada al gif tipo de imagen que deseamos if($tipo=="png" OR $tipo=="gif"){ importar. Es exactamente lo que hemos visto en el párrafo anterior. $fondo=imagecolorAllocate($im_base,255,255,200); imagefill($im_base,0,0,$fondo); 3º.- Creamos una nueva imagen } -podemos trabajar con varias #superponemos la imagen importada sobre la que acabamos de crear imágenes, en eso no hay imagecopyresampled($im_base,$importada,0,0,0,0, problema– mediante la función: $resultado_Ancho, $resultado_Alto, $orig_Ancho,$orig_Alto); $d=imagecreatetruecolor(x,y) # visualizamos la imagen resultante dónde $d es el identificador de la imagejpeg($im_base); imagen, y x e y son las ImageDestroy(); dimensiones de esta nueva imagen. ?> Dado que esta imagen va a ser el soporte –una imagen en color Ver ejemplo .jpg Ver ejemplo .png Ver ejemplo .gif verdadero (de ahí lo de truecolor) con fondo negro, algo muy similar al papel fotográfico que se usa en Observa que –tanto en el ejemplo anterior como en el siguiente– solo hemos utilizado la los laboratorios– sobre el que se extensión de la imagen original para elegir la función imagecreatefrom.... En el Header hemos va a impresionar esa especie de puesto image/jpeg y, como es obvio, hemos utilizado la función asociada a este formato negativo que es la imagen original es necesario que sus dimensiones (imagejpeg). Si sustituimos ambos valores por los correspondientes a otro formato (gif, png) sean las deseadas para la imagen obtendríamos resultados similares. resultante. 4º.-Ahora toca positivar la nueva foto. Para hacerlo disponemos de Recortar imágenes externas la función imagecopyresampled() que debe incluir –dentro del <? paréntesis– un montón de parámetros que son (por este # obtener la imagen orden): $original="C:ApachehtdocscursoPHPimagesaviones4.jpg"; for($i=strlen($original)-1;$i>0;$i--){ $d que es el identificador de la if (substr($original,$i,1)=="."){ imagen destino, es decir el papel $tipo=substr($original,$i+1); fotográfico que hemos creado en el break; paso anterior. } $f que es el identificador de la } imagen original (negativo) # tamaño del original obtenido en el punto 2º. $tamano=getimagesize($original); $orig_Ancho = $tamano[0]; Xd e Yd son las coordenadas de un $orig_Alto =$tamano[1]; punto situado en la esquina # estableceremos un margen en blanco alrededor de la imagen de 5 pixels superior izquierda del papel a # igual por los cuatro lados partir del que queremos que se $margen=10; impresione la fotografía. Si # establecemos rocortes para reencuadrar la imagen queremos una foto a sangre $recorte_izq=50; pondremos 0,0 y, si quieres dejar $recorte_sup=80; márgenes en blanco, habrá que $recorte_der=40; poner los anchos de esos márgenes (izquierdo y superior) $recorte_inf=60; respectivamente. # calculamos las dimensiones para utilizar como parámetros # en la funcion imagecopyresampled Xf e Yf nos servirán para # ancho y alto original recortado reencuadrar la foto original $Ancho_recortado=$orig_Ancho-$recorte_izq-$recorte_der; recortando por la izquierda y por $Alto_recortado=$orig_Alto-$recorte_sup-$recorte_inf; arriba, respectivamente, los # factores de ampliación en este caso iguales anchos que se indiquen aquí en # sin distorsión de imagen pixels. $ampliacion_X=1; Dx e Dy indican el ancho y el alto $ampliacion_Y=1; # dimensiones del soporte (por este orden) que va a tener la mancha de imagen en el positivo. $papel_Ancho=$Ancho_recortado*$ampliacion_X+ 2*$margen; Ten en cuenta que no puedes $papel_Alto=$Alto_recortado*$ampliacion_Y+2*$margen; salirte del papel así que esos # dimensiones de la mancha de imagen al positivar valores sumados con los márgenes # hay que quitar los márgenes (izquierdo y superior) no podrán $resultado_Ancho=$papel_Ancho -2*$margen; ser mayores que las dimensiones $resultado_Alto=$papel_Alto -2*$margen; que has elegido para el papel switch($tipo){ fotográfico en el punto 2º. case "jpg": $importada=imagecreatefromjpeg($original); Fx e Fy indican el ancho y el alto break; de la porción del original que case "png": tratamos de reproducir. Sumados con Xf e Yf no pueden exceder el $importada=imagecreatefrompng($original); break; tamaño del negativo. case "gif":
  • 3. Con estos parámetros la función ya $importada=imagecreatefromgif($original); se encarga de redimensionar la break; imagen (incluso distorsionarla si } no hay proporcionalidad entre los Header("Content-type:image/jpeg"); anchos y altos del original y del soporte. $im_base=imagecreatetruecolor($papel_Ancho,$papel_Alto); $fondo=imagecolorAllocate($im_base,255,255,200); imagefill($im_base,0,0,$fondo); imagecopyresampled($im_base,$importada,$margen,$margen, $recorte_izq,$recorte_sup, $resultado_Ancho,$resultado_Alto, $Ancho_recortado,$Alto_recortado); imagejpeg($im_base); ImageDestroy(); ?> Ver imágenes original y resultante Anterior Indice Siguiente