getimagesize
(PHP 4, PHP 5, PHP 7, PHP 8)
getimagesize — Get the size of an image
Опис
getimagesize() can also return some more information
in image_info
parameter.
Застереження
This function expects filename
to be a valid
image file. If a non-image file is supplied, it may be incorrectly
detected as an image and the function will return successfully, but
the array may contain nonsensical values.
Do not use getimagesize() to check that a given
file is a valid image. Use a purpose-built solution such as the
Fileinfo extension instead.
Зауваження:
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,
getimagesize() returns the values for the first
codestream it encounters in the root of the file.
Зауваження:
The information about icons are retrieved from the icon with the highest
bitrate.
Зауваження:
GIF images consist of one or more frames, where each frame may only occupy
part of the image. The size of the image which is reported by
getimagesize() is the overall size (read from the logical
screen descriptor).
Параметри
filename
-
This parameter specifies the file you wish to retrieve information
about. It can reference a local file or (configuration permitting) a
remote file using one of the supported streams.
image_info
-
This optional parameter allows you to extract some extended
information from the image file. Currently, this will return the
different JPG 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
» IPTC information in the APP13 marker.
You can use the iptcparse() function to parse the
binary APP13 marker into something readable.
Зауваження:
The image_info
only supports
JFIF files.
Значення, що повертаються
Returns an array with up to 7 elements. Not all image types will include
the channels
and bits
elements.
Index 0 and 1 contains respectively the width and the height of the image.
Зауваження:
Some formats may contain no image or may contain multiple images. In these
cases, getimagesize() might not be able to properly
determine the image size. getimagesize() will return
zero for width and height in these cases.
Зауваження:
getimagesize() is agnostic of any image metadata.
If e.g. the Exif Orientation
flag is set to a value which
rotates the image by 90 or 270 degress, index 0 and 1 are swapped,
i.e. the contain the height and width, respectively.
Index 2 is one of the IMAGETYPE_*
constants indicating
the type of the image.
Index 3 is a text string with the correct
height="yyy" width="xxx"
string that can be used
directly in an IMG tag.
mime
is the correspondant MIME type of the image.
This information can be used to deliver images with the correct HTTP
Content-type
header:
Приклад #1 getimagesize() and MIME types
<?php
$size = getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size && $fp) {
header("Content-type: {$size['mime']}");
fpassthru($fp);
exit;
} else {
// error
}
?>
channels
will be 3 for RGB pictures and 4 for CMYK
pictures.
bits
is the number of bits for each color.
For some image types, the presence of channels
and
bits
values can be a bit
confusing. As an example, GIF always uses 3 channels
per pixel, but the number of bits per pixel cannot be calculated for an
animated GIF with a global color table.
On failure, false
is returned.
Помилки/виключення
If accessing the filename
image is impossible
getimagesize() will generate an error of level
E_WARNING
. On read error,
getimagesize() will generate an error of level
E_NOTICE
.
Приклади
Приклад #2 getimagesize() example
<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />";
?>
Приклад #3 getimagesize (URL)
<?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");
?>
Приклад #4 getimagesize() returning IPTC
<?php
$size = getimagesize("testimg.jpg", $info);
if (isset($info["APP13"])) {
$iptc = iptcparse($info["APP13"]);
var_dump($iptc);
}
?>
Примітки
Зауваження:
Ця функція не потребує
бібліотеки зображень GD.