mirror of
https://github.com/php/doc-es.git
synced 2026-03-26 16:32:13 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@329958 c90b9560-bf6c-de11-be94-00142212c4b1
153 lines
5.4 KiB
XML
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><img
|
|
src="button.php?texto=texto"></literal>. El script <filename>boton.php</filename>
|
|
de arriba toma esta cadena de <literal>"texto"</literal> y la sobrepone en la
|
|
parte superior de una imagen, que en este caso es <literal>"images/boton1.png"</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
|
|
-->
|
|
|