[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Media Manager: Bildgrößen auslesen
Seite 1 von 1

Media Manager: Bildgrößen auslesen

Verfasst: 4. Mär 2016, 16:48
von jimhein
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

Re: Media Manager: Bildgrößen auslesen

Verfasst: 4. Mär 2016, 20:07
von Markus.Staab

Re: Media Manager: Bildgrößen auslesen

Verfasst: 4. Mär 2016, 21:11
von jimhein
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?

Re: Media Manager: Bildgrößen auslesen

Verfasst: 4. Mär 2016, 23:16
von Markus.Staab
Hier siehst du wie der media mnager aus der url das managed_media generiert
https://github.com/redaxo/redaxo/blob/m ... r.php#L237

Re: Media Manager: Bildgrößen auslesen

Verfasst: 8. Mär 2016, 18:43
von netmanix
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.

Re: Media Manager: Bildgrößen auslesen

Verfasst: 20. Mai 2016, 10:53
von zoeller
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.

Re: Media Manager: Bildgrößen auslesen

Verfasst: 21. Mai 2016, 10:45
von jimhein
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);

}


Re: Media Manager: Bildgrößen auslesen

Verfasst: 21. Mai 2016, 15:26
von ds
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.

Re: Media Manager: Bildgrößen auslesen

Verfasst: 23. Mai 2016, 19:11
von ds

Re: Media Manager: Bildgrößen auslesen

Verfasst: 29. Jun 2016, 11:05
von ds
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.

Re: Media Manager: Bildgrößen auslesen

Verfasst: 12. Nov 2016, 23:56
von Tobias Krais
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