Ik heb deze code:


<?php 
$command = "convert -size 320x100 xc:lightblue -font Candice -pointsize 72 \
           -tile gradient:   -annotate +28+68 'Anthony' \
           font_gradient.jpg";

  system($command,$a);
  echo "Result: ".$a;
?>

En als ik hem uitvoer zie ik:
Result: 127

Waarom? Er is verder niks gebeurd, /usr/bin/convert bestaat gewoon.
Wat is er mis, ik wil gewoon een plaatje aanmaken met de naam "font_gradient.jpg"..
Ook de -font Candice parameter heb ik weggehaald om eens te kijken of hij niet op zijn plaat gaat met een niet bestaande font.

Edit
Dit werkt wel:
$command = "convert test.jpg testgif.gif";

Maar waarom bovenstaande niet?
iemand enig idee?
Hm, de PHP-Imagick is aardig uitgebreid (wel slecht gedocumenteerd) dus denk niet dat je via de commandline veel meer kan. Bovendien brengt het enorm veel veiligheid risico's met zich mee, je hoeft maar 1 parameter vergeten te escapen en een potentiele hacker heeft volledig vrijspel.

Als je alles zo graag via de commandline wilt doen, doe je dan ook bestanden hernomen, verplaatsen, kopieeren en aanmaken met de system functie? Waarschijnlijk niet ;-) Je gaat toch ook geen curl aanroepen op commandline als dat gewoon in PHP zit?

Ik zou als ik jou was echt met Imagick aan de slag gaan, installatie is een eitje. Bovendien is het ook veel netter programmeren en biedt het meer mogelijkheden om het object georienteerd te ontwerpen. Als je code ooit herbruikt word op een server waar alle system, shell_exec functies e.d. uitstaan (safe_mode) bijv, dan werkt het niet!
Ik zal er een keer naar kijken, het heeft niet echt hoge prioriteit. Ik wou gewoon de commandline-versie ervan even verkennen. Kan ook handig zijn buiten PHP om.

Maar alsnog is het geen oplossing voor mijn probleem ;-).

Ik heb nu:

<?php
$command = "convert -size 320x100 xc:lightblue -font Candice -pointsize 72  -tile gradient:   -annotate +28+68 'Anthony'  font_gradient.jpg";
passthru($command, $result);

header('Content-Type: image/jpeg');
print $result;
?>

Maar ja, ik zit dan met een dood plaatje en drie images, waarvan ik met twee niks kan doen:

font_gradient.jpg (is blauw, kan hem gewoon openen)
font_gradient1.jpg (kan hem niet openen)
font_gradient2.jpg (kan hem niet openen)

Die laatste twee lijken me tijdelijke bestanden ofzo?
En het werkt nog steeds niet... :/
Maar, je krijgt nu niet meer die 127 terug? Heb je het ook al eens rechtstreeks in de commandline uitgevoerd? Misschien dat je dan toch meer info terug krijgt.
Ga ik ook nog eens doen zo..

In ieder geval werkt dit niet:
convert -background lightblue label_file.gif

Lijkt me iets behoorlijk simpels?

convert test.jpg -bordercolor black -border 2 -rotate -30 test_rotated.jpg

Dit werkt daarin tegen dan weer wel?
Maar wat is de output als het niet werkt? En dan bedoel ik op de commandline. Als het niet werkt lijkt me toch dat je iets van uitvoer krijgt.
Ga ik checken in Putty..

[size=xsmall]Toevoeging op 25/05/2011 14:57:09:[/size]

Ga ik checken in Putty..

Reageren