imagemagick PHP installiert?

Fragen rund um PHP,HTML,CSS und MySQL

imagemagick PHP installiert?

Beitragvon Cheffchen » 5. Okt 2011, 20:58

Hallo Profis,

mein Provider sagt "ImageMagick schon auf den Webhostings vorinstalliert" aber finde nichts in der phpinfo() und weiss auch nicht so richtig wie ich das Testen kann, da dies mein erster imagemagick versuch ist.

Alles was ich im internet gefunden habe funktioniert nicht. zb das was im gleichen ordner ist wie das jpg
Code: Alles auswählen
<?php

#phpinfo();

header('Content-type: image/jpeg');
$image = new Imagick('s1.jpg');
$image->thumbnailImage(100, 0);
echo $image;

?>
angezeigt wird nur das iim FF "Die Grafik "http://XXXX.de/1.php" kann nicht angezeigt werden, weil sie Fehler enthält."

Wie kann ich das Testen oder was mach ich falsch oder ist das gar nicht installiert?

Cheffchen
Benutzeravatar
Cheffchen
 
Beiträge: 1129
Registriert: 3. Mär 2009, 12:51
Wohnort: Berlin

Re: imagemagick PHP installiert?

Beitragvon Markus.Staab » 6. Okt 2011, 09:34

Hi,

änder mal den content-type auf "text/plain" dann kannst du schauen ob irgendwo zwischen dem Zeichengemüse eine Fehlermeldung mit drinn ist.

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Re: imagemagick PHP installiert?

Beitragvon Skerbis » 6. Okt 2011, 14:24

Lass mal das Echo raus und ersetze es mal durch

$image->writeImage('thumb.jpg');

ruf dann mal die thumb.jpg auf.
Dann kannst Du sehen ob aus deiner S1 ein Thumb erstellt wird.


Das Skript das du verwenden möchtest arbeitet mit php-pdo ImageMagick … dies ist meist nicht installiert.
Normalerweise muss man "convert" mittels system oder excec aufrufen.
Beispiel:
Code: Alles auswählen
<?
system("convert -background yellow -page 200x50 text:- image.jpg");
?>


Andernfalls bitte den Provider php-pdo ImageMagick zu installieren.
Dieses sollte dann auch in der phpinfo auftauchen.
----------------------
Werbeagentur KLXM Crossmedia
die Kommunikationsagentur vom linken Niederrhein
http://www.klxm.de
Skerbis
 
Beiträge: 889
Registriert: 4. Aug 2006, 13:06
Wohnort: Rheinberg

Re: imagemagick PHP installiert?

Beitragvon Cheffchen » 6. Okt 2011, 17:13

Hallo,

danke für eure Hilfe.
@Skerbis: das mit system oder excec hat es gebracht.
jetzt muss ich bloss noch schauen wie ich damit aus einer PDF ein tumb hin bekomme und ein kleines cache-system das nicht unnötig serverlast entsteht :O).

@Markus.Staab: text/plain, kamm nichts leere Seite aber egal excec funzt jetzt.

ps: zum glück habe ich auch Speicher bei vernünftigen hostern (GN2), denn da wo ich bis jetzt alles versucht habe und der Hoster mir zugesagt hat "na klar haben wir" funzt nichts.

Cheffchen
Benutzeravatar
Cheffchen
 
Beiträge: 1129
Registriert: 3. Mär 2009, 12:51
Wohnort: Berlin

Re: imagemagick PHP installiert?

Beitragvon Skerbis » 7. Okt 2011, 09:14

Hier eine kleine Hilfe. Diese Lösung in abgewandelter Form nutze ich in einem Download-Modul
Das ICC-Profil sollte sich an der Stelle befinden wo das Skript ausgeführt wird.
Du erhälst es hier: http://www.adobe.com/support/downloads/ ... ftpID=3680
Als Chaching-Lösung prüfe ich einfach ob für das PDF bereits ein Thumb angelegt wurde.
Das kann man sicher noch verfeinern.

Viel Spaß. Bin auf Dein Ergebnis gespannt, falls Du es öffenlich machen willst.

Code: Alles auswählen
<?php
// pdf-preview 01 snippet
// Thomas Skerbis
// 11.11.2010

$path_parts = pathinfo("files/testx.pdf");
$ifilename = $path_parts["filename"];
echo "<br/>Dateiname:".$ifilename."<br/>";
$filename = $ifilename.'_thumb.png';

// Prüfen ob Thumb schon angelegt zu dieser Datei
if (file_exists('files/'.$filename)) {
// evtl. Ausgabe Fehlermeldung zum testen
print "Die Datei $filename existiert bereits <br/>";
}
else
{
// Erstellen des Thumbs
system("convert -antialias -colorspace rgb -filter triangle -quality 100 -resize 300x -profile AppleRGB.icc files/$ifilename.pdf[0] files/$filename");
}
// Ausgabe der Datei
echo '<img name="" src="files/'.$filename.'"  alt="" />';
?>
----------------------
Werbeagentur KLXM Crossmedia
die Kommunikationsagentur vom linken Niederrhein
http://www.klxm.de
Skerbis
 
Beiträge: 889
Registriert: 4. Aug 2006, 13:06
Wohnort: Rheinberg

Re: imagemagick PHP installiert?

Beitragvon Cheffchen » 7. Okt 2011, 10:33

Hallo Skerbis,

Danke für den Beispielcode.
Das mit dem ICC-Profil war mir neu.
ein zwei system() variable waren mir auch noch neu, wie gesagt mein erster versuch.

Das caching ist als grundgerüst OK, ich habe da aber noch Filealter mit dabei da auch einige PDFs öfters geändert werden.
Klar stelle ich das rein, ist zwar nicht expiziet für Redaxo aber als gerüst oder Idee ist das vielleicht OK.

Cheffchen
Benutzeravatar
Cheffchen
 
Beiträge: 1129
Registriert: 3. Mär 2009, 12:51
Wohnort: Berlin

Re: imagemagick PHP installiert?

Beitragvon Cheffchen » 7. Okt 2011, 14:00

Hier nun meins, ist eigentlich wie deins nur das halt upload zeit der Datei mit gespeichert wird falls die datei mal getauscht wird.
mehr wollt ich nicht aber mal schauen wenn ich luft habe mach ich vielleicht noch spielerein rein wie Spiegel oder Stempel :O)

Code: Alles auswählen
// Die PDF wo temp erstellt werden soll
// kann auch anderes Format sein gif/jpg/png ...
$filename="s1.pdf";
// temp Dateiname erstellen für exist prüfung und bei nö Datei erstellung
// update zeit der PDF wird im namen gespeichert 20111007-134806_s1.pdf.jpg
$filename_temp= date("Ymd-His", filemtime($filename))."_".$filename.".jpg";
// ob temp schon vorhanden
if (!file_exists('temp_thumb/'.$filename_temp)) {
         // Erstellen die temp jpg datei
   system("convert -antialias -colorspace rgb -filter triangle -quality 90 -resize 200x200 {$filename}[0] temp_thumb/{$filename_temp}");
   }
// Ausgabe der Datei
echo "<img  src='temp_thumb/{$filename_temp}' >";


Cheffchen
Benutzeravatar
Cheffchen
 
Beiträge: 1129
Registriert: 3. Mär 2009, 12:51
Wohnort: Berlin

Re: imagemagick PHP installiert?

Beitragvon Skerbis » 7. Okt 2011, 21:07

Die Lösung mit ICC-Profil macht Sinn, falls die eingebetteten Bilder im CMYK-Format vorliegen.
Danke für Deinen Code.
$filename_temp ist evtl. nicht erforderlich.
Versuchsmal mit:
filemtime und filectime

Siehe:
http://www.php.net/manual/de/function.filectime.php
http://www.php.net/manual/de/function.filemtime.php

Dann können die Thumbs "schönere" Namen erhalten :)
----------------------
Werbeagentur KLXM Crossmedia
die Kommunikationsagentur vom linken Niederrhein
http://www.klxm.de
Skerbis
 
Beiträge: 889
Registriert: 4. Aug 2006, 13:06
Wohnort: Rheinberg


Zurück zu PHP/HTML/CSS/MySQL

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste