1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
|
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.25 $ -->
<!-- splitted from ./en/functions/image.xml, last change in rev 1.36 -->
<refentry id="function.getimagesize">
<refnamediv>
<refname>getimagesize</refname>
<refpurpose>Get the size of an image</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<methodsynopsis>
<type>array</type><methodname>getimagesize</methodname>
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter role="reference">imageinfo</parameter></methodparam>
</methodsynopsis>
<para>
The <function>getimagesize</function> function will determine the
size of any <acronym>GIF</acronym>, <acronym>JPG</acronym>,
<acronym>PNG</acronym>, <acronym>SWF</acronym>,
<acronym>SWC</acronym>, <acronym>PSD</acronym>,
<acronym>TIFF</acronym>, <acronym>BMP</acronym>,
<acronym>IFF</acronym>, <acronym>JP2</acronym>,
<acronym>JPX</acronym>, <acronym>JB2</acronym>,
<acronym>JPC</acronym>, <acronym>XBM</acronym>, or
<acronym>WBMP</acronym> image file and return the dimensions along with
the file type and a height/width text string to be used inside a normal
<acronym>HTML</acronym> <literal>IMG</literal> tag.
</para>
<para>
If accessing the <parameter>filename</parameter> image is impossible,
or if it isn't a valid picture, <function>getimagesize</function>
will return &false; and generate an error of level
<varname>E_WARNING</varname>.
</para>
<note>
<para>
Support for <acronym>JPC</acronym>, <acronym>JP2</acronym>,
<acronym>JPX</acronym>, <acronym>JB2</acronym>,
<acronym>XBM</acronym>, and <acronym>WBMP</acronym> became available in
PHP 4.3.2. Support for <acronym>SWC</acronym> exists as of PHP 4.3.0
and <acronym>TIFF</acronym> support was added in PHP 4.2.0
</para>
</note>
<note>
<simpara>
JPEG 2000 support was added in PHP 4.3.2. Note that JPC and JP2 are
capable of having components with different bit depths. In this case,
the value for "bits" is the highest bit depth encountered. Also, JP2
files may contain multiple JPEG 2000 codestreams. In this case,
<function>getimagesize</function> returns the values for the first
codestream it encounters in the root of the file.
</simpara>
</note>
<note>
<simpara>
The <function>getimagesize</function> function does not require the GD
image library.
</simpara>
</note>
<para>
Returns an array with 4 elements. Index 0 contains the width of
the image in pixels. Index 1 contains the height. Index 2 is a
flag indicating the type of the image: 1 = GIF, 2 = JPG, 3 =
PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order),
8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 =
JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM. These values correspond to
the IMAGETYPE constants that were added in PHP 4.3.0. Index 3 is a text
string with the correct height="yyy" width="xxx" string that can be used
directly in an IMG tag.
<example>
<title>getimagesize (file)</title>
<programlisting role="php">
<![CDATA[
<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />";
?>
]]>
</programlisting>
</example>
</para>
<para>
URL support was added in PHP 4.0.5
<example>
<title>getimagesize (URL)</title>
<programlisting role="php">
<![CDATA[
<?php
$size = getimagesize("http://www.example.com/gifs/logo.gif");
// if the file name has space in it, encode it properly
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");
?>
]]>
</programlisting>
</example>
</para>
<para>
With <acronym>JPG</acronym> images, two extra indexes are returned:
<literal>channels</literal> and <literal>bits</literal>.
<literal>channels</literal> will be 3 for RGB pictures and 4 for CMYK
pictures. <literal>bits</literal> is the number of bits for each color.
</para>
<para>
Beginning with PHP 4.3.0, <literal>bits</literal> and
<literal>channels</literal> are present for other image types, too.
However, the presence of these values can be a bit confusing. As an
example, <acronym>GIF</acronym> always uses 3 channels per pixel, but the
number of bits per pixel cannot be calculated for an animated
<acronym>GIF</acronym> with a global color table.
</para>
<para>
Some formats may contain no image or may contain multiple images. In these
cases, <function>getimagesize</function> might not be able to properly
determine the image size. <function>getimagesize</function> will return
zero for width and height in these cases.
</para>
<para>
Beginning with PHP 4.3.0, <function>getimagesize</function> also returns an
additional parameter, <literal>mime</literal>, that corresponds with the
MIME type of the image. This information can be used to deliver images
with correct HTTP Content-type headers:
<example>
<title>getimagesize() and MIME types</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>
The optional <parameter>imageinfo</parameter> parameter allows
you to extract some extended information from the image
file. Currently, this will return the different
<acronym>JPG</acronym> APP markers as an associative array. Some
programs use these APP markers to embed text information in
images. A very common one is to embed <acronym>IPTC</acronym>
<ulink url="&url.iptc;">&url.iptc;</ulink> information in the
APP13 marker. You can use the <function>iptcparse</function>
function to parse the binary APP13 marker into something
readable.
</para>
<para>
<example>
<title>getimagesize() returning 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>
<para>
See also <function>image_type_to_mime_type</function>,
<function>exif_imagetype</function>,
<function>exif_read_data</function> and
<function>exif_thumbnail</function>.
</para>
</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:"../../../../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
-->
|