Foto draaien met imagemagick

Pagina: 1
Acties:

  • RickvanHaas
  • Registratie: Oktober 2004
  • Laatst online: 15-05-2024
Hey,

Ik ben sinds kort met imagemagick bezig en loop tegen een klein probleem aan. Ik wil een foto draaien en wil daarbij dat het origineel vervangen wordt door de gedraaide versie. Daarvoor heb ik deze code staan:
PHP:
1
2
3
4
5
6
7
8
9
10
<?
if(exec("mogrify -rotate 90 ".$source.""))
{
    echo "Roteren gelukt";
}
else
{
    echo "Fout";
}
?>


Helaas, het gaat mis. De foto wordt gewoon niet gedraaid. Met de volgende code lukt het draaien wel, maar wordt er een nieuwe foto gemaakt ipv de bestaande te vervangen:"

PHP:
1
2
3
4
5
6
7
8
9
10
<?
if(exec("convert -rotate 90 ".$source." ".$target.""))
{
    echo "Roteren gelukt";
}
else
{
    echo "Fout";
}
?>


Dat ging prima, maar ik wil dus de bestaande foto vervangen. Heeft iemand een idee wat ik fout doe? Overigens kloppen de waarden voor $target en $source wel gewoon.

[ Voor 32% gewijzigd door RickvanHaas op 20-12-2005 10:57 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 17-04 11:22

TeeDee

CQB 241

Wat staat er dan in source en target? Als je een foto wil overschrijven lijkt me dat die waardes hetzelfde moeten zijn.

Logisch gezien dan, ken verder PHP/imageMagick niet. ;)

Overigens is het niet gebruikelijk om je naam en/of groeten onder een post te zetten. Zet trouwens ook je code tussen [code=php]...[/code] tags.
RickvanHaas schreef op dinsdag 20 december 2005 @ 10:51:
Klopt, vandaar dat ik ook geen $target opgeef bij de mogrify (de functie die het origineel dus zou overschrijven). Volgens de documentatie is dat niet nodig, omdat de target per definitie hetzelfde is als de source.
Waarom gebruik je mogrify dan als ik vragen mag?
PHP:
1
if(exec("convert -rotate 90 ".$source." ".$source.""))

[ Voor 73% gewijzigd door TeeDee op 20-12-2005 10:53 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • RickvanHaas
  • Registratie: Oktober 2004
  • Laatst online: 15-05-2024
Klopt, vandaar dat ik ook geen $target opgeef bij de mogrify (de functie die het origineel dus zou overschrijven). Volgens de documentatie is dat niet nodig, omdat de target per definitie hetzelfde is als de source.
Waarom gebruik je mogrify dan als ik vragen mag?
Omdat mogrify het origineel overschrijft. Het andere voorbeeld dat ik liet zien was convert, waar het origineel niet wordt overschreven maar waar een nieuw bestand wordt aangemaakt. In mijn geval $target

[ Voor 39% gewijzigd door RickvanHaas op 20-12-2005 10:55 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 17-04 11:22

TeeDee

CQB 241

In de docs van mogrify staat:
..niet relevant verhaal mbt image size e.d.
Misschien ligt het daaraan? Dus je image size kan problemen opgeven mbt je rotering.

Edit: hmm, dat gebruik je niet in je code.

Ga met het makkelijkste, en pak convert rotate waarbij je je target hetzelfde meegeeft als je source. Lijkt me dat deze dan geroteerd wordt zonder problemen.

[ Voor 57% gewijzigd door TeeDee op 20-12-2005 11:04 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • RickvanHaas
  • Registratie: Oktober 2004
  • Laatst online: 15-05-2024
Ja, maar dat werkt dus niet. Blijkbaar kan hij zichzelf niet overschrijven.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 21-04 09:31
Tsja, je kan natuurlijk ook een copy en een unlink actie doen. Dat heeft als voordeel dat je eerst kan controleren of het gelukt is. Bijvoorbeeld: wat als de roteeractie wordt afgebroken met een error: je hebt dan een kapot bronbestand. Als je eerst in een andere file werkt kan je controleren en daarna het bestand terugplaatsen.

  • cannibal
  • Registratie: Maart 2001
  • Laatst online: 16-04 20:03
Heb nog wel een voorbeeld waar ze imagemagick gebruiken om te roteren. (o.a. ze gebruiken ook GD)

http://gallery.mrvanes.com/about.html

Is een hele simpele photogallery. Maar wel handig.
Is volgens mij freeware en iig incl. code, dus kun je iig wat van leren qua roteren.

Code is geen moderne php meer, maar moet je dan maar even door heen kijken.

[ Voor 13% gewijzigd door cannibal op 20-12-2005 12:17 ]


  • RickvanHaas
  • Registratie: Oktober 2004
  • Laatst online: 15-05-2024
Ik heb inderdaad gekozen voor de copy en unlink optie, iets ingewikkelder maar het werkt inmiddels prima.
Pagina: 1