getimagesize

(PHP 4, PHP 5, PHP 7, PHP 8)

getimagesizeBir görüntünün boyutlarını döndürür

Açıklama

getimagesize(string$dosyaismi, array&$ekbilgi = null): array|false

getimagesize() işlevi dosya ismiyle belirtilen desteklenen görüntünün boyutlarını saptar ve görüntünün boyutlarından başka görüntü dosyası biçemini, HTMLIMG etiketinin öznitelikleri olarak yükseklik ve genişliği ve görüntüye ilişkin HTTP içerik türünü bir dizi içinde döndürür.

getimagesize() işlevi ayrıca, ekbilgi bağımsız değişkeninde bazı ek bilgiler döndürebilir.

Dikkat

Bu işlev belirtilen dosyaisminin geçerli bir görüntü dosyası olacağını varsayar. Bir görüntü dosyası belirtilmemişse bile, hatalı olarak bunu bir görüntü dosyası olarak algılar ve işlev başarıyla döner, fakat dizi anlamsız değerler içerebilir.

getimagesize() işlevi belirtilen dosyanın geçerli bir dosya olup olmadığını sınamak için kullanılmamalı, Fileinfo eklentisi gibi amaca yönelik bir çözüm kullanılmalıdır.

Bilginize: JPC ve JP2 farklı bit derinliğinde bileşenler içerebilirler. Bu durumda, "bits" değeri saptanan en büyük bit derinliğidir. Ayrıca JP2 dosyaları çok sayıda JPEG 2000 kod akımı içerebilir. Bu durumda, getimagesize() işlevi, dosyanın başlığında saptadığı ilk kod akımının değerleriyle döner.

Bilginize: Simge (icon) görüntüleri hakkında bilgi en yüksek bit derinliğine sahip simgeden elde edilir.

Bilginize: GIF görüntüleri her çerçevenin görüntünün yalnızca bir bölümünü içerdiği çok sayıda çerçeveden oluşabilir. getimagesize() tarafından bildirilen görüntünün boyutu toplam boyuttur (mantıksal ekran tanıtıcısından okunur).

Bağımsız Değişkenler

dosyaismi

Hakkında bilgi döndürülecek görüntüyü içeren dosyanın yolu. Burada bir yerel dosya belirtilebileceği gibi (yapılandırma izin veriyorsa) desteklenen akımlardan biri kullanılarak uzak bir dosya da belirtilebilir.

ekbilgi

İsteğe bağlı bu bağımsız değişken ile görüntü dosyası hakkında bazı ek bilgiler edinilebilir. Şimdilik, bir ilişkisel dizi olarak farklı JPG APP imleyicileri döndürülmektedir. Bazı programlar bu APP imleyicilerini görüntüye metin bilgisini gömmek için kullanırlar. En çok uygulananı APP13 imleyicisindeki » IPTC bilgisini gömmektir. İkil APP13 imleyicisini okunabilir hale dönüştürebilmek için iptcparse() işlevini kullanabilirsiniz.

Bilginize:

ekbilgi sadece JFIF dosyalarını destekler.

Dönen Değerler

En fazla 7 elemanlı bir dizi ile döner. Bazı görüntü türleri channels ve bits elemanlarını içermeyebilir.

0 ve 1 indisleri sırayla görüntünün genişliğini ve yüksekliğini içerir.

Bilginize:

Bazı biçemler hiç görüntü içermeyeceği gibi bazıları da birden fazla görüntü içerebilir. Bu gibi durumlarda, getimagesize() görüntü boyutlarını doğru olarak saptayamayabilir ve bu durumda boyutları 0 olarak döndürür.

2 indisinde görüntünün türünü belirtmek üzere IMAGETYPE_XXX sabitlerinden biri bulunur.

3 indisinde doğrudan IMG etiketinin öznitelikleri olarak kullanılabilecek şekilde, height="yyy" width="xxx" dizgesi bulunur.

mime indisinde görüntünün MIME türü bulunur. Bu dizge HTTP Content-type başlığında kullanılır:

Örnek 1 - getimagesize() ve MIME türleri

<?php
$boyutlar
= getimagesize($filename);
$dt = fopen($filename, "rb");
if (
$boyutlar && $dt) {
header("Content-type: {$boyutlar['mime']}");
fpassthru($dt);
exit;
} else {
// hata
}
?>

channels indisinde RGB görüntüler için 3, CMYK görüntüler için 4 değeri bulunur.

bits indisinde renk bit sayısı bulunur.

Bazı görüntü türleri için channels ve bits değerlerinin varlığı biraz kafa karıştırıcıdır. Örneğin, GIF daima piksel başına 3 kanal kullanır fakat genel bir renk tablosuna sahip canlandırmalı bir GIF için piksel başına bit sayısı hesaplanamaz.

Başarısızlık halinde false döner.

Hatalar/İstisnalar

dosyaismi görüntüsüne erişmek imkansızsa getimagesize()E_WARNING seviyesinde bir hata üretir. Okuma hatasında ise E_NOTICE seviyesinde bir hata üretir.

Sürüm Bilgisi

Sürüm: Açıklama
8.2.0 Artık görüntünün boyutları, bitleri ve AVIF görüntü kanalları dönüyor; evvelce boyutlar için 0x0 döndürülür, bitler ve kanallarla ilgili bir dönüş olmazdı.
7.1.0 WebP desteği eklendi

Örnekler

Örnek 2 - getimagesize() dosya örneği

<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo
"<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() örneği\" />";
?>

Örnek 3 - getimagesize (URL)

<?php
$size
= getimagesize("http://www.example.com/gifs/logo.gif");

// Dosya ismi boşluk karakteri içeriyorsa düzgün şekilde kodlamak gerekir
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");

?>

Örnek 4 - IPTC döndüren getimagesize() örneği

<?php
$size
= getimagesize("testimg.jpg", $info);
if (isset(
$info["APP13"])) {
$iptc = iptcparse($info["APP13"]);
var_dump($iptc);
}
?>

Notlar

Bilginize:

Bu işlev için GD görüntü kütüphanesi gerekli değildir.

Ayrıca Bakınız

  • image_type_to_mime_type() - getimagesize, exif_read_data, exif_thumbnail, exif_imagetype ile döndürülen resim türü ile ilgili MIME türünü döndürür
  • exif_imagetype() - Bir görüntünün türünü saptar
  • exif_read_data() - Bir görüntü dosyasından EXIF başlıklarını okur
  • exif_thumbnail() - Bir TIFF veya JPEG görüntüsünü içinde gömülü küçük örneği döndürür
  • imagesx() - Görüntünün genişliğini döndürür
  • imagesy() - Görüntünün yüksekliğini döndürür
To Top