manejo - PHP/GD-Búsqueda de tipo de recurso de imagen
php gd install (3)
Tener solo un recurso de imagen GD válido ¿es posible encontrar el tipo de imagen original?
Por ejemplo:
$image = ImageCreateFromPNG(''http://sstatic.net/so/img/logo.png'');
¿Puedo obtener el tipo de imagen original (PNG) teniendo solo la variable $ image disponible?
No lo creo, no. $ imagen está en formato de imagen interna de GD después de que ha sido procesada por la función ImageCreate()
.
Simplemente intente cargar el recurso con el cargador png, y si no es una imagen png, fallará, devolviendo FALSE. Luego simplemente repita con cada uno de los formatos válidos que desea tener, y si todos fallan, muestre un error.
No estoy seguro si se puede hacer desde la variable $ image, pero para obtener MimeType, generalmente puede usar cualquiera de los cuatro:
// 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);
A partir de la descripción de su pregunta, considero que desea utilizar un archivo remoto, por lo que podría hacer algo como esto para que esto funcione:
$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);
Nota: si la función MimeType que usará es compatible con archivos remotos, utilícela directamente, en lugar de crear una copia del archivo primero
Si necesita MimeType solo para determinar qué función de creación de imágenes creará, ¿por qué no carga primero el archivo como una cadena y luego deja que GD decida, por ejemplo?
// returns GD image resource of false
$imageString = file_get_contents(''http://www.example.com/image.png'');
if($imageString !== FALSE) {
$image = imagecreatefromstring($imageString);
}