[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Bildgrösse eines Typs abfagen - Image Manager v1.2.1 - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
ynamite
Beiträge: 143
Registriert: 26. Jan 2007, 14:59
Wohnort: baden
Kontaktdaten: Website

Bildgrösse eines Typs abfagen - Image Manager v1.2.1

27. Mär 2015, 16:27

Hello

kurze Frage zum Image Manager, ich bin auf der Suche nache einer Möglichkeit die Breite und Höhe eines generierten Bildes über den Image Manager abzufragen, ohne dass Bild dabei zu generieren.

EDIT:
Hab's gelöst (manchmal sollte man einfach noch etwas ausprobieren, bevor man sich im Forum bloss stellt ;)

Anyway, hab's nun so hinbekommen, keine Ahnung wieso's erst auf diesem Weg nicht geklappt hatte:

Code: Alles auswählen


$cachePath = $REX['GENERATED_PATH'] . '/files/' . 'image_manager__' . $typ . '_' . $img;
if(file_exists($cachePath)) {
	$size = getimagesize( $cachePath );
} else {
	$reximage = rex_image_manager::getImageCache($img, $type);
	$size[0] = $reximage->getWidth();
	$size[1] = $reximage->getHeight();
}
print_r($size);
Yay!

Danke trotzdem ;)
------

Ursprüngliche Frage:

Momentan mache ich das ungefähr so (wie im Redaxo Wiki beschrieben):

Code: Alles auswählen

$reximage = rex_image_manager::getImageCache($bild, $typ);
echo $reximage->getWidth() . " x " . $reximage->getHeight();
Soweit so gut. Auf einer Seite mit über 100 Bilder dauert es aber eine ganze Weile bis die Methode verarbeitet ist (teilweise bis zu 15 Sekunden). Theoretisch sollte getImageCache ja bei einem bereits gecachten Bild nicht erneut cachen, meines erachtens tut es das aber immer (oder es macht sonst noch was, was viel Zeit kostet oder mach ich was falsch? :wink: ). Sobald ich nämlich den Aufruf entferne, lädt die Website innert Millisekunden.

Sprich, gibt es eine Möglichkeit aus dem Frontend die grösse eines gecachten Bildes zu ermitteln und, falls dieses noch nicht gecached wurde, dieses zu cachen? Als Alternative würde es reichen, wenn ich die im Image Manager eingestellte Grösse über die Angabe des Typs ermitteln könnte. Ich kann mir diese MySQL Abfrage zwar selber schreiben, aber falls die Funktion bereits vorhanden ist, muss ich das nicht neu erfinden.

Ich hab auch schon versucht mir die Infos per getimagesize zu holen, aber aus dem Frontend hab ich scheinbar keinen Zugriff auf den generated Ordner. Jedenfalls hab ich das bis jetzt nicht hingekriegt (hab jetzt aber auch nicht etliche Stunden damit verplempert).

Hintergrund: ich baue z.Z. eine responsive Website wo, je nach Bildschirmgrösse, andere Bildtypen geladen werden. Das Ganze funktioniert per Media Queries bzw. window.matchmedia (sofern vorhanden), die Bilder werden also per JavaScript geladen, falls/wenn sie im Viewport ersichtlich sind (lazy load). Dazu muss ich vorab wissen wie gross die Bilder sind, zum Beispiel um das Seitenverhältnis zu berechnen.

Anfangs wollte ich mit srcset bzw. dem picture Element arbeiten, aber ich bin zum Schluss gekommen das die Umsetzung in Zusammenhang mit dem Image-Manager zu kompliziert ist (evtl. war das aber eine etwas voreilige Schlussfolgerung).
MASSIF Webdesign Studio

Zurück zu „Allgemeines [R4]“