¿Cómo lee PHP la información exif de las fotos para implementar el código?
Exif es un formato de archivo de imagen cuyo almacenamiento de datos es exactamente igual que el formato JPEG.
El formato Exif en realidad inserta información de la fotografía digital en el encabezado del formato JPEG, incluida la apertura, el obturador, el balance de blancos, ISO, la distancia focal, la fecha y la hora, la marca de la cámara, el modelo, el código de colores y la grabación. durante el disparo, diversas condiciones de disparo, como sonido, sistema de posicionamiento global (GPS) y miniaturas. En pocas palabras, Exif=JPEG+parámetros de disparo.
Por lo tanto, puedes ver fotografías con formato Exif utilizando cualquier software de visualización que pueda ver archivos JPEG, pero no todos los programas de gráficos pueden manejar información Exif.
Para códigos específicos, consulte lo siguiente.
<?
/**
*?La función de obtener información de la imagen
*?La función de obtener información de la imagen de forma integral
*? @acceso ? Público
*?@param? ¿Cadena? $img? Ruta de la imagen
*?@Return? ¿Organizar
*/
función? GetImageInfoVal($ImageInfo, $val_arr)? {
$InfoVal? =?"Desconocido"
foreach($val_arr?as?$nombre = & gt$val)? {
¿Y si? ($nombre==$ImageInfo)? {
$InfoVal? =?& amp$ val
Romper;
}
}
¿Regresar? ¿Función $InfoVal
}
? ObtenerImageInfo($img)? {
$imgtipo? =?Array(",?"GIF",?"JPG",?"PNG",?"Fondo Soberano",?"PSD",?"BMP",?"TIFF(Intel?Byte?Order)" ? "TIFF (¿Motorola? ¿Byte? Orden)",? "JP2",? "SWC",? "XBM"); ¿A la izquierda? ¿Lado? ¿A la izquierda? ¿A la derecha? , "¿Al lado?" ;
$ResolutionUnit=? array(",?"",?"inch""centímetro");
$YCbCrPositioning?=?array(",?"ese?centro?de?pixel?array",?"ese? Punto de referencia?punto");
$ExposureProgram? =?Array(" undefinido ", "Manual"? "Programa estándar" "Requisito previo de apertura"? "Requisito previo del obturador" ¿"Prioridad de profundidad de campo"? "Modo deportivo"? "Modo retrato" "Modo paisaje"); >
$MeteringMode_arr? =?Array(
" 0 " =>;?"Desconocido",
" 1"=>?"Promedio",
" 2" = >;? "Medición promedio de clave central",
" 3" = >;? "Verificación puntual",
" 4" = >;? >
" 5 " = > ? " evaluación " ,
" 6 " = > ? " 255 " ? = & gt "
);
$Lightsource_arr? =?Array(
" 0 " =>;?"Desconocido",
" 1"=>?"Luz del día",
" 2" = >;? "Fluorescente",
" 3" =>;? "Tungsteno",
"10"?= >? >
"17"?= & gt ? "Lámpara de pie a",
"18"?= & gt? "Lámpara de pie b",
"19" =>?"Lámpara de pie c",
"18"?= & gt? p>
"20"?= >?"
"21"?= >? p>
"22"?= & gt?"D75",
"255"?= & gt?
);
$Flash_arr? =?Array(
" 0 " =>;? "¿Flash? ¿Sí? ¿No? Fuego",
" 1" =>? "¿Flash? Disparado", < /p >
" 5 " =>; ? "¿Flash? ¿Disparado? ¿Pero? ¿Estroboscópico? ¿Regreso? ¿No? Detectado",
" 7 " => "¿Flash? ¿Disparado? .
¿Estroboscópico? ¿devolver? ¿Luz? Detectado",
);
$exif?=?exif_read_data?($img," ifd 0");
Si?($exif= = =false)? {
$new_img_info? =?Array? ("Información del archivo" = & gt?"Sin información EXIF de la imagen");
}
Otro
{
$exif? =?exif_read_data? ($img, 0, verdadero);
$new_img_info?
"Información del archivo" =>? "-",
"Nombre del archivo" =>;? $EXIF[archivo][nombre del archivo],
"Tipo de archivo" =>? $imgtype[$EXIF[File][FileType]],
"Formato de archivo" =>?$EXIF[File][MimeType],
"tamaño de archivo" =>?$exif[archivo][tamaño de archivo],
"marca de tiempo" =>?date("Y-m-d?H:i:s",$exif [archivo][fecha y hora del archivo]),
"Información de la imagen" =>? "-",
"Título de la imagen" =>;? $exif[IFD0][ImageDescription ],
" Fabricante" => ? $exif[IFD0][Marca],
"Modelo" ? ,
"Orientación"? = & gt? IFD0][XResolución].
¿"resolución vertical"? $exif[IFD0][YResolution].unidad[$EXIF[ifd 0][unidad de resolución]],
"Crear software" =>? 0][Software],
"Modificar hora" =>;?$exif[IFD0][DateTime],
> =>? $YCbCrPositioning[$EXIF[ifd 0][YCbCrPositioning]],
¿"Copyright"? =>? $EXIF[ifd 0][Copyright],
"Copyright de fotografía" =>? $EXIF[COMPUTADO][Derechos de autor. Fotógrafo],
"Copyright editorial" =>;? $EXIF[COMPUTADO][Derechos de autor. Editar],
"información de disparo" = & gt? " - ",
"Versión Exif" = & gt? $exif[EXIF][ExifVersion],
"Versión FlashPix" =>? "¿Ver.?". number_format($EXIF[EXIF][versión flash pix]/100, 2),
"tiempo de disparo" = & gt? $exif[EXIF][DateTimeOriginal],
¿"Hora digital"? =>? $EXIF[EXIF][Fecha y hora digitalizadas],
¿"Fotografía en alta resolución"? =>? $EXIF[calculado][altura],
¿"Resolución de disparo amplia"? =>? $EXIF[calculado][ancho],
/*
¿Cuál? ¿actual? ¿abertura? ¿valor? ¿de? ¿Lente? ¿cuando? ¿eso? ¿Imagen? Era. Hay gente.
¿Unidad? ¿Sí? vértice.
¿Adónde ir? ¿Convertir? ¿este? ¿valor? ¿A dónde ir? ¿común? Número de apertura (parada de apertura),
¿calcular? ¿este? ¿Vale la pena? ¿ese poder? ¿de? ¿raíz? 2?(=1.4142).
¿Para qué? Por ejemplo,? ¿si? ¿eso? ¿Valor de apertura? ¿Sí? '5',?f número? ¿Sí? pow(1.41425, 5)? =?F5.6.
*/
"apertura" = >? $exif[EXIF][ApertureValue],
"Velocidad de obturación" =>? $exif[EXIF][ShutterSpeedValue],
"Apertura del obturador" =>? $EXIF[COMPUTED][número de apertura],
¿"Valor máximo de apertura"? =>? "F". $exif[EXIF][MaxApertureValue],
"Tiempo de exposición" =>? $EXIF[EXIF][tiempo de exposición],
"Número F"=>? $EXIF[EXIF][Número],
"Modo de medición" =>? GetImageInfoVal($EXIF[EXIF][Modo de medición], $Array de modo de medición),
¿"Fuente de luz"? =>? GetImageInfoVal($EXIF[EXIF][LightSource],?$Lightsource_arr),
"Flash" =>;? GetImageInfoVal($EXIF[EXIF][Flash],?$Flash_arr),
"Modo de exposición" =>;? ($EXIF[EXIF][modo de exposición]==1?"manual":"auto"),
"balance de blancos" =>? ($EXIF[EXIF][Balance de blancos]==1?"Manual":"Auto"),
"Programa de exposición" =>? $programa de exposición[$EXIF[EXIF][programa de exposición]],
/*
¿Brillo? ¿de? ¿Alguien? tema,? ¿unidad? ¿Sí? vértice. ? ¿A dónde ir? ¿Hacer los cálculos? ¿Exposición (Ev)? ¿De donde? Valor de brillo (Bv),? Y tú. ¿debe? ¿Reponer? Valor de sensibilidad (Sv).
Ev=Bv+Sv? Sv=log((velocidad equivalente/3,125), 2)
牉O100:Sv=5,? ISO200:Sv=6,? ISO400:Sv=7,? ISO125:Sv=5,32. ?
*/
"Compensación de exposición" =>;? $EXIF[EXIF][exposebiasvalue]. "EV",
"Sensibilidad ISO" =>? $EXIF[EXIF][Equivalente de moneda],
"Configuración de componentes" =>? (bin 2 hex($EXIF[EXIF][configuración de componentes])== "01020300"?" YCbCr":"RGB"), //'0x04, 0x05, 0x06, 0x00'="RGB"? 0x01, 0x02, 0x03, 0x00'="YCbCr "
"Relación de compresión de imagen"? =>? $EXIF[EXIF][bits de compresión por píxel]. "bits/píxeles",
"distancia focal" =>? $EXIF[calculado][distancia focal]. "m",
"distancia focal" =>? $exif[EXIF][Longitud focal]. ¿"Hmm",
"distancia focal equivalente a 35 mm"? =>? $EXIF[EXIF][longitud focal en película de 35 mm]. "Mmm",
/*
¿Tienda? ¿usuario? Comentario. ? ¿este? ¿Etiqueta? ¿Está permitido? ¿A dónde ir? ¿usar? ¿Doble byte? ¿Personaje? ¿Código? ¿aún? Unicode. ? ¿primero? 8 bytes? ¿Describirlo? ¿eso? ¿Personaje? código. ? ¿JIS? ¿Sí? ¿respuesta? ¿Japonés? ¿Personaje? ¿Código? (conocido?como?kanji).
"0x41, 0x53, 0x43, 0x49, 0x49, 0x00, 0x00, 0x 00":ASCII
"0x4a, 0x49, 0x53, 0x00, 0x00, 0x00, 0x00, 0x 00": JIS
"0x55, 0x4e, 0x49, 0x43, 0x4f, 0x44, 0x45, 0x 00": Unicode
' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , 0x00, 0x00 ': indefinido
*/
¿"Código de comentario de usuario"? =>? $EXIF[COMPUTED][codificación de comentario de usuario],
"Comentario de usuario" = & gt? $EXIF[Calculado][Comentario del usuario],
"Espacio de color" =>? ($EXIF[EXIF][espacio de color]==1?"sRGB":"sin calibrar"),
"Ancho de imagen Exif"? =>? $exif[EXIF][ExifImageLength],
"Altura de la imagen Exif" =>? $exif[EXIF][ExifImageWidth],
"Fuente del archivo" =>? (bin 2 hex($EXIF[EXIF][fuente del archivo])==0x03?"Número?O?Cámara":"Desconocido"),
"Tipo de escena" =>? (bin 2 hex($EXIF[EXIF][tipo de escena])== 0x 01?"a?direct?photo?image":"unknown"),
"formato de archivo en miniatura"? =>? $EXIF[calculado][miniatura. Tipo de archivo],
"Formato Mime en miniatura" =>? $EXIF[calculado][miniatura. MimeType]
);
}
¿Volver? $ nuevo _ img _ info
}
$innerhtml? =?"";
$exif? =?GetImageInfo($ _ GET[' img ']);
$innerhtml? . =?"<table>"
foreach($exif?as?$nombre=>$val)? {
$html interno? . =?"& ltTR & gt& ltTD & gt{ $ nombre } & lt/TD & gt; & ltTD & gt{ $ val } & lt/TD & gt; & lt/TR >;
}
$innerhtml?=?"<TR><TD? colspan = \ " 2 \ " & gt;
¿Si? ($_GET['img'])? {
$imagen? =?EXIF _ miniatura($ _ GET[' img ']);
}?¿De lo contrario? {
$imagen? =?Falso;
}
¿Si? ($imagen!= =falso)? {
$html interno? . =?"<img?src=\"thumbnail.php? img= ".$_GET['img'].\" >;
}? {
//?¿No? ¿Uña del pulgar? Disponible,? ¿manejar? ¿eso? ¿error? Aquí
$innerhtml? . =?"¿No? ¿Miniatura? Disponible";
}
$innerhtml? .
=?"</TD></TR></TABLE>
>
<html>
& lthead & gt?
& lttitle & gtimage information
& ltmeta? http-equiv="Content-Type "? contenido = "text/html;? juego de caracteres =? "& gt
& lt/head & gt;
& ltbody & gt
& ltscript& gt
& lt! -
//Inicializar valor del contenido
parent.followTd<?=$_GET['r_id'];?innerHTML='<? Innerhtml?>';
/ /leer
documento principal . imágenes siguientes <? = $_GET[' r_id '];
cargado = ' si
-& gt;
& lt/SCRIPT & gt;
& lt/body & gt;
</html>