Toon posts:

[PHP] Plaatje 'croppen' met ImageMagick.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil graag met ImageMagick een plaatje croppen, daarmee bedoel ik dus eik knippen..

Er moet na het knippen altijd een vierkant plaatje overblijven, dus het scipt rekent uit wat het langst is, de lengte of de breedte, en vervolgens past het het langste aan door de rest er af te knippen,

Bijv. een plaatje is 100 bij 50, om het plaatje vierkant te krijgen moet er dus van de breedte 50 af..

Dit alles ter introductie, het is namelijk niet echt relevant want dit scripten is zo gedaan..


Echter kom ik er niet uit hoe ik met PHP en ImageMagick een plaatje kan croppen, er staat wel wat info op de ImageMagick site maar ik kan er eerlijk gezegd geen touw aan vast knopen..

Ik heb wel gevonden hoe je resized, nl. zo:

PHP:
1
2
3
4
5
6
//Haalt de path van imagemagick converter
        @exec("which convert", $my_convert_path);

@exec($my_convert_path[0]." -geometry ".$resolutie." -quality "
.$quality." \"".$waarplaatjestaat."\" \""
.$waarplaatjeheenmoet."\"");


Op GoT kan ik hier helemaal niks over vinden en na een uurtje Googlen ben ik ook niet bijster veel wijzer geworden.

Samenvatting: Weet iemand hoe ik zo'n exec line voor croppen met ImageMagick in elkaar zet of kan iemand mij ergens een tip geven..? :)

[ Voor 0% gewijzigd door Verwijderd op 07-09-2002 12:46 . Reden: Code verpiemelde de lay-out ]


Verwijderd

Weet je het commando voor imagemagick om mee te croppen? Ok, sorry, w8 ff.

[edit]
-crop <width>x<height>{+-}<x>{+-}<y>{%}
preferred size and location of the cropped image
http://www.imagemagick.org/www/ImageMagick.html#details-crop

Bedoel je dit?

Verwijderd

Topicstarter
Verwijderd schreef op 07 september 2002 @ 13:51:
Weet je het commando voor imagemagick om mee te croppen?
CropImage() bedoel je?

Verwijderd

Topicstarter
daniel_hoenderdos: thx dat kwam ik net ook tegen.. :)

snap alleen niet hoe ik die -crop etc nou in die regel verwerk, komt dat in plaats van -geometry of juist erachter?

Verwijderd

Dant weet ik ook niet, ik heb nog nooit ImaqgeMagic gebruikt. Maar als je het gewoon probeerd..? Eerst ervoor, werkt het niet, dan erachter. En als dat niet werkt een combinatie van, tussendoor etc.
Testen en debuggen lijkt me de oplossing.

Verwijderd

Topicstarter
Nog voor de liefhebbers, al kan ik me het nauwelijks voorstellen ;)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// code die wordt uitgevoerd wanneer form gesubmit wordt
if (isset($submit))
{
    //Haalt de path van imagemagick converter
        @exec("which convert", $my_convert_path);
        
        // is er wel een titel voor het plaatje?
    if(!$image_title)
    {
        ReshowForm("Geen titel gek!");
    }
    
        // path waar het plaatje heen moet
    $imagepath =  $DOCUMENT_ROOT.$image_dir.$image_title.'.jpg';

        // verplaats dat freakin plaatje
    move_uploaded_file ($imagefile, $imagepath);
    

    // dimensies van plaatje
    $imagedimensions = getimagesize($imagepath);

        $src_width = $imagedimensions[0]; 
        $src_height = $imagedimensions[1]; 

        if (($src_height) >=  ($src_width))
          { //hoog plaatje

           $dst_width = $src_width;
           $dst_height = $src_width;

          } elseif (($src_height) < ($src_width))
      
                 { //breed plaatje
                  $dst_height= $src_height;
                  $dst_width = $src_height;
            
                 }
            
            else  {
                   die();
                  }

            $quality = 75;
            $res = "150x150";
            $size = $dst_width."x".$dst_height;
            $destpic = $DOCUMENT_ROOT.$image_dir.${image_title}.'_s.jpg';
            @exec($my_convert_path[0]." -quality ".$quality." -crop ".$size."+1+1"." -geometry ".$res." \"".$imagepath."\" \"".$destpic."\"");
kan zijn dat ik ergens lomp ben maar ik PHP nog maar kort :)

Verwijderd

PHP:
1
2
3
            else  { 
                   die(); 
                  }

kan zijn dat ik ergens lomp ben maar ik PHP nog maar kort :)
Moh valt best mee. :D

Verwijderd

Topicstarter
hehe ja die is idd beetje overbodig :D

Verwijderd

die () is eigenlijk altijd overbodig, maar een leeg die commando is gewoon ranzig! :+ Doe dan gewoon exit() ofzo.

  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
Verwijderd schreef op 08 september 2002 @ 03:24:
die () is eigenlijk altijd overbodig, maar een leeg die commando is gewoon ranzig! :+ Doe dan gewoon exit() ofzo.
die() is een alias van exit() ;)

verder mag de topicstarter van mij aannemen dat je
code:
1
2
3
4
5
6
7
8
9
10
11
12
if (a <= b)
{
    // iets
}
elseif (a > b)
{
    // anders
}
else
{
    die();
}

mag omschrijven naar
code:
1
2
3
4
5
6
7
8
if (a <= b)
{
    // iets
}
else
{
    // anders
}

:>

Pas de replâtrage, la structure est pourrie.


Verwijderd

het is exec("convert - crop $hoogte x $breedte $plaatje", $ret_val);
Tenzij het een mogrify actie is, dat weet ik zo niet uit mijn hoofd. In dat geval moet je convert door mogrify vervangen. Hoop dat dit je helpt, anders post je maar.
Pagina: 1