1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-26 08:22:08 +01:00
Files
archived-doc-es/reference/image/examples.xml
Pedro Antonio Gil Rodríguez fab9e21041 Actualización a la última versión
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@329958 c90b9560-bf6c-de11-be94-00142212c4b1
2013-03-30 11:25:47 +00:00

153 lines
5.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 87be62964da7a1e0c9a0e71f45f8ecc6f7f2b56f Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: seros -->
<chapter xml:id="image.examples" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.examples;
<section xml:id="image.examples-png">
<title>Creación de un PNG con PHP</title>
<para>
<example>
<title>Creación de un PNG con PHP</title>
<programlisting role="php">
<![CDATA[
<?php
header("Content-type: image/png");
$cadena = $_GET['texto'];
$im = imagecreatefrompng("images/boton1.png");
$naranja = imagecolorallocate($im, 220, 210, 60);
$px = (imagesx($im) - 7.5 * strlen($cadena)) / 2;
imagestring($im, 3, $px, 9, $cadena, $naranja);
imagepng($im);
imagedestroy($im);
?>
]]>
</programlisting>
</example>
Este ejemplo sería llamado desde una página con una etiqueta como: <literal>&lt;img
src=&quot;button.php?texto=texto&quot;&gt;</literal>. El script <filename>boton.php</filename>
de arriba toma esta cadena de <literal>&quot;texto&quot;</literal> y la sobrepone en la
parte superior de una imagen, que en este caso es <literal>&quot;images/boton1.png&quot;</literal>,
e imprime la imagen resultante. Esta es una manera muy conveniente de
evitar tener que dibujar nuevas imágenes de botones cada vez que se quiera
cambiar el texto de un botón. Con este método las imágenes de botones
se generan dinámicamente.
</para>
</section>
<section xml:id="image.examples-watermark">
<title>Añadir marcas de agua a imágenes usando canales alfa</title>
<para>
<example>
<title>Añadir marcas de agua a imágenes usando canales alfa</title>
<programlisting role="php">
<![CDATA[
<?php
// Cargar la estampa y la foto para aplicarle la marca de agua
$estampa = imagecreatefrompng('estampa.png');
$im = imagecreatefromjpeg('foto.jpeg');
// Establecer los márgenes para la estampa y obtener el alto/ancho de la imagen de la estampa
$margen_dcho = 10;
$margen_inf = 10;
$sx = imagesx($estampa);
$sy = imagesy($estampa);
// Copiar la imagen de la estampa sobre nuestra foto usando los índices de márgen y el
// ancho de la foto para calcular la posición de la estampa.
imagecopy($im, $estampa, imagesx($im) - $sx - $margen_dcho, imagesy($im) - $sy - $margen_inf, 0, 0, imagesx($estampa), imagesy($estampa));
// Imprimir y liberar memoria
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
]]>
</programlisting>
<mediaobject>
<alt>Añadir marcas de agua a imágenes usando canales alfa</alt>
<imageobject>
<imagedata fileref="en/reference/image/figures/watermarks.png" />
</imageobject>
</mediaobject>
</example>
Este ejemplo es una manera común de añadir marcas de agua y estampas a fotos y
poner el copyright a imágenes. Observe que la presencia de un canal alfa en la
imagen de la estampa como en el texto tiene anti-aliasing. Esto se conserva durante la copia.
</para>
</section>
<section xml:id="image.examples.merged-watermark">
<title>Usar <function>imagecopymerge</function> para crear una marca de agua translúcida</title>
<para>
<example>
<title>Usar <function>imagecopymerge</function> para crear una marca de agua translúcida</title>
<programlisting role="php">
<![CDATA[
<?php
// Cargar la estampa y la foto para aplicarle la marca de agua
$im = imagecreatefromjpeg('foto.jpeg');
// Primero crearemos nuestra imagen de la estampa manualmente desde GD
$estampa = imagecreatetruecolor(100, 70);
imagefilledrectangle($estampa, 0, 0, 99, 69, 0x0000FF);
imagefilledrectangle($estampa, 9, 9, 90, 60, 0xFFFFFF);
$im = imagecreatefromjpeg('foto.jpeg');
imagestring($estampa, 5, 20, 20, 'libGD', 0x0000FF);
imagestring($estampa, 3, 20, 40, '(c) 2007-9', 0x0000FF);
// Establecer los márgenes para la estampa y obtener el alto/ancho de la imagen de la estampa
$margen_dcho = 10;
$margen_inf = 10;
$sx = imagesx($estampa);
$sy = imagesy($estampa);
// Fusionar la estampa con nuestra foto con una opacidad del 50%
imagecopymerge($im, $estampa, imagesx($im) - $sx - $margen_dcho, imagesy($im) - $sy - $margen_inf, 0, 0, imagesx($estampa), imagesy($estampa), 50);
// Guardar la imagen en un archivo y liberar memoria
imagepng($im, 'foto_estampa.png');
imagedestroy($im);
?>
]]>
</programlisting>
<mediaobject>
<alt>Usar imagecopymerge() para crear una marca de agua translúcida</alt>
<imageobject>
<imagedata fileref="en/reference/image/figures/watermark-merged.png" />
</imageobject>
</mediaobject>
</example>
Este ejemplo usa <function>imagecopymerge</function> para fusionar la estampa
con la imagen original. Al usar esto, se puede establecer la opacidad de la estampa;
en nuestro ejemplo la establecimos al 50% de opacidad. En la práctica, esto sería útil
para la protección del copyright como marcas de agua semitransparentes que son difíciles
de eliminar, pero que aún permiten ver la imagen.
</para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->