EXIF-Daten im Album auslesen

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

EXIF-Daten im Album auslesen

Beitrag von Max »

Deine phpBB Version: 2.0.15
Typ Deines phpBB Forums: Premodded phpBB
MODs: Ja
Dein Wissensstand: Grundwissen
Link zu Deinem Forum: http://www.ssvforum.de/phpBB2/album.php

PHP Version: 4.3.10
MySQL Version:


Was hast Du gemacht, bevor das Problem aufgetreten ist?
den entsprechenden MOD aus diesem Link eingebaut
http://smartor.is-root.com/viewtopic.php?t=13859
Vorletztes Posting auf der Seite



Was hast Du bereits versucht um das Problem zu lösen?
eigentlich nichts, weil keine Ahnung ;)



Fehlerbeschreibung und Nachricht

Hallo,


also es geht um die EXIF-Daten und deren Anzeige im Album.
Dafür gibt es einen MOD, den ich oben auch schon so halbwegs verlinkt habe.

Nun das Teil ist ratzfatz eingebaut und funktioniert eigentlich auch.
Nur leider werden diese EXIF-Daten nur in der ersten Kategorie (wahrscheinlich wegen ID=1) angezeigt, in den persönlichen Galerien und in den anderen Kategorien wird es nicht angezeigt.

Tja, die Frage ist nun, hat einer eine Idee, wie man das für alle Kategorien funktionsfähig hinbekommt?
Denn grundsätzlich ist das eine recht informative Geschichte, da so Blende, Verschlußzeit und auch Cam-Typ zu dem Bild angezeigt wird.

Wäre also echt genial, wenn es einen Weg gibt, um das für alle Bereiche im Album hinzubekommen.



Gruß Max


Edit:
ich habe nun mal etwas herumexperimentiert, die Kategorie, wo die EXIF-Daten angezeigt werden, darf keine Sub-Kategorie sein oder haben, bzw gehabt haben.
Das ist schon merkwürdig...

Noch ein Edit:

Nun habe ich festgestellt, dass das an der automatischen Größenanpssung beim Upload liegen muss. Da ich ja beim Upload im Album die Anpassung auf die Albumvorgaben automatisch laufen lasse, wird dabei das EXIF-Zeug weggefiltert: http://www.ssvforum.de/phpBB2/album_sho ... ic_id=2930

Passe ich aber vorher die Bildgröße auf dem Rechner an (z.B. hiermit: http://www.ssvforum.de/phpBB2/downloads ... id=1&cat=1 ) dann klappt das mit der Anzeige der EXIF-Daten unabhängig von der Kategorie.
Siehe hier: http://www.ssvforum.de/phpBB2/album_sho ... ic_id=2931


Anscheinend ist das das Problem, da speziell im SSV-Forum die User (und ich selber bin ja auch gerne faul, darum ja der Einbau der Funktion) diese automatische Anpassung nutzen.

Naja, dann muss man an der Anpassung arbeiten und nicht am Auslese-MOD

Also Update der Frage, kennt sich jemand mit dieser Ergäzung am Album aus, gibt es Ideen, woran das dabei liegen könnte und wie man das beheben kann?
Zuletzt geändert von Max am Di 07.Jun, 2005 22:16, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Öhm, mir sind jetzt weder EXIF-Dateien geläufig (wohl technisch zurückgeblieben bin) noch den Mod auf Smartor's Seite...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

Beitrag von Max »

Hi,


also EXIF-Daten sind die versteckten Informationen im Bild, bei denen festgehalten wird, mit welcher Camera das Bild gemacht wurde, welche Verschlußzeit, welche Blende usw - siehe hier: http://www.ssvforum.de/phpBB2/album_sho ... ic_id=2931
Da steht unterhalb des Bildes nachher etwas von dem, was in dem EXIF-Header des Bildes gespeichert wird.

Diser EXIF-Auslese-MOD ist da erst im März 2005 entwickelt worden und heute habe ich den zufällig entdeckt.


Nunja, jedenfalls wird der EXIF-Header des Bildes bei der Album_auto-rezize - Erweiterung weggefiltert.
Wäre cool, wenn man dieses Wegfiltern abstellen könnte.
Oder ich "zwinge" die User einfach, die Bilder vorher auf die klassische Weise zu verkleinern (gibt ja geniale Tools dafür) und entschärfe das mit dem Album_auto-rezize


Gruß Max
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Auch beim klassischen verkleinern können die EXIF Daten verloren gehen, wenn das eingesetzte Programm sie nicht kennt und gesondert behandelt.
Bei meiner Digicam lag extra ein Photoshop addon dabei, damit Photoshop die Daten erkennt und beibehält!!!
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ah jetzt hab ichs.
Danke für die Aufklärung.

Und nun zum Mod selber:
Am besten wäre es, wenn man die exif-Daten ausliest, bevor das Bild in das Album übernommen wird. Also unmittelbar nach dem Hochladen in das PHP-Temp-Verzeichnis.
Nur: Ob man dort Aktionen auslösen kann...
Und BTW: Welchen Verkleinerungs-Mod meinst Du?
Verkleinert der beim Upload? Dann gäbe es mit den Exif-Daten eh Probleme, denn die werden ja nicht, so habe ich das verstanden, in der Datenbank gespeichert, sondern beim Anzeigen des Bildes ausgelesen und dargestellt.
Dabei ist natürlich
A. der korrekte Pfad bei Subkategorien anzugeben (hattest Du ja glaub ich geschafft)
B. die hochgeladene Datei darf nicht verändert werden.

Also blieben 2 Möglichkeiten:
1. User verkleinern vor dem Upload
2. Exif wird nach dem Upload ausgelesen und mit in der Datenbank gespeichert.

Erstere Variante ist einfacher, zumal ich beide Mods nicht kenne (okay, den exif Mod jetzt ein klitze kleines Stück).
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

Beitrag von Max »

[quote="oxpus - Di 07.Jun, 2005 23:28";p="34794"]Und BTW: Welchen Verkleinerungs-Mod meinst Du?[/quote]

Diesen hier:

Code: Alles auswählen

open album_upload.php 

find: 

Code: 

   if( ($filesize == 0) or ($filesize > $album_config['max_file_size']) ) 
   { 
      message_die(GENERAL_MESSAGE, $lang['Bad_upload_file_size']); 
   } 
 



replace with 

Code: 

   if( ($filesize == 0) or ($filesize > 1024000) ) 
   { 
      message_die(GENERAL_MESSAGE, $lang['Bad_upload_file_size']); 
   } 
   $recompress = 0; 
   if ($filesize > $album_config['max_file_size']) 
   { 
      $recompress = 1; 
   } 
 


find: 

Code: 

   if ( ($pic_width > $album_config['max_width']) or ($pic_height > $album_config['max_height']) ) 
   { 
      @unlink(ALBUM_UPLOAD_PATH . $pic_filename); 

      if ($album_config['gd_version'] == 0) 
      { 
         @unlink(ALBUM_CACHE_PATH . $pic_thumbnail); 
      } 

      message_die(GENERAL_ERROR, $lang['Upload_image_size_too_big']); 
   } 
 


replace with: 

Code: 

   if ( (($pic_width > $album_config['max_width']) or ($pic_height > $album_config['max_height'])) OR ($recompress == 1) ) 
   { 
      if ($album_config['gd_version'] == 0) 
      { 
         @unlink(ALBUM_UPLOAD_PATH . $pic_filename); 
         @unlink(ALBUM_CACHE_PATH . $pic_thumbnail); 
         message_die(GENERAL_ERROR, $lang['Upload_image_size_too_big']." Error code: 001"); 
      } 
      $gd_errored = FALSE; 
          

         switch ($pic_filetype) 
         { 
            case '.jpg': 
               $read_function = 'imagecreatefromjpeg'; 
               break; 
            case '.png': 
               $read_function = 'imagecreatefrompng'; 
               break; 
         } 

         $src = @$read_function(ALBUM_UPLOAD_PATH  . $pic_filename); 

         if (!$src) 
         { 
            $gd_errored = TRUE; 
            $pic_thumbnail = ''; 
         } 

         if (($pic_width > $album_config['max_width']) or ($pic_height > $album_config['max_height'])) 
         { 
            if ($pic_width > $pic_height) 
            { 
               $new_width = $album_config['max_width']; 
               $new_height = $album_config['max_width'] * ($pic_height/$pic_width); 
            } 
            else 
            { 
               $new_height = $album_config['max_height']; 
               $new_width = $album_config['max_height'] * ($pic_width/$pic_height); 
            } 
         } 
         else 
         { 
            $new_width = $pic_width; 
            $new_height = $pic_height; 

         } 
         $new_pic = ($album_config['gd_version'] == 1) ? @imagecreate($new_width, $new_height) : @imagecreatetruecolor($new_width, $new_height); 

         $resize_function = ($album_config['gd_version'] == 1) ? 'imagecopyresized' : 'imagecopyresampled'; 

         @$resize_function($new_pic, $src, 0, 0, 0, 0, $new_width, $new_height, $pic_width, $pic_height); 
       
       
      if (!$gd_errored) 
      { 
         // print $recompress ."<br>".$pic_filename; exit; 
         // overwrite old image 
         @unlink(ALBUM_UPLOAD_PATH . $pic_filename); 
          
         switch ($pic_filetype) 
         { 
            case '.jpg': 
               @imagejpeg($new_pic, ALBUM_UPLOAD_PATH . $pic_filename, 80); 
               break; 
            case '.png': 
               @imagepng($new_pic, ALBUM_UPLOAD_PATH . $pic_filename); 
               break; 
         } 
          
         @chmod(ALBUM_CACHE_PATH . $pic_thumbnail, 0777); 
         $pic_width = $new_width; 
         $pic_height = $new_height; 
      } // End IF $gd_errored 
      else 
      { 
         @unlink(ALBUM_UPLOAD_PATH . $pic_filename); 

         if ($album_config['gd_version'] == 0) 
         { 
            @unlink(ALBUM_CACHE_PATH . $pic_thumbnail); 
         } 

         message_die(GENERAL_ERROR, $lang['Upload_image_size_too_big']." Error code: 002"); 
      } 
   } 
 

I added to error codes Error code: 001 and Error code: 002.. but its for debugging only.. so you know what happened if a user sends u a mail saying he got that code as the output text is the same... error code 1, picture is to big and you don't have gd installed.. 
error code 2 there was a gd error... 


and in lang_main_album.php 
add these three at the end before the ?> 

Code: 
$lang['Max_file_size'] = 'Maximum file size before recompression (bytes)'; 
$lang['Max_width'] = 'Maximum image width before recompression (pixel)'; 
$lang['Max_height'] = 'Maximum image height before recompression  (pixel)'; 


i hope it works for you to.. 
I only tested it with GD2 and i don't allow uploading of gifs... 
(thats why feedback is interesting) 
Und nun dachte ich, dass ich durchsetze, dass die User halt dieses PC-Programm nutzen:
http://www.ssvforum.de/phpBB2/downloads ... id=1&cat=1

Ich gebe dem Testuser (user : test ) nachher mal einiges mehr an DL-Traffic, dann könnt Ihr dort im Forum downloaden.


Also gut, so habe ich mir das schon fast gedacht, das Auslesen der EXIF-Daten während/vor dem Upload ist bestimmt nahezu unmöglich.
Der MOD, den ich ganz oben mittels Thread bei Smartor verlinkt habe, liest die Daten erst bei Anzeige des Bildes aus.
Ich denke mal, hier steht man einfach nur vor der Entscheidung, wie man weiter vorgeht, wo man seine Prioritäten hat.


Also danke schon mal für die Hilfe.
Vielleicht findet sich ja noch eine Lösung, aber Datenbankbasiert würde ich das schon als heftig übertrieben empfinden.



Gruß Max
Antworten