
Hallo, Am Son, 15 Nov 2009, Heinz W. Pahlke schrieb:
Gegeben ist ein Bild von 2295 x 1836 Pixel. Der Startpunkt soll bei +1977+843 liegen, wo ein Bild von 720x576 Pixel ausgeschnitten werden soll:
Mit "convert -crop 720x576+1977+843 +repage bild.png bild_ausschnitt.png" ist das erst einmal kein Problem.
Schrittweise soll der Ausschnitt aber so wachsen, dass nach 100 Bildern der Ausschnitt mit dem Originalbild identisch ist.
Das letzte Bild würde also durch "convert -crop 2295x1836+0+0 +repage bild.png bild_ausschnitt.png" erstellt. (Ist natürlich überflüssig, erklärt aber das Prinzip.)
Das Problem ist, die Zwischenschritte zu berechnen, und da die bash nur Integer kann ... [..]
i=`expr $i` j=`expr $i + 2` k=`expr $i + 2`
expr ist portabel, aber wenn du die bash verwendest, nimm besser eine der internen Möglichkeiten: i=$(( i + 1 )) i=$[ i + 1 )) Für dein Bilder erstellen aber: ==== #!/usr/bin/perl -w use strict; use POSIX qw(ceil); my $frames = 25; my ( $sw, $sh, $ew, $eh, $sx, $sy, $ex, $ey ) = ( 720, 576, 2295, 1836, 1977, 843, 0, 0); #### my $wstep = ($ew - $sw) / ($frames-1); my $hstep = ($eh - $sh) / ($frames-1); my $xstep = ($ex - $sx) / ($frames-1); my $ystep = ($ey - $sy) / ($frames-1); my ( $w, $h, $x, $y ) = ( $sw, $sh, $sx, $sy ); for my $i ( 1 .. ($frames - 1) ) { print qq[convert -crop "${w}x${h}+${x}+${y}" seite_54_55.png "seite_54_55-zoom-${i}.png"\n]; $w = ceil($w + $wstep); $h = ceil($h + $hstep); $x = ceil($x + $xstep); $y = ceil($y + $ystep); } print qq[convert -crop "${ew}x${eh}+${ex}+${ey}" seite_54_55.png "seite_54_55-zoom-${frames}.png"\n]; ===== Die Ausgabe kannst du an die sh verfüttern (per Pipe) oder ich mail dir noch ne Version, die convert selber aufruft. Melde dich ggfs. per PM. HTH, -dnh -- "What, you don't think "insmod emacs" is a good idea?" -- Joe Moore -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org