Files
doc-fr/reference/image/functions/imagecopyresized.xml
2021-05-31 18:42:02 +01:00

259 lines
8.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 593ea510e853ff034e03f78a4be0daa41661c9d4 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.imagecopyresized" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>imagecopyresized</refname>
<refpurpose>Copie et redimensionne une partie d'une image</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>imagecopyresized</methodname>
<methodparam><type>GdImage</type><parameter>dst_image</parameter></methodparam>
<methodparam><type>GdImage</type><parameter>src_image</parameter></methodparam>
<methodparam><type>int</type><parameter>dst_x</parameter></methodparam>
<methodparam><type>int</type><parameter>dst_y</parameter></methodparam>
<methodparam><type>int</type><parameter>src_x</parameter></methodparam>
<methodparam><type>int</type><parameter>src_y</parameter></methodparam>
<methodparam><type>int</type><parameter>dst_width</parameter></methodparam>
<methodparam><type>int</type><parameter>dst_height</parameter></methodparam>
<methodparam><type>int</type><parameter>src_width</parameter></methodparam>
<methodparam><type>int</type><parameter>src_height</parameter></methodparam>
</methodsynopsis>
<para>
<function>imagecopyresized</function> copie une partie rectangulaire d'une image
dans une autre image de destination. <parameter>dst_image</parameter> est l'image
de destination, <parameter>src_image</parameter> est l'image source.
</para>
<para>
En d'autres termes, <function>imagecopyresized</function> prendra une
forme rectangulaire <parameter>src_image</parameter> d'une largeur de
<parameter>src_width</parameter> et d'une hauteur <parameter>src_height</parameter>
à la position (<parameter>src_x</parameter>,<parameter>src_y</parameter>)
et le placera dans une zone rectangulaire <parameter>dst_image</parameter>
d'une largeur de <parameter>dst_width</parameter> et d'une hauteur de
<parameter>dst_height</parameter> à la position
(<parameter>dst_x</parameter>,<parameter>dst_y</parameter>).
</para>
<para>
Si les dimensions de la source et de la destination ne sont pas égales, un
étirement adéquat est effectué pour faire correspondre
les deux. Les coordonnées fournies sont définies par rapport
au coin supérieur gauche. Cette fonction peut être
utilisée pour recopier des régions à l'intérieur
d'une même image (si <parameter>dst_image</parameter> et
<parameter>src_image</parameter> sont identiques), mais si les
régions se chevauchent, le résultat risque d'être
incohérent.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>dst_image</parameter></term>
<listitem>
<para>&gd.image.destination;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>src_image</parameter></term>
<listitem>
<para>&gd.image.source;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>dst_x</parameter></term>
<listitem>
<para>
X : coordonnée du point de destination.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>dst_y</parameter></term>
<listitem>
<para>
Y : coordonnée du point de destination.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>src_x</parameter></term>
<listitem>
<para>
X : coordonnée du point source.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>src_y</parameter></term>
<listitem>
<para>
Y : coordonnée du point source.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>dst_width</parameter></term>
<listitem>
<para>
Largeur de la destination.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>dst_height</parameter></term>
<listitem>
<para>
Hauteur de la destination.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>src_width</parameter></term>
<listitem>
<para>&gd.source.width;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>src_height</parameter></term>
<listitem>
<para>&gd.source.height;</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>dst_image</parameter> et <parameter>src_image</parameter>
attendent désormais des instances de <classname>GdImage</classname> ;
auparavant, des <type>resource</type>s étaient attendues.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Redimensionnement d'une image</title>
<para>
Cet exemple affichera l'image redimensionnée à la moitié de sa taille d'origine.
</para>
<programlisting role="php">
<![CDATA[
<?php
// Fichier et nouvelle taille
$filename = 'test.jpg';
$percent = 0.5;
// Content type
header('Content-Type: image/jpeg');
// Calcul des nouvelles dimensions
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// Chargement
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// Redimensionnement
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Affichage
imagejpeg($thumb);
?>
]]>
</programlisting>
&example.outputs.similar;
<mediaobject>
<alt>Affichage de l'exemple : imagecopyresized()</alt>
<imageobject>
<imagedata fileref="en/reference/image/figures/imagecopyresized.jpg"/>
</imageobject>
</mediaobject>
<para>
L'image affiché aura une taille de moitié moins que l'image d'origine, mais une
meilleur qualité peut être obtenue en utilisant la fonction
<function>imagecopyresampled</function>.
</para>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Il y a un problème dû aux limitations de la taille de la palette
(255 + 1 couleurs différentes). Filtrer ou rééchantillonner une image
demande plus de 255 couleurs, une approximation est alors utilisée pour
calculer le nouveau nombre de couleurs. Avec une palette, si une nouvelle
couleur ne peut être allouée, la couleur la plus proche (en théorie)
est utilisée ; ce n'est pas toujours celle qui est la plus proche visuellement.
Cela peut générer des problèmes étranges, comme des images blanches.
Pour éviter ce problème, passez en image TrueColor, comme celles
générée par la fonction <function>imagecreatetruecolor</function>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>imagecopyresampled</function></member>
<member><function>imagescale</function></member>
<member><function>imagecrop</function></member>
</simplelist>
</refsect1>
</refentry>
<!-- 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
-->