PHP / GD - bulma Görüntü Kaynak Türü

3 Cevap php

Having only a valid GD image resource is it possible to find out the type of the original image?

Örneğin:

$image = ImageCreateFromPNG('http://sstatic.net/so/img/logo.png');

Can I get the original image type (PNG) having only the $image variable available?

3 Cevap

Ben hayır, sanmıyorum. O ImageCreate() işlevi tarafından işlendikten sonra $ image GD'nin iç görüntü formatında.

Ben $ image değişkeni yapılabilir emin değilim, ama mimeType almak için, genellikle dört herhangi birini kullanabilirsiniz:

// with GD
$img = getimagesize($path);
return $img['mime'];

// with FileInfo
$fi = new finfo(FILEINFO_MIME);
return $fi->file($path);

// with Exif (returns image constant value)
return exif_imagetype($path)

// deprecated
return mime_content_type($path);

Soru açıklamasından Ben uzak bir dosya kullanmak istiyorsanız almak, böylece bu işi yapmak için böyle bir şey yapabilirsiniz:

$tmpfname = tempnam("/tmp", "IMG_"); // use any path writable for you
$imageCopy = file_get_contents('http://www.example.com/image.png');
file_put_contents($tmpfname, $imageCopy);
$mimetype = // call any of the above functions on $tmpfname;
unlink($tmpfname);

Note: if the MimeType function you will use supports remote files, use it directly, instead of creating a copy of the file first

Sadece kullanmak için hangi imagecreatefrom function belirlemek mimeType gerekiyorsa, neden ilk bir dize olarak dosya yüklemek değil ve sonra GD, örneğin, karar verelim

// returns GD image resource of false
$imageString = file_get_contents('http://www.example.com/image.png');
if($imageString !== FALSE) {
    $image = imagecreatefromstring($imageString);
}

Sadece png yükleyici ile kaynağı yüklenirken deneyebilirsiniz, ve bir png görüntü değilse, YANLIŞ dönen, başarısız olur. Sonra sadece sahip olmak istediğiniz geçerli biçimleri her biri ile tekrar ve tüm başarısız olursa, o zaman bir hata görüntüler.