Hallo, Am Mon, 16 Nov 2009, Heinz W. Pahlke schrieb: [..]
Jetzt bin ich jedenfalls erst einmal ratlos, weil mir noch völlig unklar ist, wo der Denkfehler liegen kann.
Bei mir. Hab mit Ganzzahlen gerechnet. Bin ich blöd. Jetzt aber: ==== #!/usr/bin/perl -w use strict; use File::Basename; my $frames = 200; my ( $sw, $sh, $ew, $eh, $sx, $sy, $ex, $ey ) = ( 720, 576, 2300, 1840, 1200, 200, 0, 0); my $input = "seite_54_55.png"; my ($basename, $p, $ext) = fileparse($input, qr/\.(png|jpg|gif)/i); my $outext = "png"; #### 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 ) { printf "convert -crop '%dx%d+%d+%d' '%s' '%s-zoom-%d.%s'\n", $w, $h, $x, $y, $input, $basename, $i, $outext; $w += $wstep; $h += $hstep; $x += $xstep; $y += $ystep; } printf "convert -crop '%dx%d+%d+%d' '%s' '%s-zoom-%d.%s'\n", $ew, $eh, $ex, $ey, $input, $basename, $frames, $outext; ==== Beim letzten Bild kann's nochmal Sprünge von 1px geben, je nachdem wie die Werte vom vorletzten gerundet werden. Deswegen ist das letzte Bild aus der Schleife rausgenommen, damit man auf jedenfall bei den Zielgeometrieangaben ($ew, $eh, $ex, $ey) landet. $ perl t_convert.pl | headntail -3 convert -crop '720x576+1200+200' 'seite_54_55.png' 'seite_54_55-zoom-1.png' convert -crop '727x582+1193+198' 'seite_54_55.png' 'seite_54_55-zoom-2.png' convert -crop '735x588+1187+197' 'seite_54_55.png' 'seite_54_55-zoom-3.png' convert -crop '2284x1827+12+2' 'seite_54_55.png' 'seite_54_55-zoom-198.png' convert -crop '2292x1833+6+1' 'seite_54_55.png' 'seite_54_55-zoom-199.png' convert -crop '2300x1840+0+0' 'seite_54_55.png' 'seite_54_55-zoom-200.png' HTH, -dnh, Zufallssig :) -- Perl. Die einzige interpretierte Sprache, wo alle Programme Closed Source sind, weil es keiner lesen kann. -- Till Potinius -- 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