Zum Inhalt springen

Frage zu jm_gallery

Erstellt am 12. Januar 2006 · 113 Antworten · letzte Antwort am 28. März 2008 · Seite 3 von 6

Tags: Bilder, Frage

laufkraft ·

Hi...

Ich sehe auch keine Vorschaubilder,
habe auch die Debug-Ausgabe:

Imagemagick: 1
Path To Imagemagick: /usr/local/bin/
Does convert exist in this directory?: No
Checking for IM in different directory, found: /usr/local/bin/convert
IM command for resizing: 
/usr/local/bin/convert -geometry 30x27! -quality 70 "typo3/gfx/icon_ok.gif" "typo3temp/test.jpg"
Did it work?: Failed
Error message from IM:
GDlib Version: bundled (2.0.28 compatible)
Imagemagick Version:

Aber im Installtool wird IM in genau diesem Verzeichnis erkannt und funktioniert auch,

ABER: Ich bekomme noch folgende Meldungen (über meiner eigentlichen Webseite):

Warning: shell_exec() has been disabled for security reasons in /home/www/ph2s773/html/typo3/typo3/ext/jm_gallery/pi1/class.tx_jmgallery_pi1.php on line 842

Warning: shell_exec() has been disabled for security reasons in /home/www/ph2s773/html/typo3/typo3/ext/jm_gallery/pi1/class.tx_jmgallery_pi1.php on line 173

Warning: Cannot modify header information - headers already sent by (output started at /home/www/ph2s773/html/typo3/typo3/ext/jm_gallery/pi1/class.tx_jmgallery_pi1.php:842) in /home/www/ph2s773/html/typo3/tslib/class.tslib_fe.php on line 2614

Was ist denn da los?

m00re ·

Hi!

Okay, das Problem liegt in der Deaktivierung von shell_exec() in PHP (safe_mode on). Ändere in der class.tx_jmgallery_pi1.php die Funktion "resizeImage()" wie folgt ab:

function resizeImage($width, $height, $quality, $source, $target) {
        $gfxObj = t3lib_div::makeInstance("t3lib_stdgraphic");
        if ($GLOBALS['TYPO3_CONF_VARS']['GFX']['im'] == 1) {

            $stdGraphic = t3lib_div::makeInstance("t3lib_stdGraphic");
            $info = $stdGraphic->getImageDimensions($source);
            $options = array();
            $options["maxH"] = $height;
            $options["maxW"] = $width;
            $data = $stdGraphic->getImageScale($info, $width."m", $height."m", $options);    
            
            $params = '-geometry '.$data[0].'x'.$data[1].'! -quality '.$quality.' ';
            $cmd = t3lib_div::imageMagickCommand('convert', $params.' "'.$source.'" "'.$target.'"');
            
            $im = array();
            $im["string"] = $cmd;
            $im["error"] = exec($cmd.' 2>&1');
            return $im;
        } else {
            // Get new dimensions
            list($width_orig, $height_orig) = getimagesize($source);
            
            if ($width && ($width_orig < $height_orig)) {
               $width = ($height / $height_orig) * $width_orig;
            } else {
               $height = ($width / $width_orig) * $height_orig;
            }
            
            // Resample
            $image_p = imagecreatetruecolor($width, $height);
            $image = imagecreatefromjpeg($source);
            imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
            
            // Output
            imagejpeg($image_p, $target, $quality);
        }
    }

Ebenso für die generateCover() Methode

function generateCover($cover, $album, $properties) {
        $input = $album["default_dir"]."/".$cover["filename"];
        $output = $album["default_dir"]."/covers/".$this->conf["properties_pid"]."_".$cover["filename"];
        $this->checkDir($album["default_dir"]."/covers");
        
        if ($this->conf["coverEffectEnable"]) {
            
            if ($GLOBALS['TYPO3_CONF_VARS']['GFX']['im'] == 1) {
                
                $stdGraphic = t3lib_div::makeInstance("t3lib_stdGraphic");
                $info = $stdGraphic->getImageDimensions($input);
                $options = array();
                $options["maxH"] = $this->conf["cover."]["maxHeight"];
                $options["maxW"] = $this->conf["cover."]["maxWidth"];
                $data = $stdGraphic->getImageScale($info, $width."m", $height."m", $options);
            
                $dimension = $data[0].'x'.$data[1];
                
                $params = str_replace("###DIMENSION###", $dimension, $this->conf["cover."]["effect"]);
                $params = str_replace("###SOURCE###", '"'.$input.'"', $params);
                $params = str_replace("###TARGET###", '"'.$output.'"', $params);
                $cmd = rtrim($GLOBALS['TYPO3_CONF_VARS']['GFX']['im_path'],'/')."/convert ".$params; 
                
                $im = array();
                $im["string"] = $cmd;
                $im["error"] = exec($cmd.' 2>&1');
                return $im;
            } else {
                return null;
            }
        } else {
            return $this->resizeImage($this->conf["cover."]["maxWidth"], $this->conf["cover."]["maxHeight"], $this->conf["cover."]["quality"], $input, $output);
        }
    }

Anmerkung: Geändert wurde nur der IM-Aufruf von shell_exec(...) nach exec(...).

Gruß Jens

laufkraft ·

Guten morgen Jens,

hab es geänder, aber nur mit wenig Erfolg:

Imagemagick: 1
Path To Imagemagick: /usr/local/bin/
Does convert exist in this directory?: No
Checking for IM in different directory, found: /usr/local/bin/convert
IM command for resizing: 
/usr/local/bin/convert -geometry 30x27! -quality 70 "typo3/gfx/icon_ok.gif" "typo3temp/test.jpg"
Did it work?: Successful
Error message from IM:
GDlib Version: bundled (2.0.28 compatible)
Imagemagick Version:

Bilder erscheinen keine und es kommt noch diese Meldung oben in der Website:

Warning: shell_exec() has been disabled for security reasons in /home/www/ph2s773/html/typo3/typo3/ext/jm_gallery/pi1/class.tx_jmgallery_pi1.php on line 173

Warning: Cannot modify header information - headers already sent by (output started at /home/www/ph2s773/html/typo3/typo3/ext/jm_gallery/pi1/class.tx_jmgallery_pi1.php:173) in /home/www/ph2s773/html/typo3/tslib/class.tslib_fe.php on line 2614

schonmal Danke im Voraus!
Oli

laufkraft ·

...
habe nun die schell_exec() Meldungen weg, war noch eine Zeile zu editieren:

$convert = exec($GLOBALS['TYPO3_CONF_VARS']['GFX']['im_path']."convert -version");

Aber ich sehe nur an einer Stelle ein Bild, nämlich in der Administration, wo ich ein Einzelbild editieren kann, sonst keine Bilder zu sehn...

Liegt das noch daran:

Imagemagick: 1
Path To Imagemagick: /usr/local/bin/
Does convert exist in this directory?: No
Checking for IM in different directory, found: /usr/local/bin/convert
IM command for resizing: 
/usr/local/bin/convert -geometry 30x27! -quality 70 "typo3/gfx/icon_ok.gif" "typo3temp/test.jpg"
Did it work?: Successful
Error message from IM:
GDlib Version: bundled (2.0.28 compatible)
Imagemagick Version:

😉

foppaxl ·

Hallo Jens,
folgendes Problem tritt bei mir gerade auf:
Ich synchronisiere und erstelle die thumbs, singles etc.
Will ich mir das Album dann anschauen, sehe ich zwar die thumbs und auch das cover, die singles jedoch nicht.
Obwohl sie erstellt und abgelegt wurden im Ordner Singles, versucht die Extension sie im Ordner 89_singles (den es nicht gibt) zu laden.
Woran kann denn das liegen?

Danke,
Heiko

joegi ·

Morgen zusammen
hatte die Gallery unter V3.8 am laufen und hat bestens funktioniert.
Nach dem update auf 4.0 ist jetzt alles leer. Habe Extensin bereits neu aus dem ter installiert aber leider ohne Erfolg.
wer weiss weiter?

Stephan_Cordes ·

Hallo,
ich habe beobachtet, dass jm_gallery in einigen Browswen nicht richtig funktioniert.
Unter Linux im Firefox muss die Seite immer wieder neu geladen werden, damit überhaupt irgend etwas zu sehen ist.
In Opera werden keine Bilder angezeigt, sindern nur ein kleines Kästchen mit dem Text "Bild".
In anderen Browsern scheint es zu funktionieren.

Woran kann das liegen?
Ist das ein Bug, oder habe ich etwas falsch gemacht?

Viele Grüsse
Stephan

kulli ·

Moin

Ich bin gerade am experimentiern mit jm_gallery, haut soweit auch alles hin.
Jetzt wollte ich "generate polaroid like covers" test und bekomme es nicht hin #angry#

Ohne den Zusatz im Constant Bereich wurde das ausgewählte Cover angezeigt, wenn ich aber den Code aus der Anleitung dazunehme und das ganze "aktualisiere" wird nur ein Link angezeigt, so als hätte ich kein Cover ausgewählt.

Code im CONSTANT Bereich:

# to generate polaroid like covers
plugin.tx_jmgallery_pi1 {
    coverEffectEnable = 1
    cover.effect = ###SOURCE### -thumbnail '###DIMENSION###>' -bordercolor white -border 6 -bordercolor grey60 -border 1 -background none -rotate -9 -background black \( +clone -shadow 60x4+4+4 \) +swap -background '#3c3c3c' -flatten -quality 100 ###TARGET###
}

maxHeight & Width sind über den Constant-Editor festgelegt worden und auch übernommen worden.

Der DEBUG gibt folgendes aus:

# magemagick: 1
# Path To Imagemagick: /usr/bin/
# Does convert exist in this directory?: No
# Checking for IM in different directory, found: /usr/bin/convert
# IM command for resizing:
/usr/bin/convert -geometry 30x27! -quality 70 "typo3/gfx/icon_ok.gif" "typo3temp/test.jpg"
# Did it work?: Successful
# Error message from IM:
# GDlib Version: 2.0 or higher
# Imagemagick Version:
Version: ImageMagick 6.0.6 01/28/06 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2004 ImageMagick Studio LLC

warscheinlich habe ich da einen ganz doofen Denkfehler drin, aber bitte stozt mich da mal mit der Nase drauf.

Ich bin mir nicht ganz sicher was ich jetzt mit den Platzhaltern anfagen soll, bleiben die so oder muß ich das Template noch anpassen - dann könnte ich den Fehler gefunden haben, da habe ich jetzt nix geändert.

Gruß
Kulli

m00re ·
foppaxl schrieb

Hallo Jens,
folgendes Problem tritt bei mir gerade auf:
Ich synchronisiere und erstelle die thumbs, singles etc.
Will ich mir das Album dann anschauen, sehe ich zwar die thumbs und auch das cover, die singles jedoch nicht.
Obwohl sie erstellt und abgelegt wurden im Ordner Singles, versucht die Extension sie im Ordner 89_singles (den es nicht gibt) zu laden.
Woran kann denn das liegen?

Danke,
Heiko

Hi!

Du hast noch Album Properties auf deiner Seite 89 gespeichert. Am besten definiert ihr KEINE thumbnail/single Settings im Admin Frontend. D.h., du löschst am besten alle Album Propertie Records auf Seite 89, setzt deine Single/Thumbnail Einstellungen per TS Constants und Synchronisierst nochmal neu.

Gruß Jens

m00re ·
joegi schrieb

Morgen zusammen
hatte die Gallery unter V3.8 am laufen und hat bestens funktioniert.
Nach dem update auf 4.0 ist jetzt alles leer. Habe Extensin bereits neu aus dem ter installiert aber leider ohne Erfolg.
wer weiss weiter?

Unter Typo3 4.0 habe ich die Extension noch nicht getestet. Du bist aber nicht der erste der mir von Problemen in Verbindung mit T3 4.0 berichtet. Da musst du leider noch auf die nächste Version warten.

Gruß Jens

m00re ·
Stephan_Cordes schrieb

Hallo,
ich habe beobachtet, dass jm_gallery in einigen Browswen nicht richtig funktioniert.
Unter Linux im Firefox muss die Seite immer wieder neu geladen werden, damit überhaupt irgend etwas zu sehen ist.
In Opera werden keine Bilder angezeigt, sindern nur ein kleines Kästchen mit dem Text "Bild".
In anderen Browsern scheint es zu funktionieren.

Woran kann das liegen?
Ist das ein Bug, oder habe ich etwas falsch gemacht?

Viele Grüsse
Stephan

Da du der erste bist der von solchen Phänomenen erzählt, tippe ich mal dass du etwas falsch gemacht hast. Da ich jetzt nichts über dein Setup weiß, verweise ich einfach mal auf mein Tutorial Video unter http://blog.m00re.de/fileadmin/blog.m00re.de/uploads/jm_gallery-setup-tutorial.avi

kulli schrieb

Moin

Ich bin gerade am experimentiern mit jm_gallery, haut soweit auch alles hin.
Jetzt wollte ich "generate polaroid like covers" test und bekomme es nicht hin #angry#

Ohne den Zusatz im Constant Bereich wurde das ausgewählte Cover angezeigt, wenn ich aber den Code aus der Anleitung dazunehme und das ganze "aktualisiere" wird nur ein Link angezeigt, so als hätte ich kein Cover ausgewählt.

Hi!

Also mit deiner Imagemagick Version (6.0.6) geht dieser Effekt sowieso nicht (steht aber glaub auch im Manual drin). D.h. das Cover wird nicht generiert, da Imagemagick abbricht mit einer Fehlermeldung.

Bezüglich der Covers hier ein Auszug aus 2 eMails:

Also die Platzhalter ###SOURCE###, ###DIMENSION### und ###TARGET### sind
Platzhalter für mein Script. An diesen Stellen werden das Originalbild,
die maximale Coverbreite/Coverhöhe und die Zieldatei gesetzt.

Beispiel:

cover.effect = ###SOURCE### -thumbnail '###DIMENSION###>' -bordercolor
white -border 6 -bordercolor grey60 -border 1 -background none -rotate
-9 -background black \( +clone -shadow 60x4+4+4 \) +swap -background
'#3c3c3c' -flatten -quality 100 ###TARGET###

Wird als Cover nun die Datei "xyz.jpg" gewählt (die sich im Ordner
fileadmin/gallery/album/ befindet), dann wird aus dem Kommando oben
folgendes Kommando:

"fileadmin/gallery/album/xyz.jpg -thumbnail '300x300>' -bordercolor
white -border 6 -bordercolor grey60 -border 1 -background none -rotate
-9 -background black \( +clone -shadow 60x4+4+4 \) +swap -background
'#3c3c3c' -flatten -quality 100 fileadmin/gallery/album/covers/xyz.jpg"

Ich hoffe das ist verständlich 😉 Wenn nicht, melde dich einfach
nochmal.

[...Antwort...]

Ich glaube du hast mich missverstanden. Du ersetzt in dienem TS nicht
die Marker ###SOURCE### ###TARGET### usw... das macht meine Extension
automatisch. Sprich, wenn du einfach nur die Cover Effekte aktivierst
(plugin.tx_jmgallery_pi1.coverEffectEnable = 1) und alles andere so
lässt wie es ist, dann werden die Covers mit dem Polaroid Effekt
generiert.

Der TS Wert plugin.tx_jmgallery_pi1.cover.effect ist nur dafür gedacht,
wenn man den Effekt anpassen will, sprich ein eigenes IM-Kommando
ausführen will. Da bei einem IM-Kommando die Dimension, Quelldatei und
Zieldatei nicht immer an der gleichen Stelle stehen, kann man dafür die
Platzhalter ###SOURCE### usw. benutzen, an deren Stelle meine Extension
dann die richtigen Werte hinschreibt.

Gruß und frohe Ostern,
Jens

Gruß Jens

kulli ·
m00re schrieb

[...]
Hi!

Also mit deiner Imagemagick Version (6.0.6) geht dieser Effekt sowieso nicht (steht aber glaub auch im Manual drin). D.h. das Cover wird nicht generiert, da Imagemagick abbricht mit einer Fehlermeldung.
[...]

Gruß Jens

Moin Jens

Im Beispiel des Manuals steht:

Example: This will only work with IM6+

# to generate polaroid like covers
plugin.tx_jmgallery_pi1 {
    coverEffectEnable = 1
    cover.effect = ###SOURCE### -thumbnail '###DIMENSION###>' -bordercolor white -border 6 -bordercolor grey60 -border 1 -background none -rotate -9 -background black \( +clone -shadow 60x4+4+4 \) +swap -background '#3c3c3c' -flatten -quality 100 ###TARGET###
}

Wo ist den der Unterschied zwischen IM6+ und Imagemagick v6.0.6?

Gruß aus dem Norden
Kulli

joegi ·
m00re schrieb
joegi schrieb

Morgen zusammen
hatte die Gallery unter V3.8 am laufen und hat bestens funktioniert.
Nach dem update auf 4.0 ist jetzt alles leer. Habe Extensin bereits neu aus dem ter installiert aber leider ohne Erfolg.
wer weiss weiter?

Unter Typo3 4.0 habe ich die Extension noch nicht getestet. Du bist aber nicht der erste der mir von Problemen in Verbindung mit T3 4.0 berichtet. Da musst du leider noch auf die nächste Version warten.

Gruß Jens

Problem hat sich für mich gelöst beim Update wurden die Kategorien gelöscht habe diese neu erstellt und jetzt läufts wieder.

Danke für Deine Hilfe Jens

gruss jürg

m00re ·
kulli schrieb

Wo ist den der Unterschied zwischen IM6+ und Imagemagick v6.0.6?
Gruß aus dem Norden
Kulli

Oh, dann hab ich das falsch in Erinnerung. Tut mir Leid.

Gruß Jens

Stephan_Cordes ·

Hallo m00re,

ich habe es auf verschiedenen Rechnern ausprobiert: Unter Linux ließ sich die Galerie weder mit Firefox noch mit Opera benutzen, wenn ich Typo3 Version 4.0 benutze.
Nach einem Update von htmlArea RTE auf die Version 1.4.1 ging wieder alles.

Was hatte das damit zu tun?

Naja, hauptsache es geht wieder.

Grüße,
Stephan

Ted ·

ich hänge meine Frage mal hier an:

ich habe die aktuelle jm_gallery auf meinem Typo3 4.0 mit imagemagick 5.5.4 auf all-inkl.com installiert und zum Laufen gebracht. Jetzt würde ich gerne solche gedrehten Polaroidrahmen für die Albumvorschaubilder generieren, der TS der Docu berücksichtigt aber nur Imagemagic 6+, funktioniert folglich bei mir nicht, wenn der TS-Code aus der Docu läuft wird gar kein Albumvorschaubild gerendert, wenn ich es wieder rausnehme gehts wieder (aber ohne Effekt)...

hat jemand das passende Typoscript für Imagemagic 5.5.4 (oder 4.2.9) herausgefunden?

das kommt beim Debug heraus:

# Imagemagick: 1
# Path To Imagemagick: /usr/bin/
# Does convert exist in this directory?: Yes
# Checking for IM in different directory, found:
# IM command for resizing:
/usr/bin/convert -geometry 30x27! -quality 70 "typo3/gfx/icon_ok.gif" "typo3temp/test.jpg"
# Did it work?: Successful
# Error message from IM:
# GDlib Version: bundled (2.0.28 compatible)
# Imagemagick Version:
Version: ImageMagick 5.5.4 02/01/03 Q16 http://www.imagemagick.org Copyright: Copyright (C) 2003 ImageMagick Studio LLC

danke und Gruß,
Ted

m00re ·
Ted schrieb

ich hänge meine Frage mal hier an:

ich habe die aktuelle jm_gallery auf meinem Typo3 4.0 mit imagemagick 5.5.4 auf all-inkl.com installiert und zum Laufen gebracht. Jetzt würde ich gerne solche gedrehten Polaroidrahmen für die Albumvorschaubilder generieren, der TS der Docu berücksichtigt aber nur Imagemagic 6+, funktioniert folglich bei mir nicht, wenn der TS-Code aus der Docu läuft wird gar kein Albumvorschaubild gerendert, wenn ich es wieder rausnehme gehts wieder (aber ohne Effekt)...

hat jemand das passende Typoscript für Imagemagic 5.5.4 (oder 4.2.9) herausgefunden?

Hi Ted!

Das Problem liegt nicht bei Typo3, sondern bei Imagemagick. Der Effekt der in der Doku steht benutzt Funktionen von Imagemagick, die erst ab Imagemagick v6.2 vorhanden sind.
Du kannst jedoch jeden beliebigen Effekt (nicht nur den Polaroid-Effekt) mit Imagemagick erzeugen. Siehe dazu ein paar Beispiele unter http://www.cit.gu.edu.au/~anthony/graphics/imagick5/ oder http://www.cit.gu.edu.au/~anthony/graphics/imagick6/ (funktionieren teilweise auch unter IM5). Die komplette Übersicht alle IM Befehle gibt es hier: http://www.imagemagick.org/script/convert.php

Gruß Jens

_o3_ ·

weis nicht obs hier noch rein sollte...aber...
komischerweise wird das cover in der 0.4.2 version nur bei der admin seite angezeigt? habe mir eben das video-tutorial angesehen und alles so nachgebaut...
aber das img auf der list-ansicht bleibt leer ###COVER-URL### is nicht gefüllt?

#paralyzed#

Kaeptn Hirni ·

Hier ein paar Tipps meinerseits:

1. das alternatingRows muss auf 1 gesetzt sein. Sonst werden die Bilder eines Albums nicht angezeigt. Leider ist der 0-Wert nicht ausimplementiert... (siehe Funktion displayAlbum())

2. Ich habe es nicht mit ImageMagick zum Laufen gebracht. Workaround: In der Funktion resizeImage statt
if ($GLOBALS['TYPO3_CONF_VARS']['GFX']['im'] == 1) {
einfach
if ($GLOBALS['TYPO3_CONF_VARS']['GFX']['im'] == 123) {
schreiben, dann wird die andere Variante verwendet und nicht ImageMagick.

3. Wenn das Update der Texte zu den Bilder nicht funktioniert: Die Funktion einfach durch die folgende kleine Variation ersetzen

	function editImage() {
		
		$album = $this->HTML->getAlbumInfo ($this->_GP["albumUid"]);
		$result = $this->HTML->getImagesForAlbum ($this->_GP["albumUid"], $this->_GP["imageUid"]);
		$propertie = is_array($this->HTML->getAlbumProperties($this->_GP["albumUid"]));
		
		$template = $this->cObj->getSubpart($this->templateCode, "###ADMIN_EDIT_IMAGE###");
		
		$marks = array();
		$marks['###PAGE_ID###'] 	= $GLOBALS['TSFE']->id;
		$marks['###ALBUM_UID###'] 	= $album["uid"];
		$imageSubPart = "";
		
$neworder = array();
		while ($image = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) {
			$imageSubPart .= $this->HTML->wrapImageInHTML($template, 'IMAGE_ENTRY', $image, $album, $propertie);
			$neworder[] .= $image["uid"];
		}
		$marks['###IMAGE_LIST###']	= implode(",", $neworder);
		$template = $this->cObj->substituteMarkerArray($template, $marks);
		
		$template = $this->cObj->substituteSubPart($template, "###IMAGE_ENTRY###", $imageSubPart);
		return $template;
	}

Hierdrin wird die IMAGE_LIST anders aufgebaut.

Hoffe es hilft einigen weiter...

Grüße Hirni