Problem mit Image-Rotation

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit Image-Rotation

    [FONT=Times New Roman]Hallo,[/FONT]
    [FONT=Times New Roman]ich möchte ein Bild um den Mittelpunkt drehen. Im Script wird das Bild um linke obere Ecke gedreht.[/FONT]
    PHP Code:
    <?php
    $movie 
    = new SWFMovie();
    $movie->setRate(12.0);
    $w0 200$h0 200;
    $movie->setDimension($w0$h0);
    $movie->setBackground(0xdd0xdd0xd0);
    $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>';
    ?>

  • #2
    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
    [font=Verdana]
    Wer LESEN kann, ist klar im Vorteil!
    [/font]

    Comment


    • #3
      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:
      PHP Code:
      $movie = new SWFMovie();
      $movie->setRate(30.0);
      $w0 200$h0 200;
      $movie->setDimension($w0$h0);
      $movie->setBackground(0xdd0xdd0xd0);
      $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/$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

      Comment

      Working...
      X