note 68254 deleted from ref.image by tularis

From: Date: Sun, 29 Jun 2008 21:01:42 +0000
Subject: note 68254 deleted from ref.image by tularis
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-140922@lists.php.net to get a copy of this message
Note Submitter: g8z at yahoo dot com ---- <?php /** chunk_image breaks an image into roughly equal chunks horizontally (which are returned in an array of image resources) parameters: $image = image resource to work on $chunks = number of chunks to break the image into Courtesy of the $5 Script Achive: http://www.tufat.com **/ function chunk_image_horizontally ($image, $chunks = 1) { $image_width = imagesx($image); $image_height = imagesy($image); // calculate required chunk size $chunk_size = round($image_width / $chunks); // do all but the last chunk for ($current_chunk = 1; $current_chunk < $chunks; $current_chunk++) { // create image resource to store chunk $chunk_images[$current_chunk - 1] = imagecreate($chunk_size, $image_height); // copy chunk to chunk images array imagecopy($chunk_images[$current_chunk - 1], $image, 1, 1, $chunk_size * ($current_chunk - 1) + 1 , 1, $chunk_size, $image_height); } // get last chunk $chunk_images[$chunks - 1] = imagecreate($chunk_size, $image_height); imagecopy($chunk_images[$chunks - 1], $image, 1, 1, $chunk_size * ($chunks - 1) + 1 , 1, $image_width, $image_height); // return array return $chunk_images; } //Example: // read in test.jpg, and break it into 4 chunks using our function $in_image = imagecreatefromjpeg('./image.jpg'); $images = chunk_image_horizontally($in_image, 4); $count = 0; // save chunks to files foreach ($images as $image) { $count++; imagejpeg($image, './test_chunk'.$count.'.jpg'); } ?>

« previous php.notes (#140922) next »