1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-29 19:02:23 +02:00
Files
archived-doc-es/reference/image/examples.xml
Pedro Antonio Gil Rodríguez 8afddec146 Actualización
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@294552 c90b9560-bf6c-de11-be94-00142212c4b1
2010-02-05 00:56:12 +00:00

148 lines
5.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 294527 $ -->
<!-- EN-Revision: 1edf9dde67199ee8783032f657a12f066a787a9d Maintainer: seros Status: ready -->
<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">
<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, la cual es en este caso <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">
<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
$márgen_dcho = 10;
$márgen_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 - $márgen_dcho, imagesy($im) - $sy - $márgen_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">
<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
$márgen_dcho = 10;
$márgen_inf = 10;
$sx = imagesx($estampa);
$sy = imagesy($estampa);
// Fusionar la estampa con nuestra foto con una opacidad (transparencia) del 50%
imagecopymerge($im, $estampa, imagesx($im) - $sx - $márgen_dcho, imagesy($im) - $sy - $márgen_inf, 0, 0, imagesx($estampa), imagesy($estampa), 50);
// Guardar la imagen a 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 podemos establecer la opacidad de nuestra estampa -
en nuestro ejemplo la establecimos al 50% (otro término para transparencia).
En la práctica esto sería útil para la protección del copyright como marcas de agua
semi-transparentes que son difíciles de eliminar pero 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
-->