Cube

Cube example
<?php 
/*
You could just use the first part of the code if you did not want the imagemap effect.
*/

// Create the "Cube image"
// Distort the images to use
$cmd $input17 -resize 320x240! -background transparent ".
" -bordercolor gray -border 1x1 -shear 0x20 ";
exec("convert $cmd shear_y1.png ");

$cmd " House.jpg -resize 320x240! -background transparent ".
" -bordercolor gray -border 1x1 -shear 0x160 ".
exec("convert $cmd shear_y2.png ");

$cmd $input14 -resize 320x240! -bordercolor gray -border 1x1 -matte "
" -background transparent -virtual-pixel background "
"+distort Perspective \"0,0 0,0 0,239 320,115 319,239 640,0 319,0 320,-115\" "
" -trim "
exec("convert $cmd car4.png")

// Join the first 2 images along the edge
$cmd " -background transparent -gravity center ".
" shear_y1.png shear_y2.png +append ";
exec("convert $cmd output_shear.png"); 

// Composite the top image
$cmd " -size 700x700 xc:none output_shear.png -gravity center -composite ".
" car4.png -geometry -1-180 -composite -trim ";
exec("convert $cmd output_shear1.png");

// Remove the tempory images
//unlink("shear_y1.png");
//unlink("shear_y2.png");
//unlink("car4.png");
//unlink("output_shear.png");

// Create the "Imagemap"
// Draw and distort the colour blocks
$cmd " -size 320x240 xc:none -fill black ".
" -draw \" rectangle 0,0 320,240 \" -shear 0x20 ";
exec("convert $cmd shear_y1_map.png ");

$cmd " -size 320x240 xc:none -fill red ".
" -draw \" rectangle 0,0 320,240 \" -shear 0x160 ";
exec("convert $cmd shear_y2_map.png ");

$cmd " -size 320x240 xc:none -fill blue -draw \" rectangle 0,0 320,240 \" ".
" -matte -background transparent -virtual-pixel background ".
"+distort Perspective \"0,0 0,0 0,239 320,115 319,239 640,0 319,0 320,-115\" -trim "
exec("convert map.png");

// Join the first 2 blocks along the edge
$cmd " -background transparent -gravity Center shear_y1_map.png shear_y2_map.png +append ";
exec("convert $cmd output_shear_map.png"); 
 
// Composite the top block
$cmd " -size 700x700 xc:none output_shear_map.png -gravity center ".
" -composite map.png -geometry -1-180 -composite -trim ";
exec("convert $cmd output_shear1_map.png");

// Remove the tempory images
unlink("shear_y1_map.png");
unlink("shear_y2_map.png");
unlink("map.png");
unlink("cube.png");

/*
Example of use;
The photo image is displayed and when the user clicks an area on the photo image the code looks to the map image.
The colour that is found on the map image is then used to call up the relavent page.

$x = $_GET['map_x'];
$y = $_GET['map_y'];

if ( empty ( $x ))
{
echo "
<form>
  <input type=\"image\" src=\"cube.png\" name=\"map\" title=\"Select an image\" />
</form> ";
}

else {
$rgb="";

$im = @imagecreatefrompng('map.png');
$rgb = @ImageColorAt($im, $x, $y);

//echo "rgb = $rgb";

// Blue
if ( $rgb > '254' & $rgb < '256' ) { echo "<img src=\"sunflower.jpg\">" ;}
// Red
elseif ( $rgb > '16711679' & $rgb < '16711681' ) { echo "<img src=\"House.jpg\">" ;}
// Black
elseif ( $rgb == '0' ) { echo "<img src=\"src.jpg\">" ;}
// White
else{ echo "Go back and try again" ;}

}
*/
 
?>

The first part of the code creates the photo image, the second part then creates the colour blocks that are used as the "imagemap". NOTE:- This will only work on earlier versions of Imagemagick as the Perspective operator has changed.