"; $index = 0; foreach ($array as $d) { echo "index $index: "; echo "$d
"; ++$index; } function ensure_bounds ( &$val ) { $val = round( $val ); if ( $val < 0 ) $val = 0; elseif ( $val > 255 ) $val = 255; } function create_rgb_variable( $r, $g, $b ) { $rgb_variable = sprintf( "%02x%02x%02x", $r, $g, $b); return $rgb_variable; } function calculate_colors( $jpgfile ) { $filename = $jpgfile; $color_interval = 32; $image = imagecreatefromjpeg( $jpgfile ); if ($image) { /* See if it failed */ echo "imagecreatefromjpeg returned an image id: $image
"; } else { echo "imagecreatefromjpeg returned a null: $image FAILED!
"; } $primary = "000000"; $secondary = "000000"; $tertiary = "000000"; $secondarydarkest = "000000"; $tertiarylighest = "000000"; $fourlighest = "000000"; $fivelighest = "000000"; $sixlighest = "000000"; $sevenlighest = "000000"; echo "before big if block
"; if ( $image ) { echo "inside big if block
"; //$dim = getimagesize( $image ); $xdim = imagesx($image); $ydim = imagesy($image); echo "xdim: $xdim, ydim: $ydim
"; $rgb = imageColorAt( $image, 0, 0 ); $total_pixels = 0; $primary_r = 0; $primary_g = 0; $primary_b = 0; for ( $x = 0; $x < $xdim; $x++ ) { for ( $y = 0; $y < $ydim; $y++ ) { $rgb = ImageColorAt( $image, $x, $y ); $tval = ( ($rgb >> 16) & 0xFF ); $primary_r += $tval; $tval = ( ($rgb >> 8) & 0xFF ); $primary_g += $tval; $tval = ( $rgb & 0xFF ); $primary_b += $tval; ++$total_pixels; } } $primary_r /= $total_pixels; $primary_g /= $total_pixels; $primary_b /= $total_pixels; ensure_bounds( $primary_r ); ensure_bounds( $primary_g ); ensure_bounds( $primary_b ); $primary = create_rgb_variable( $primary_r, $primary_g, $primary_b ); $secondary_r = $primary_r - ( $color_interval * 1.5 ); $secondary_g = $primary_g - ( $color_interval * 1.5 ); $secondary_b = $primary_b - ( $color_interval * 1.5 ); ensure_bounds( $secondary_r ); ensure_bounds( $secondary_g ); ensure_bounds( $secondary_b ); $secondary = create_rgb_variable( $secondary_r, $secondary_g, $secondary_b ); $tertiary_r = $primary_r + $color_interval * 0.5; $tertiary_g = $primary_g + $color_interval * 0.5; $tertiary_b = $primary_b + $color_interval * 0.5; ensure_bounds( $tertiary_r ); ensure_bounds( $tertiary_g ); ensure_bounds( $tertiary_b ); $tertiary = create_rgb_variable( $tertiary_r, $tertiary_g, $tertiary_b ); $secondarydarkest_r = $primary_r - ( $color_interval * 2.5 ); $secondarydarkest_g = $primary_g - ( $color_interval * 2.5 ); $secondarydarkest_b = $primary_b - ( $color_interval * 2.5 ); ensure_bounds( $secondarydarkest_r ); ensure_bounds( $secondarydarkest_g ); ensure_bounds( $secondarydarkest_b ); $secondarydarkest = create_rgb_variable( $secondarydarkest_r, $secondarydarkest_g, $secondarydarkest_b ); $tertiarylighest_r = $primary_r + ( $color_interval * 1.5 ); $tertiarylighest_g = $primary_g + ( $color_interval * 1.5 ); $tertiarylighest_b = $primary_b + ( $color_interval * 1.5 ); ensure_bounds( $tertiarylighest_r ); ensure_bounds( $tertiarylighest_g ); ensure_bounds( $tertiarylighest_b ); $tertiarylighest = create_rgb_variable( $tertiarylighest_r, $tertiarylighest_g, $tertiarylighest_b ); $fourlighest_r = $primary_r + ( $color_interval * 2.0 ); $fourlighest_g = $primary_g + ( $color_interval * 2.0 ); $fourlighest_b = $primary_b + ( $color_interval * 2.0); ensure_bounds( $fourlighest_r ); ensure_bounds( $fourlighest_g ); ensure_bounds( $fourlighest_b ); $fourlighest = create_rgb_variable( $fourlighest_r, $fourlighest_g, $fourlighest_b ); $fivelighest_r = $primary_r + ( $color_interval * 2.5 ); $fivelighest_g = $primary_g + ( $color_interval * 2.5 ); $fivelighest_b = $primary_b + ( $color_interval * 2.5 ); ensure_bounds( $fivelighest_r ); ensure_bounds( $fivelighest_g ); ensure_bounds( $fivelighest_b ); $fivelighest = create_rgb_variable( $fivelighest_r, $fivelighest_g, $fivelighest_b ); $sixlighest_r = $primary_r + ( $color_interval * 3.0 ); $sixlighest_g = $primary_g + ( $color_interval * 3.0 ); $sixlighest_b = $primary_b + ( $color_interval * 3.0 ); ensure_bounds( $sixlighest_r ); ensure_bounds( $sixlighest_g ); ensure_bounds( $sixlighest_b ); $sixlighest = create_rgb_variable( $sixlighest_r, $sixlighest_g, $sixlighest_b ); $sevenlighest_r = $primary_r + ( $color_interval * 3.5 ); $sevenlighest_g = $primary_g + ( $color_interval * 3.5 ); $sevenlighest_b = $primary_b + ( $color_interval * 3.5 ); ensure_bounds( $sevenlighest_r ); ensure_bounds( $sevenlighest_g ); ensure_bounds( $sevenlighest_b ); $sevenlighest = create_rgb_variable( $sevenlighest_r, $sevenlighest_g, $sevenlighest_b ); } return array( $primary, $secondary, $tertiary, $secondarydarkest, $tertiarylighest, $fourlighest, $fivelighest, $sixlighest, $sevenlighest ); } ?>