Exif Anzeige für angehangene Bilder

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt, um einen neuen Mod zu entwickeln, geht's in [3.0.x] Mods in Entwicklung weiter.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Das Dee
Mitglied
Beiträge: 13
Registriert: 17.06.2008 13:55

Exif Anzeige für angehangene Bilder

Beitrag von Das Dee »

Hi,

ich such mir einen Wolf, deshalb frage ich nun an dieser Stelle.

Gibt es bereits eine Lösung um Exif-Daten für die im Thread angehangen Bilder (z.B. unterhalb des Bildes) anzeigen zu lassen?

Bevor Fragen kommen. phpBB 3.0.1
Schönen Gruß,
Dirk
Das Dee
Mitglied
Beiträge: 13
Registriert: 17.06.2008 13:55

Beitrag von Das Dee »

Danke, da ich aber wenig Ahnung von der Materie habe, suche ich halt nach einer fertigen Erweiterung für phpBB.

Es sei denn du bist in der Lage mir zu sagen wo ich welchen Codeschnipsel eintragen muss.. :wink:
Schönen Gruß,
Dirk
Das Dee
Mitglied
Beiträge: 13
Registriert: 17.06.2008 13:55

Beitrag von Das Dee »

Moin,

also - ich versuche mich nun selber daran.
Ich werde erst einmal versuchen die Daten beim erstellen des Topics auszulesen (in der attachment.html).

Leider musste ich feststellen, das das ganze mit den dynamischen Verlinkungen nicht funktioniert.

ich habe testweise eine .php erstellt

Code: Alles auswählen

$image = 'url/download/file.php?id=1';
$exif = exif_read_data($image, 0 , true);
Fehlerausgabe:
Warning: exif_read_data(file.php?id=1'): file not supported in /url/test.php on line 2

Besteht die Möglichkeit dem System eine echte .jpg vorzugaukeln?

EDIT: hat sich erledigt. Es geht doch. Bild lag in einem nicht öffentlich zugänglichem Bereich, daher konnte das Script auch nicht darauf zugreifen.
Schönen Gruß,
Dirk
Das Dee
Mitglied
Beiträge: 13
Registriert: 17.06.2008 13:55

Beitrag von Das Dee »

Hi,

nur zur Info - es hat geklappt.
Warscheinlich laienhaft, aber es funktioniert. 8)
Schönen Gruß,
Dirk
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Klasse, es wäre super, wenn du die Lösung hier präsentieren würdest :wink:
Das Dee
Mitglied
Beiträge: 13
Registriert: 17.06.2008 13:55

Beitrag von Das Dee »

Ich hatte es schon per PN weitergeleitet - so für die Snippets

Wie gesagt - es ist laienhaft :roll:

Ich hab aus oben genanntem Link den Code entliehen und folgendes daraus gemacht:


Suche in functions_content.php nach

Code: Alles auswählen

// Images
				case ATTACHMENT_CATEGORY_IMAGE:
					$l_downloaded_viewed = 'VIEWED_COUNT';
					$inline_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id']);
					$download_link .= '&mode=view';
füge danach folgenden Code ein

Code: Alles auswählen

     // Versuch exif auszulesen -START-

        $image = $filename;
        if ($image != '') {
                $exif = exif_read_data($image, 0 , true);

                if(isset($exif["EXIF"]["DateTimeOriginal"])) {
                        $exif_date = str_replace(":","-",substr($exif["EXIF"]["DateTimeOriginal"], 0, 10));
                        $exif_time = substr($exif["EXIF"]["DateTimeOriginal"], 10);
                }

                if(isset($exif["EXIF"]["FNumber"])) {
                        list($num,$den) = explode("/",$exif["EXIF"]["FNumber"]);
                        $exif_aperture  = "F/" . ($num/$den);
                }

                if(isset($exif["EXIF"]["ExposureTime"])) {
                        list($num, $den) = explode("/", $exif["EXIF"]["ExposureTime"]);
                        if ($num!=1) {
                                $exif_exposure = "{$num}s";
                        } else {
                                $den = $den/$num;
                                $exif_exposure = "1/{$den}s";
                        }
                }

                if(isset($exif["EXIF"]["FocalLength"])) {
                        list($num, $den) = explode("/", $exif["EXIF"]["FocalLength"]);
                        $exif_focallength  = ($num/$den) . "mm";
                }

                if(isset($exif["EXIF"]["FocalLengthIn35mmFilm"])) {
                        $exif_focallength35 = $exif["EXIF"]["FocalLengthIn35mmFilm"];
                 }

                if(isset($exif["EXIF"]["ISOSpeedRatings"])) {
                       $exif_iso = $exif["EXIF"]["ISOSpeedRatings"];
                }
                if(isset($exif["EXIF"]["WhiteBalance"])) {
                        switch($exif["EXIF"]["WhiteBalance"]) {
                                case 0:
                                        $exif_whitebalance = "Auto";
                                        break;
                                case 1:
                                        $exif_whitebalance = "Daylight";
                                        break;
                                case 2:
                                        $exif_whitebalance = "Fluorescent";
                                        break;
                                case 3:
                                        $exif_whitebalance = "Incandescent";
                                        break;
                                case 4:
                                        $exif_whitebalance = "Flash";
                                        break;
                                case 9:
                                        $exif_whitebalance = "Fine Weather";
                                        break;
                                case 10:
                                        $exif_whitebalance = "Cloudy";
                                        break;
                                case 11:
                                        $exif_whitebalance = "Shade";
                                        break;
                                default:
                                        $exif_whitebalance = "";
                                        break;
                        }

                }
                if(isset($exif["EXIF"]["Flash"])) {
                        $exif_flash = (bindec($exif["EXIF"]["Flash"]) ? "On" : "Off");
                }
                 if(isset($exif["IFD0"]["Make"]) && isset($exif["IFD0"]["Model"])) {
                        $exif_make = ucwords(strtolower($exif["IFD0"]["Make"]));
                        $exif_model = ucwords($exif["IFD0"]["Model"]);
                }



        }


	$block_array += array(
			'FOCAL'	        	=> $exif_focallength,
			'ISO'      			=> $exif_iso,
			'APERTURE'			=> $exif_aperture,
			'EXPOSURE'		    => $exif_exposure,
			'WHITEB'			=> $exif_whitebalance,
			'FLASH'		    	=> $exif_flash,
   			'BUILT'		    	=> $exif_make,
   			'MODEL'		    	=> $exif_model,
   
		);
     
     // Versuch exif auszulesen -ENDE-
Und ergänze die attachment.html mit z.B.

Code: Alles auswählen

<dd>-->ISO: {_file.ISO}<--</dd>
<dd>-->Brennweite: {_file.FOCAL}<--</dd>
<dd>-->Blende: {_file.APERTURE}<--</dd>
<dd>-->Zeit: {_file.EXPOSURE}<--</dd>
<dd>-->WB: {_file.WHITEB}<--</dd>
<dd>-->Blitz: {_file.FLASH}<--</dd>
<dd>-->Hersteller: {_file.MAKE}<--</dd>
<dd>-->Modell: {_file.MODEL}<--</dd>

zwischen

Code: Alles auswählen

<!-- IF _file.S_IMAGE -->
		<dl class="file">

			<dt class="attach-image"><img src="{_file.U_INLINE_LINK}" alt="{_file.DOWNLOAD_NAME}"  /></dt>

			<!-- IF _file.COMMENT --><dd><em>{_file.COMMENT}</em></dd><!-- ENDIF -->
			<dd>{_file.DOWNLOAD_NAME} ({_file.FILESIZE} {_file.SIZE_LANG}) {_file.L_DOWNLOAD_COUNT}</dd>
und

Code: Alles auswählen

		</dl>
		<!-- ENDIF -->
Wie gesagt - es ist laienhaft. Vielleicht sollte das auslesen der Daten schon beim Upload passieren und die entsprechenden Daten in der DB gespeichert werden. Da ich davon noch weniger Ahnung habe als von PHP ist dies aber eine einfache unkomplizierte Lösung.
Schönen Gruß,
Dirk
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Ich finde es überhaupt erstmal genial, das du das hinbekommen hast :grin:
Das Dee
Mitglied
Beiträge: 13
Registriert: 17.06.2008 13:55

Beitrag von Das Dee »

... ich arbeite erst seid vorgestern mit phpbb ...

Es hat mich den halben Tag gekostet um rauszufinden, wo die Variablen liegen.

Der Rest hat sich dann von allein ergeben - war ja nur copy&paste.
Schönen Gruß,
Dirk
Das Dee
Mitglied
Beiträge: 13
Registriert: 17.06.2008 13:55

Beitrag von Das Dee »

Es gibt noch das eine oder andere Problem.

Flash -> zeigt On an obwohl ausgeschaltet
$exif_focallength35 -> braucht (glaub ich) kein Mensch

Wenn man die attachment.html mit einer Tabelle ausstattet (und ohne Theme CSS arbeitet) und der entsprechende Wert leer ist, wird die Tabelle zerschossen. Die Werte sollten also mit z.B. "nicht verfügbar" gefüllt werden...

Z.Z. sieht es so aus:

KLICK (Link nur vorläufig nutzbar)

Man sagte mir das aus den Schnipseln wohl besser ein Mod gemacht werden sollte - wer also Lust hat meine vorhandenen Schnipsel zu verarbeiten - bitte :wink:
Schönen Gruß,
Dirk
Antworten

Zurück zu „[3.0.x] Mod Suche/Anfragen“