Inhaltsverzeichnis
Informationen zum Bildtyp in EXIF ​​abrufen
Erhalten Sie vollständige EXIF-Informationen
Holen Sie sich den Header-Namen des angegebenen Index
In JPG-Dateien eingebettete Miniaturansichten lesen
Zusammenfassung
Heim Backend-Entwicklung PHP-Tutorial Eine kurze Diskussion darüber, wie man mit PHP die EXIF-Informationen von Bildern liest (mit Code)

Eine kurze Diskussion darüber, wie man mit PHP die EXIF-Informationen von Bildern liest (mit Code)

Oct 28, 2021 pm 07:11 PM
Exif-Informationen php

Wie lese ich die EXIF-Informationen von Bildern mit PHP? Der folgende Artikel stellt Ihnen vor, wie Sie mit PHP die EXIF-Informationen von Bilddateien erhalten. Ich hoffe, er ist hilfreich für Sie!

Eine kurze Diskussion darüber, wie man mit PHP die EXIF-Informationen von Bildern liest (mit Code)

In den von uns aufgenommenen Fotos und verschiedenen Bilddateien sind tatsächlich einige Informationen gespeichert, die nicht intuitiv erkennbar sind, wie z. B. die Standortinformationen beim Fotografieren mit einem Mobiltelefon, die Art und Größe des Bildes usw. Diese Informationen werden als EXIF-Informationen bezeichnet. Im Allgemeinen verfügen Bilddateien wie JPG und TIFF über solche Informationen. EXIF ist eigentlich speziell auf diese Art von Digitalfotos zugeschnitten und wird speziell zum Aufzeichnen der Attributinformationen und Aufnahmedaten von Digitalfotos verwendet. Es wurde ursprünglich in Japan entwickelt. Das ist eigentlich leicht zu verstehen, Japan hat im Grunde ein Monopol auf die Kameraindustrie, also werden diese Standards natürlich von ihnen festgelegt!

EXIF bietet native Unterstützung in Windows-Systemen. Klicken Sie mit der rechten Maustaste auf das Bild, um das Menü zu öffnen, klicken Sie dann auf Eigenschaften und wechseln Sie zu Details, um die EXIF-Informationen der Bilddatei direkt anzuzeigen. Da diese Informationen nach Belieben bearbeitet werden können, können sie als Referenz verwendet werden und können nicht als eindeutige Werte bestimmter Funktionsattribute abgerufen werden. Vertrauen Sie beispielsweise den Informationen in EXIF ​​nicht vollständig, z. B. Breite und Höhe.

Informationen zum Bildtyp in EXIF ​​abrufen

Beobachten wir zunächst den Bildtyp über EXIF.

var_dump(exif_imagetype($png)); // int(3)
echo exif_imagetype($png) == IMAGETYPE_PNG ? $png . '是 PNG 图片' : $png . '不是 PNG 图片', PHP_EOL;
// ../img/1.png是 PNG 图片

var_dump(exif_imagetype($jpg)); // int(2)
echo exif_imagetype($jpg) == IMAGETYPE_JPEG ? $jpg . '是 jpg 图片' : $jpg . '不是 JPG 图片', PHP_EOL;
// ../img/2.jpg是 jpg 图片

Wenn Sie die Funktion exif_imagetype() direkt verwenden, wird eine Konstante des Bildtyps zurückgegeben. Dabei handelt es sich um den Bildtyp, der durch die Konstanteninformationen dargestellt wird, beginnend mit IMAGETYPE_. Es umfasst auch viele andere Typen. Hier zeigen wir nur die Erfassung unserer gängigsten JPG- und PNG-Bildtypen.

Es ist dasselbe wie das dritte Attribut, das von der Funktion getimagesize() zurückgegeben wird, nämlich das Attribut mit dem Index 2. In der Funktion getimagesize() stellen 0 und 1 die Breite und Höhe dar und 2 repräsentiert den Typ von Bild.

var_dump(getimagesize($jpg));
// array(7) {
//     [0]=>
//     int(300)
//     [1]=>
//     int(244)
//     [2]=>
//     int(2)
//     [3]=>
//     string(24) "width="300" height="244""
//     ["bits"]=>
//     int(8)
//     ["channels"]=>
//     int(3)
//     ["mime"]=>
//     string(10) "image/jpeg"
//   }

Erhalten Sie vollständige EXIF-Informationen

Alle vollständigen EXIF-Informationen im Bild werden über die Funktion exif_read_data() abgerufen.

var_dump(exif_read_data($png));
// PHP Warning:  exif_read_data(1.png): File not supported in /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202011/source/11.使用PHP获取图像文件的EXIF信息.php on line 14

// Warning: exif_read_data(1.png): File not supported in /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202011/source/11.使用PHP获取图像文件的EXIF信息.php on line 14

// bool(false)

var_dump(exif_read_data($jpg));
// array(8) {
//     ["FileName"]=>
//     string(5) "2.jpg"
//     ["FileDateTime"]=>
//     int(1605061174)
//     ["FileSize"]=>
//     int(19075)
//     ["FileType"]=>
//     int(2)
// ……
// ……

Wie bereits erwähnt, existieren EXIF-Informationen nur in JPG, TIFF und anderen Bildformaten, sodass PNG-Bilder keine EXIF-Informationen erhalten können. Wenn exif_read_data() für PNG-Bilder verwendet wird, wird eine Warnung ausgegeben. Bei JPG wird der komplette EXIF-Inhalt zurückgegeben. Hier haben wir nur einen Teil davon abgefangen, nicht nur Breite, Höhe, Typ, Komprimierungsverhältnis usw. Wenn es mit einem Mobiltelefon aufgenommen wurde, können Sie auch den Hersteller des Mobiltelefons, den geografischen Standort usw. sehen. Verschlussparameter, Blendenparameter usw., das hat natürlich auch viel mit der von Ihnen verwendeten Kamera zu tun, einige Hersteller verfügen möglicherweise über weniger Daten. Sie können davon ein Foto machen und sich mit dieser Funktion selbst davon überzeugen.

Darüber hinaus gibt es eine Alias-Funktion read_exif_data(), die eine ähnliche Funktion wie exif_read_data() hat. Sie ist ein Alias ​​davon und wurde nach PHP7 als veraltete Syntax markiert. Jeder kann es herausfinden.

var_dump(read_exif_data($jpg));
// PHP Deprecated:  Function read_exif_data() is deprecated in /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202011/source/11.使用PHP获取图像文件的EXIF信息.php on line 17

// Deprecated: Function read_exif_data() is deprecated in /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202011/source/11.使用PHP获取图像文件的EXIF信息.php on line 17
// array(8) {
//   ["FileName"]=>
//   string(5) "2.jpg"
//   ["FileDateTime"]=>
//   int(1605061174)
//   ["FileSize"]=>
// ……
// ……

Holen Sie sich den Header-Namen des angegebenen Index

Der Index-Header entspricht dem Feldnamen in EXIF. Wir können alle derzeit unterstützten Index-Header-Informationen anzeigen, und es gibt viele Inhalte. Sie können den Attributnamen auch anhand des Indexheaders ermitteln und dann in EXIF ​​nach den entsprechenden Attributinformationen suchen.

echo "256: " . exif_tagname(256) . PHP_EOL;
// 256: ImageWidth
for ($id = 1; $id <= 65535; $id++) {
    if (exif_tagname($id) != "") {
        echo $id . &#39; ( &#39; . exif_tagname($id) . &#39; )&#39;, PHP_EOL;
    }
}
// 11 ( ACDComment )
// 254 ( NewSubFile )
// 255 ( SubFile )
// 256 ( ImageWidth )
// 257 ( ImageLength )
// 258 ( BitsPerSample )
// 259 ( Compression )
// ……
// ……
// ……

In JPG-Dateien eingebettete Miniaturansichten lesen

Viele Leute wissen möglicherweise nicht, dass Miniaturansichten im EXIF-Format gespeichert werden können. Und die Fotos, die mit jedem Mobiltelefon aufgenommen werden, haben grundsätzlich dieses Miniaturbild. Wenn das Bild in Windows-Systemen über eine Miniaturansicht verfügt, wird die Miniaturansicht im EXIF-Format direkt verwendet. Andernfalls wird automatisch eine Thumbs.db-Datei im Verzeichnis generiert, bei der es sich um eine Miniaturansichtsdatenbank handelt.

var_dump(exif_thumbnail(&#39;../img/3.jpeg&#39;));

file_put_contents(&#39;../img/3-thumbnail.jpeg&#39;, exif_thumbnail(&#39;../img/3.jpeg&#39;));

In PHP können Sie die in EXIF ​​gespeicherten Miniaturbildinformationen direkt in einer JPG-Datei über die Funktion exif_thumbnail() abrufen. Im Testcode rufen wir es ab und speichern es dann als formales Bild, sodass jeder sehen kann, wie das Miniaturbild wirklich aussieht. Und wenn wir exif_read_data() verwenden, um diese Datei zu lesen, können wir auch die im Miniaturbild gespeicherten Informationen sehen.

var_dump(exif_read_data(&#39;../img/3.jpeg&#39;));
// array(56) {
// ……
// ……
// ……
//     ["Make"]=>
//     string(6) "Xiaomi"
//     ["THUMBNAIL"]=>
//     array(9) {
//       ["JPEGInterchangeFormat"]=>
//       int(5504)
//       ["Orientation"]=>
//       int(6)
//       ["JPEGInterchangeFormatLength"]=>
//       int(14369)
//       ["Compression"]=>
//       int(6)
//       ["ResolutionUnit"]=>
//       int(2)
//       ["XResolution"]=>
//       string(4) "72/1"
//       ["YResolution"]=>
//       string(4) "72/1"
//       ["ExifImageLength"]=>
//       int(240)
//       ["ExifImageWidth"]=>
//       int(320)
//     }
//     ["UndefinedTag:0x9AAA"]=>
//     string(4480) "1y�L�=w%�s_�&��v��oJ��$Gdz|d�9n�
// ……
// ……

Zusammenfassung

Jetzt haben Sie ein grundlegendes Verständnis für das EXIF ​​von Bildern. Beim heutigen Lernen sind einige Punkte zu beachten: Erstens ist EXIF ​​nur in Bildformaten wie JPG und TIFF verfügbar, zweitens sind sie modifizierbar und drittens kann dieses Ding sogar ein Miniaturbild speichern. Tatsächlich ist Lernen ein Fass ohne Boden, und ich habe versehentlich meine Augen wieder geöffnet. Kommt schon, Jungs!

Testcode: https://github.com/zhangyue0503/dev-blog/blob/master/php/202011/source/11. Verwenden Sie PHP, um die EXIF-Informationen von Bilddateien zu erhalten.php

Empfohlen Lernen: „ PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion darüber, wie man mit PHP die EXIF-Informationen von Bildern liest (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP-Tutorial
1538
276
Objektrelationszuordnung (ORM) Leistungsstimmen in PHP Objektrelationszuordnung (ORM) Leistungsstimmen in PHP Jul 29, 2025 am 05:00 AM

Vermeiden Sie N 1 Abfrageprobleme, reduzieren Sie die Anzahl der Datenbankabfragen, indem Sie die zugehörigen Daten im Voraus laden. 2. Wählen Sie nur die erforderlichen Felder aus, um das Laden vollständiger Entitäten zu vermeiden, um Speicher und Bandbreite zu sparen. 3.. Verwenden Sie Cache-Strategien vernünftigerweise, z. 4. Optimieren Sie den Lebenszyklus der Entität und rufen Sie Clear () regelmäßig an, um den Speicher freizugeben, um den Speicherüberlauf zu verhindern. 5. Stellen Sie sicher, dass der Datenbankindex die generierten SQL -Anweisungen existiert und analysiert, um ineffiziente Abfragen zu vermeiden. 6. Deaktivieren Sie die automatische Änderungsverfolgung in Szenarien, in denen Änderungen nicht erforderlich sind, und verwenden Sie Arrays oder Leichtgewichtsmodi, um die Leistung zu verbessern. Die korrekte Verwendung von ORM erfordert die Kombination der SQL -Überwachung, -gespeicherung, der Stapelverarbeitung und der geeigneten Optimierung, um die Anwendungsleistung zu gewährleisten und gleichzeitig die Entwicklungseffizienz beizubehalten.

VSCODE Settings.json Standort VSCODE Settings.json Standort Aug 01, 2025 am 06:12 AM

Die Datei "Settings.JSON" befindet sich auf dem Pfad auf Benutzerebene oder Arbeitsbereichsebene und wird verwendet, um die VSCODE-Einstellungen anzupassen. 1. Benutzer-Level-Pfad: Windows ist C: \ Benutzer \\ AppData \ Roaming \ Code \ User \ Settings.json, MacOS is /users//library/applicationsupport/code/user/settings.json, Linux is /home/.config/code/usser/setings.json; 2. Pfad auf Arbeitsbereichsebene: .VSCODE/Einstellungen im Projekt Root Directory

Die serverlose Revolution: Bereitstellung skalierbarer PHP -Anwendungen mit BREF Die serverlose Revolution: Bereitstellung skalierbarer PHP -Anwendungen mit BREF Jul 28, 2025 am 04:39 AM

Mit Bref ermöglicht es PHP-Entwicklern, skalierbare, kostengünstige Anwendungen zu erstellen, ohne Server zu verwalten. 1.Bref bringt Php nach AWSLambda, indem er eine optimierte PHP -Laufzeitschicht bereitstellt, Php8.3 und andere Versionen unterstützt und sich nahtlos in Frameworks wie Laravel und Symfony integriert. 2.. 3. Führen Sie den Befehl ServerlessDeploy aus, um die Bereitstellung abzuschließen, apiCateway automatisch zu konfigurieren und Zugriffs -URLs zu generieren. 4. Für Lambda -Beschränkungen bietet BREF Lösungen.

Aufbau unveränderlicher Objekte in PHP mit Readonly -Eigenschaften Aufbau unveränderlicher Objekte in PHP mit Readonly -Eigenschaften Jul 30, 2025 am 05:40 AM

ReadOmpropertiesinphp8.2canonlyBeSignedoncinstructororatDeklarationandCannotBemodifiedAfterward, durchsetzungsvermutbarkeitatheluagelevel.2.ToachedevimmiMmutability, WrapMutabletypesLikearrayObjecustomimmutablecollections

Ein tiefes Eintauchen in den Mechanismus für interne Müllsammlung von PHP Ein tiefes Eintauchen in den Mechanismus für interne Müllsammlung von PHP Jul 28, 2025 am 04:44 AM

Der Müllsammlung von PHP basiert auf der Referenzzählung, aber kreisförmige Referenzen müssen von einem periodischen kreisförmigen Müllsammler verarbeitet werden. 1. Die Referenzzahl gibt den Speicher sofort frei, wenn keine Referenz auf die Variable vorhanden ist. 2. Referenzreferenz bewirkt, dass Speicher nicht automatisch freigegeben werden kann, und es hängt davon ab, dass GC ihn erfasst und reinigt. 3.. GC wird ausgelöst, wenn das "mögliche Wurzel" den Schwellenwert erreicht oder manuell gc_collect_cycles () aufruft; 4. Langzeit laufende PHP-Anwendungen sollten gc_status () überwachen und rechtzeitig gc_collect () aufrufen, um Speicherleckage zu vermeiden. 5. Zu den Best Practices gehört die Vermeidung von kreisförmigen Referenzen, die Verwendung von gc_disable () zur Optimierung der Leistungsschlüsselbereiche und Dereference -Objekte über die Clear () -Methode des ORM.

Gehen Sie zum Beispiel für HTTP Middleware -Protokollierung Gehen Sie zum Beispiel für HTTP Middleware -Protokollierung Aug 03, 2025 am 11:35 AM

HTTP-Protokoll Middleware in Go kann Anforderungsmethoden, Pfade, Client-IP und zeitaufwändiges Aufzeichnen aufzeichnen. 1. Verwenden Sie http.Handlerfunc, um den Prozessor zu wickeln, 2. Nehmen Sie die Startzeit und die Endzeit vor und nach dem Aufrufen als nächstes auf. Der vollständige Beispielcode wurde überprüft, um auszuführen und eignet sich zum Starten eines kleinen und mittelgroßen Projekts. Zu den Erweiterungsvorschlägen gehören das Erfassen von Statuscodes, die Unterstützung von JSON -Protokollen und die Nachverfolgung von ID -IDs.

Integration von PHP in Modelle für maschinelles Lernen Integration von PHP in Modelle für maschinelles Lernen Jul 28, 2025 am 04:37 AM

UsearestapitobridgephpandmlmodelsbyrunningThemodelinpythonviaplaskorfastapiandcallingitFrompusingCurlorguzzle.2.RunpythonScriptsDirectlyfrompusexec () orshell_exec () Forsimple, Low-TrafcuStates, und Low-Trafficusecases

CSS -Beispiel für Dunkelmodus umschalten CSS -Beispiel für Dunkelmodus umschalten Jul 30, 2025 am 05:28 AM

Verwenden Sie zunächst JavaScript, um die Einstellungen für Benutzersysteme und lokal gespeicherte Themeneinstellungen zu erhalten und das Seitenthema zu initialisieren. 1. Die HTML -Struktur enthält eine Schaltfläche zum Auslösen von Themenwechsel. 2. CSS verwendet: root, um helle Themenvariablen zu definieren, .Dark-Mode-Klasse definiert dunkle Themenvariablen und wendet diese Variablen über var () an. 3.. JavaScript erkennt bevorzuge-farbige Scheme und liest LocalStorage, um das ursprüngliche Thema zu bestimmen. 4. Schalten Sie die Dark-Mode-Klasse im HTML-Element beim Klicken auf die Schaltfläche und speichern Sie den aktuellen Status vor LocalStorage. 5. Alle Farbänderungen werden mit einer Übergangsanimation von 0,3 Sekunden begleitet, um den Benutzer zu verbessern

See all articles