[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Media Manager: Bildgrößen auslesen - 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/
jimhein
Beiträge: 69
Registriert: 3. Sep 2007, 11:00
Wohnort: Berlin

Media Manager: Bildgrößen auslesen

4. Mär 2016, 16:48

Besteht im Media Manager die Möglichkeit die Breite und Höhe eines Bildes/Bildtyps auszulesen?

Im Image Manager ging das ja so:

Code: Alles auswählen

$rex_image = rex_image_manager::getImageCache($rex_img_file, $rex_img_type); 
$iw = $rex_image->getWidth();  
$ih = $rex_image->getHeight(); 
Theoretisch kann ich mir das ja auch ausrechnen, aber eine Funktion ist natürlich praktischer.

lg
ingo

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

Re: Media Manager: Bildgrößen auslesen

4. Mär 2016, 20:07


jimhein
Beiträge: 69
Registriert: 3. Sep 2007, 11:00
Wohnort: Berlin

Re: Media Manager: Bildgrößen auslesen

4. Mär 2016, 21:11

Danke für den Hinweis. Aber leider stehe ich immer noch auf dem Schlauch...
Die Maße des Originals lassen sich wie folgt auslesen:

Code: Alles auswählen

$image = rex_media::get( $bildname );
$iw = $image->getWidth();
$ih = $image->getHeight();
Mir ist aber nicht klar wie ich der rex_managed_media Klasse mitteile von welchem Bildnamen und Mediatyp sie mir die Breite liefern soll:

Code: Alles auswählen

$managed_image = rex_managed_media::get($filename, $mediatype);
$iw = $managed_image->getImageWidth();
Soweit meine zusammengereimte Theorie, die natürlich leicht zu widerlegen war, da es die Funktion get in dieser Klasse gar nicht gibt...

Hat noch jemand einen Wink mit dem Zaunpfahl für mich?

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

Re: Media Manager: Bildgrößen auslesen

4. Mär 2016, 23:16

Hier siehst du wie der media mnager aus der url das managed_media generiert
https://github.com/redaxo/redaxo/blob/m ... r.php#L237

netmanix

Re: Media Manager: Bildgrößen auslesen

8. Mär 2016, 18:43

Kann das jemand erklären für mich erklären? Ich kenne mich mit diesen Klassen und Funktionen nicht aus.
Stehe gerade vor dem gleichen Problem.
Wie erzeuge ich ein Media-Manager-Bild direkt in PHP, ohne dass die URL aufgerufen werden muss. Damit ich die Größen des Bildes erhalte. Ich brauche die Maße für eine Collage.

zoeller
Beiträge: 1
Registriert: 19. Mai 2016, 11:45

Re: Media Manager: Bildgrößen auslesen

20. Mai 2016, 10:53

Hallo netmanix, Hallo jimhein,
also ich komme hier auch nicht weiter. Habt ihr eine Lösung gefunden die ihr posten könnt? Das wäre super.

jimhein
Beiträge: 69
Registriert: 3. Sep 2007, 11:00
Wohnort: Berlin

Re: Media Manager: Bildgrößen auslesen

21. Mai 2016, 10:45

leider habe ich das bislang auch mit den hinweisen von markus nicht hinbekommen
:oops:
stattdessen rechne ich mir den benötigten wert immer aus.
im folgenden beispiel erzeugt der media manager bilder mit einer fixen breite:

Code: Alles auswählen


$imgWidth = 600;

$image = rex_media::get( $value );
if ( $image instanceof rex_media && $image->isImage() ) {
     $origImgWidth  = $image->getWidth();
     $origImgHeight = $image->getHeight();

     $imgHeight	      = ceil(($origImgHeight * $imgWidth)/$origImgWidth);

}


Benutzeravatar
ds
Admin
Beiträge: 247
Registriert: 10. Okt 2006, 22:58
Wohnort: Berlin
Kontaktdaten: Website

Re: Media Manager: Bildgrößen auslesen

21. Mai 2016, 15:26

Ich habe das Gefühl, im aktuellen Setup ist es mit Hausmitteln nicht möglich, auf das generierte Bild zuzugreifen und dessen Bildmaße auszulesen. Zum einen scheint es kein Return des Thumbnails zu geben, sondern nur eine direkte Ausgabe, zum anderen endet rex_media_manager->sendMedia() mit exit. Und irgendwie hatte ich gerade auch Problem mit protected bei rex_media_manager->applyEffects(), aber das kann auch an mir gelegen haben :?

@Markus, @Gregor, @Jan, vielleicht könnt ihr einen Blick drauf werfen? Vielleicht sollte es wie in R4 eine Methode dafür geben, das generierte Bild zurückzugeben.

Benutzeravatar
ds
Admin
Beiträge: 247
Registriert: 10. Okt 2006, 22:58
Wohnort: Berlin
Kontaktdaten: Website

Re: Media Manager: Bildgrößen auslesen

23. Mai 2016, 19:11


Benutzeravatar
ds
Admin
Beiträge: 247
Registriert: 10. Okt 2006, 22:58
Wohnort: Berlin
Kontaktdaten: Website

Re: Media Manager: Bildgrößen auslesen

29. Jun 2016, 11:05

Alle Beteiligten/Interessierten: Lest bitte die Diskussion bei Github und gebt ggfls Feedback. Ich würde ein WONTFIX vorschlagen, wenn niemand ernsthaft die Funktionalität benötigt.

Tobias Krais
Beiträge: 500
Registriert: 2. Okt 2006, 23:16
Wohnort: Lörrach
Kontaktdaten: Website

Re: Media Manager: Bildgrößen auslesen

12. Nov 2016, 23:56

Hi,

so was geht, aber du musst die Methode

Code: Alles auswählen

rex_media_manager->applyEffects($type)
von protected auf public ändern. Hier dann die Lösung:

Code: Alles auswählen

$media = new rex_managed_media(rex_path::media($pic));
$media_manager = new rex_media_manager($media);
$media_manager->setCachePath(rex_path::addonCache("media_manager"));
// ApplyEffects is only protected!!
$media_manager->applyEffects($this->provider->media_manager_type);
// Read height:
$media->getImageHeight()
// Read width:
$media->getImageWidth()
// Generate Cached File:
if($media_manager->isCached() == FALSE) {
	ob_start();
	$media->sendMedia($media_manager->getCacheFilename(), $media_manager->getHeaderCacheFilename(), TRUE);
	ob_end_clean();
}
// Get cache filename:
$media_manager->getCacheFilename()
BITTE macht den Bug nicht auf WONTFIX. Wie im Bug erklärt brauche ich die Funktion applyEffects() unbedingt auf public und damit ist der Wunsch von recht vielen nach der Breite und Höhe der Bilder erfüllt. BITTE!

Grüße,

Tobi

Zurück zu „AddOns / Packages [R5]“