Otto: Perl und ImageMagick; Bild in Sub-Bilder schneiden

Hallo,

ich beschäftige mich mal wieder etwas mit Perl und ImageMagick.

Ich möchte gern ein Bild in mehre gleich große quadratische oder rechteckige einzelne Bilder zerschneiden. Anschließend hätte ich diese gern als Sequenz, also in einem Array, so das diese weiter verarbeitet werden können.

Prinzipiell habe ich einen Ansatz, jedoch gefällt mir dieser nicht.

  
for(0..1){  
    my $y = 100 * $_;  
         for(0..1){  
		my $subImage = $image->Clone();  
		my $x   = 100 * $_;  
		my $geo = '100x100+' . $x . '+' . $y;  
		$subImage->Crop(geometry=>$geo);  
		$subImage->Write("subImage/test_".$x."_".$y."_.jpg");  
	}  
}  

Was mich an dieser Lösung stört, ist das für jedes Teilbild das Original geklont werden muss. Denke das dieses bei großen Bildern eher suboptimal ist.

In der Shell ist mein vorhaben wie folgt möglich:

  
convert test.jpg -crop 100x100 teil_%d.jpg  

Diese funktioniert jedoch nur teilweise mit Perl. Wenn ich den Startwert für x und y nicht angebe, wird das Bild in mehrere aufgeteilt, allerdings kann ich dann nur noch auf das letzte zugreifen.

Habe in Perl folgendes probiert:

  
$subImage = $image->Clone();  
$subImage->Chop(geometry=>"100x100");  
  
my $i = $#$subImage+1;  
print $i; #Gibt 1 aus  

Jemand eine Idee, wie es möglich ist auf alle Teilbilder zuzugreifen?

MfG
Otto

  1. Hi

    habe selbst noch nicht mit PerlMagick gearbeitet aber so wie ich dich verstehe willst du ein Bild "kacheln".

    kacheln heißt auf Englisch "to tile".

    und schon liefert Google treffer 8)

    http://www.google.de/search?q=tile+ImageMagick+perl

    Grüße
      Lanx

    1. Hi LanX!,

      danke. Manchmal fehlen einfach die richtigen Begriffe, für eine erfolgreiche Suche.

      Alternative kann man auf GD::Image wechseln, das hat eine anständige Kopierfunktion.

      Wenn jemand noch Tipps zu ImageMagick und Perl hat, bin ich nach wie vor dankbar.

      MfG
      Otto