eXorithm – Execute Algorithm: View / Run Algorithm swirl_image

Logo Beta

function swirl_image ($image, $iterations, $angle

{

  $height = imagesy$image);

  $width = imagesx$image);

  

  $new_image = imagecreatetruecolor$width, $height);

  $iterations = max(1, $iterations);

  

  $wstep = ($width/2)/($iterations+1);

  $hstep = ($height/2)/($iterations+1);

  

  for ($ii=0;$ii$iterations$ii++) {

    $w = $width - ($ii+1)*$wstep*2;

    $h = $height - ($ii+1)*$hstep*2;

    $images$ii] = imagecreatetruecolor$w, $h);

    imagecopy$images$ii], $image, 0, 0, ($ii+1)*$wstep, ($ii+1)*$hstep, $w, $h);

    $images$ii] = rotate_image_alpha$images$ii], $angle*($ii+1), 'ffffff', 127);

  }

  

  for ($ii=0;$ii$iterations$ii++) {

    // Set the brush

    imagesetbrush$image, $images$ii]);

    // Draw a couple of brushes, each overlaying each

    imageline$image, imagesx$image) / 2, imagesy$image) / 2, imagesx$image) / 2, imagesy$image) / 2, IMG_COLOR_BRUSHED);

  }

  

  return $image

}