Files
doc-fr/reference/image/functions/getimagesize.xml
2021-05-14 13:22:07 +01:00

293 lines
9.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 0c9c2dd669fe9395eaa73d487fbd160f9057429a Maintainer: yannick Status: ready -->
<!-- Reviewed: yes -->
<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://docbook.org/ns/docbook" xml:id="function.getimagesize">
<refnamediv>
<refname>getimagesize</refname>
<refpurpose>Retourne la taille d'une image</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>array</type><type>false</type></type><methodname>getimagesize</methodname>
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter role="reference">image_info</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
<function>getimagesize</function> détermine la taille de toute image supportée
fournie et en retourne les dimensions, le type d'image et une chaîne type
<literal>height/width</literal> à placer dans une balise
<acronym>HTML</acronym> <tag>IMG</tag> normale
et le type de contenu <acronym>HTTP</acronym> correspondant.
</para>
<para>
<function>getimagesize</function> peut également retourner plus d'informations
dans le paramètre <parameter>image_info</parameter>.
</para>
<caution>
<para>
Cette fonction s'attend à ce que <parameter>filename</parameter> soit un
fichier image valide. Si un fichier non image est fourni, il peut être
détecté de manière incorrecte en tant qu'image et la fonction retournera
avec succès, mais le tableau peut contenir des valeurs absurdes.
</para>
<para>
N'utilisez pas <function>getimagesize</function> pour vérifier qu'un
fichier donné est une image valide. Utilisez à la place une solution prévue
pour cela telle que l'extension <link linkend="book.fileinfo">FileInfo</link>.
</para>
</caution>
<note>
<simpara>
Notez que JPC et JP2 sont capables d'avoir des composants avec une
profondeur de bit différente. Dans ce cas, la valeur de "bits" est la plus
grande profondeur de bit rencontrée. De même, les fichiers JP2 disposent
du support de <literal>multiple JPEG 2000 codestreams</literal>.
Dans ce cas, <function>getimagesize</function> retourne les valeurs
pour le premier codestream rencontré à la racine du fichier.
</simpara>
</note>
<note>
<simpara>
Les informations sur les icônes sont récupérées depuis l'icône possédant
le plus haut débit.
</simpara>
</note>
<note>
<simpara>
Les images GIF consistant d'un ou plusieurs cadres, où chaque cadre peut occuper
uniquement une partie de l'image. La taille de l'image qui est rapportée par
<function>getimagesize</function> est la taille globale (lu depuis le descripteur logique de l'écran).
</simpara>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>filename</parameter></term>
<listitem>
<para>
Ce paramètre spécifie le fichier dont vous voulez récupérer
les informations. Il peut être un fichier local ou (suivant
la configuration), un fichier distant en utilisant un des
<link linkend="wrappers">flux supportés</link>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>image_info</parameter></term>
<listitem>
<para>
Ce paramètre optionnel permet d'extraire des informations
supplémentaires du fichier image. Actuellement, cette option
va retourner différents marqueurs <acronym>JPG</acronym>
APP dans un tableau associatif. Certains programmes utilisent
ces marqueur APP pour préciser les informations dans les balises
HTML. Un marqueur commun est le marqueur APP13, décrit
à <link xlink:href="&url.iptc;">IPTC</link>. Vous pouvez utiliser
la fonction <function>iptcparse</function> pour analyser ce marqueur,
et obtenir des informations intelligibles.
</para>
<note>
<para>
<parameter>image_info</parameter> supporte uniquement
les fichiers <acronym>JFIF</acronym>.
</para>
</note>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retourne un tableau contenant jusqu'à 7 éléments. Tous les types
d'images n'incluent pas les éléments <literal>channels</literal> et
<literal>bits</literal>.
</para>
<para>
L'index 0 contient la largeur. L'index 1 contient la hauteur.
</para>
<note>
<para>
Certains formats peuvent ne contenir aucune image, ou bien plusieurs.
Dans ces cas-là, <function>getimagesize</function> peut ne pas être capable
de déterminer correctement la taille de l'image.
<function>getimagesize</function> retourne alors zéro comme taille de
hauteur et largeur.
</para>
</note>
<para>
L'index 2 est une constante parmi <link linkend="image.constants">IMAGETYPE_XXX constants</link>,
indiquant le type de l'image.
</para>
<para>
L'index 3 contient la chaîne à placer dans les balises
<acronym>IMG</acronym> : <literal>height="xxx" width="yyy"</literal>.
</para>
<para>
<literal>mime</literal> correspond au type MIME d'une image.
Cette information peut être utilisée pour envoyer l'en-tête
HTTP <literal>Content-type</literal> correct :
<example>
<title><function>getimagesize</function> et types MIME</title>
<programlisting role="php">
<![CDATA[
<?php
$size = getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size && $fp) {
header("Content-type: {$size['mime']}");
fpassthru($fp);
exit;
} else {
// error
}
?>
]]>
</programlisting>
</example>
</para>
<para>
<literal>channels</literal> sera 3 pour des images RGB et 4 pour
des images CMYK.
</para>
<para>
<literal>bits</literal> est le nombre d'octets pour chaque couleur.
</para>
<para>
Cependant, la présence des valeurs de <literal>channels</literal> et
de <literal>bits</literal> peut mener à la confusion. Par
exemple, une image <acronym>GIF</acronym> utilise toujours trois canaux par
pixel, mais le nombre de bits par pixel ne peut être calculé dans le cas
d'une image animée <acronym>GIF</acronym> ayant une table de couleur
globale.
</para>
<para>
Si une erreur survient, &false; est retourné.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Si l'accès à <parameter>filename</parameter> est impossible,
<function>getimagesize</function> générera une erreur de niveau
<constant>E_WARNING</constant>. Si une erreur survient lors de la lecture,
<function>getimagesize</function> générera une erreur de niveau
<constant>E_NOTICE</constant>.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>7.1.0</entry>
<entry>
Ajout du support de WebP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple avec <function>getimagesize</function></title>
<programlisting role="php">
<![CDATA[
<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"Exemple avec getimagesize()\" />";
?>
]]>
</programlisting>
</example>
<example>
<title><function>getimagesize</function> avec une URL</title>
<programlisting role="php">
<![CDATA[
<?php
$size = getimagesize("http://www.example.com/gifs/logo.gif");
// Si le nom du fichier comporte des espaces, encodez-le !
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");
?>
]]>
</programlisting>
</example>
<example>
<title><function>getimagesize</function> qui retourne IPTC</title>
<programlisting role="php">
<![CDATA[
<?php
$size = getimagesize("testimg.jpg", $info);
if (isset($info["APP13"])) {
$iptc = iptcparse($info["APP13"]);
var_dump($iptc);
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&note.gd.notrequired;
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>image_type_to_mime_type</function></member>
<member><function>exif_imagetype</function></member>
<member><function>exif_read_data</function></member>
<member><function>exif_thumbnail</function></member>
<member><function>imagesx</function></member>
<member><function>imagesy</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
-->