Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Problem mit Image-Rotation [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit Image-Rotation


 
jan001
20-01-2011, 09:35 
 
Hallo,
ich möchte ein Bild um den Mittelpunkt drehen. Im Script wird das Bild um linke obere Ecke gedreht.
<?php
$movie = new SWFMovie();
$movie->setRate(12.0);
$w0 = 200; $h0 = 200;
$movie->setDimension($w0, $h0);
$movie->setBackground(0xdd, 0xdd, 0xd0);
$f = 'test.gif';
$b1 = new SWFBitmap(fopen($f, "r"));
$b1 = $movie->add($b1);
for ($i=0;$i<20;$i++) {
$a = ($i+1)*18;
$b1->moveTo($w0/2,$h0/2);
$b1->rotateTo($a);
$movie->nextFrame();
}
$fn = 'test.swf';
$movie->save($fn);
echo '<object data="'.$fn.'" type="application/x-shockwave-flash" width="'.$w0.'" height="'.$h0.'">';
echo ' <param name="movie" value="'.$fn.'">';
echo ' <param name="quality" value="high">';
echo ' <param name="menu" value="true">';
echo ' <embed src="'.$fn.'" width="'.$w0.'" height="'.$h0.'">';
echo ' </embed>';
echo '</object>';
?>

 
eagle275
20-01-2011, 11:34 
 
also ... das die Leute immer die neusten experimentellen Funktionen nutzen müssen...

Scheinbar ist das Rotieren um die Linke obere Ecke beabsichtigtes Verhalten,

Wenn du Drehung um den Mittelpunkt "simulieren" willst ... dann

-> ERST DREHEN
-> JETZT VERSCHIEBEN (und beim Verschieben die X / Y-Koordinate vertauschen, falls das Bild nicht quadratisch ist ) - die Verschiebe-Wege müssen dabei wohl negatives Vorzeichen haben

 
jan001
24-01-2011, 11:11 
 
Es gibt nur experimentellen Funktionen zur Erstellung von Flash-Datei. Ich habe in Internet keine Lösung für Mittelpunkt-Drehung gefunden, so habe ich was ausprobiert und es tut:
$movie = new SWFMovie();
$movie->setRate(30.0);
$w0 = 200; $h0 = 200;
$movie->setDimension($w0, $h0);
$movie->setBackground(0xdd, 0xdd, 0xd0);
$f = 'test.png';
$imageInfo = getimagesize($f);
$w = $imageInfo[0];
$h = $imageInfo[1];
$b1 = new SWFBitmap(fopen($f, "r"));
$b1 = $movie->add($b1);
$b1->moveTo($w0/2,$h0/2);
$r = sqrt($w*$w/4 + $h*$h/4);
for ($i=0;$i<20;$i++) {
$a = ($i+0)*18;
$b1->moveTo($w0/2,$h0/2);
$b1->rotateTo($a);
$g = deg2rad($a);
$x = -$r*cos($g) - $h/2*sin($g);
$y = $r*sin($g) - $h/2*cos($g);
$b1->move($x,$y);
$movie->nextFrame();
}
$fn = 'test.swf';
$movie->save($fn);
echo '<object data="'.$fn.'" type="application/x-shockwave-flash" width="'.$w0.'" height="'.$h0.'">';
echo ' <param name="movie" value="'.$fn.'">';
echo ' <param name="quality" value="high">';
echo ' <param name="menu" value="true">';
echo ' <embed src="'.$fn.'" width="'.$w0.'" height="'.$h0.'">';
echo ' </embed>';
echo '</object>';

Und sieht so aus:http://www.aktien-w.de/Flash/test1.php
Das Flash-Generator: Flashgenerator 2 (http://www.aktien-w.de/Flash/flash2.php)


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:35 Uhr.