Galerie mit Thumbnails aus den Exif-Metadaten von Jpg-Fotos

Diskutiere Galerie mit Thumbnails aus den Exif-Metadaten von Jpg-Fotos im PHP Forum im Bereich Programmierung; Wohl die meisten Fotogalerien benutzen verkleinerte Abbildungen (Thumbnails) für eine Vorschau auf die eigentlichen Bilder. Im einfachsten Fall...
P

Pilo

Member
Beiträge
13
Punkte Reaktionen
0
Wohl die meisten Fotogalerien benutzen verkleinerte Abbildungen (Thumbnails) für eine Vorschau auf die eigentlichen Bilder. Im einfachsten Fall sieht das so aus:
Code:
<a href="gross.jpg"><img src="klein.jpg"></a>
Das bedeutet, dass man von jedem Foto erstmal eine Miniaturversion machen muß, zum Beispiel mit einen Foto-Bearbeitungs-Programm.
Moderne Kameras und Smartphones speichern jedoch in den Exif-Daten der Fotos auch schon so ein Miniaturbild. In PHP kann man sich dies Bild wie folgt anzeigen lassen.
Code:
<?php
$klein = exif_thumbnail('gross.jpg', $width, $height, $type);
if ($klein!==false) {
    header('Content-type: ' .image_type_to_mime_type($type));
    echo $klein;
    exit;} 
else { echo 'Kein Miniaturbild verfügbar';}
?>
Meine Frage: Wie kann ich $klein als klein.jpg abspeichern (und/oder im ersten Code-Beispiel verwenden) ?
 
S

Sempervivum

Well-known member
Beiträge
280
Punkte Reaktionen
43
Du kannst $klein sowohl durch PHP direkt ausgeben lassen wie in deinem Beispiel und dann als Bildquelle im HTML verwenden.
Als auch in eine Datei speichern indem Du, anstatt $klein mit echo auszugeben, es in einer Datei speicherst:
Code:
file_put_contents('klein.jpg', $klein);
Ich rate aber davon ab, den Weg über das Thumbnail in den EXIF-Daten zu gehen:
  • Es ist keineswegs sicher gestellt, dass ein Bild auch ein EXIF-Thumbnail enthält. Als ich das getestet habe, hatte ich ein wenig Probleme, bei mir überhaupt ein Bild zu finden, wo das zutrifft. Es ging dann mit einem Bild direkt aus dem Handy, nicht dagegen mit Bildern, die ich bearbeitet hatte (ich verwende Affinity Photo). Diese enthielten kein Thumbnail.
  • Ist ein Thumbnail vorhanden, ist fraglich, ob die Größe geeignet ist. In meinem Beispielbild war es 512x384 px groß. I. allg. zu groß für eine Verwendung als Thumbnail.
Du schriebst:
Das bedeutet, dass man von jedem Foto erstmal eine Miniaturversion machen muß, zum Beispiel mit einen Foto-Bearbeitungs-Programm.
Das kann natürlich ein enormer Arbeitsaufwand werden, es ist jedoch kein Problem, die Thumbnails automatisch durch PHP erzeugen zu lassen. Dann hast Du die Abmessungen und die Stärke der Komprimierung selber im Griff. Diesen Weg würde ich empfehlen.
 
P

Pilo

Member
Beiträge
13
Punkte Reaktionen
0
Ich arbeite mit Corel PhotoPaint, da bleiben alle Exifs erhalten. Das hat aber, - wie ich nun feststellen mußte - den Nachteil, daß der Thumbnail die ursprüngliche und nicht die bearbeitete Version wiedergibt. Der dadurch eigentlich unbrauchbare Thumbnail macht die Datei auch noch unnötig größer.
Ich sehe zwei mögliche Lösungen:
1) Eine PHP-Funktion, die - wie Du vorschlägst - automatisch eine Thumbnail-Datei erzeugt, und die möglichst auch gleich noch unnötige Exifs aus der großen Version entfernt. Die Galerie benötigt dann weiterhin für jedes Bild zwei Dateien.
2) Eine PHP-Funktion, die eine automatisch erzeugte Thumbnail-Datei ins Exif der großen Bilddatei setzt. Dann kämen wir mit nur einer Datei pro Bild aus.
Lösung 1 sollte ich noch realisieren können, Lösung 2 dagegen übersteigt meine PHP-Fähigkeiten bei weitem.
 
Thema:

Galerie mit Thumbnails aus den Exif-Metadaten von Jpg-Fotos

Oben Unten