ImageMagick

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Chrissi007
Mitglied
Beiträge: 114
Registriert: 08.02.2003 12:43
Kontaktdaten:

ImageMagick

Beitrag von Chrissi007 »

Hi,

Die Frage hat zwar jetzt nicht direkt mit php zu tun, aber Ich hoffe dass ihr mir trotzdem weiterhelfen könnt :D

Also Ich würde gerne einen eigenen Script schreiben um Bilder zu verkleinern. Ich hab ein bisschen gegoogelt und schonmal was ganz nützliches gefunden: http://www.uni-koeln.de/themen/Graphik/ ... nvert.html

Nur versteh Ich jetzt nicht genau wie Ich das ganze in ein php Script implementieren muss.

Könnte das vielleicht jemand anhand eines Beispiels erklären? Vor allen Dingen wo muss die Pfadangabe zu ImageMagick hin? :)

bild1.jpg wird in das Verzeichnis /images hochgeladen und ein Thumbnail, bild1_small.jpg (mit bsp. 150*150px), soll im selben Verzeichnis abgespeichert werden.
Gruß, Chrissi :D
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Wenn ImageMagick als Binaries installiert ist, kannst Du die Programme mit system aufrufen.

Oder Du installierst gleich die Modul-Variante.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Chrissi007
Mitglied
Beiträge: 114
Registriert: 08.02.2003 12:43
Kontaktdaten:

Beitrag von Chrissi007 »

Bin bei all-inkl.
Da ist das standardmäßig vorinstalliert. Ich glaub als Modul :)

php Info: www.chrissi007.de/phpinfo.php

Also mein Problem is eher wie Ich ImageMagick sagen kann, dass es ein Bild verkleinern soll.
Gruß, Chrissi :D
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Chrissi007
Mitglied
Beiträge: 114
Registriert: 08.02.2003 12:43
Kontaktdaten:

Beitrag von Chrissi007 »

Hmm aber wo muss Ich die "convert"-Zeile einfügen? *g* :)



Weil so kann's ja nicht stimmen: ;)

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
convert test.jpg -resize 20x20 -newimage.jpg
</body>
</html>
Gruß, Chrissi :D
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag von Jensemann »

itst hat geschrieben:Wenn ImageMagick als Binaries installiert ist, kannst Du die Programme mit system aufrufen.
Bei system() aber ganz vorsichtig sein keine usereingabe mit zu übergeben, generell ist die gefahr durch system() so groß das man davon abraten sollte.
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Nunja, das ist bei jeder Aktion so, ob Backticks oder system().

Aber Jens hat schon recht.

@Chrissi: http://de3.php.net/system
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag von Jensemann »

itst hat geschrieben:Nunja, das ist bei jeder Aktion so, ob Backticks oder system().
deshalb nutzt man beides nicht. sondern nutzt etwas das die argumente etwa als array und nich in shell form annimmt, also etwas das keine shell ausführt.

in c würde ich fork() und dann eine der exec() calls nehmen, aber PHP schockiert mich grade, es gibt ja nur funktionen die ne shell ausführen. Also immer http://de2.php.net/manual/de/function.e ... ellcmd.php verwenden.
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Bzw. keine Benutzereingaben direkt benutzen.

Im Fall eines Resize brauchts ja nicht viel, nur den Dateinamen (den kennt das System, keine Benutzereingabe) und die neue Größe. Mit einem intval() sowie einen Sanity-Check (>0, < 1600) wäre man hier schon safe.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Chrissi007
Mitglied
Beiträge: 114
Registriert: 08.02.2003 12:43
Kontaktdaten:

Beitrag von Chrissi007 »

Danke für eure Hilfe. :D

Hab jetzt folgenden Script geschrieben:

Code: Alles auswählen

<?php
system("convert bild1.jpg -resize 1024x768 -bild1_small.jpg");
?>
Der Script wird auch abgearbeitet, nur erscheint kein "bild1_small.jpg" im ftp Verzeichnis. - Was hab Ich falsch gemacht? :(
Gruß, Chrissi :D
Antworten

Zurück zu „Coding & Technik“