Current Location: Home> Latest Articles> Complete Guide to Image Slicing and Merging with PHP

Complete Guide to Image Slicing and Merging with PHP

M66 2025-08-07

Use Cases for Image Slicing and Merging in PHP

In web development, image optimization plays a key role in enhancing user experience and site performance. Slicing and merging images is a common technique to reduce image load times and increase page responsiveness. PHP, with its robust image processing capabilities, can easily handle both tasks.

Implementing Image Slicing with PHP

Image slicing refers to dividing a large image into several smaller segments. This is commonly used for loading specific regions of an image, creating image maps, or implementing lazy loading.

The following PHP code demonstrates how to slice an image into smaller parts based on fixed dimensions:

<?php
// Source image path
$srcPath = 'big_image.jpg';
// Directory to save slices
$savePath = 'sliced_images/';
// Slice dimensions
$width = 200; // Slice width
$height = 200; // Slice height

// Load the source image
$srcImage = imagecreatefromjpeg($srcPath);
$srcWidth = imagesx($srcImage);
$srcHeight = imagesy($srcImage);

// Calculate number of slices
$numX = ceil($srcWidth / $width);
$numY = ceil($srcHeight / $height);

// Loop through and create slices
for ($x = 0; $x < $numX; $x++) {
    for ($y = 0; $y < $numY; $y++) {
        // Create canvas for slice
        $sliceImage = imagecreatetruecolor($width, $height);
        // Copy region from original image
        imagecopy($sliceImage, $srcImage, 0, 0, $x * $width, $y * $height, $width, $height);
        // Save the slice
        imagejpeg($sliceImage, $savePath . 'slice_' . $x . '_' . $y . '.jpg');
        // Free memory
        imagedestroy($sliceImage);
    }
}

// Free original image resource
imagedestroy($srcImage);
?>

This script slices a large image into multiple smaller ones based on the defined width and height, saves them into a folder, and names each slice according to its coordinates.

Implementing Image Merging with PHP

Image merging combines multiple small images into a single large one. It’s useful in creating image mosaics, tiled backgrounds, or restoring original images from segments.

The code below demonstrates how to read image slices and merge them into a single image using PHP:

<?php
// Directory containing image slices
$slicePath = 'sliced_images/';
// Path to save the merged image
$mergedPath = 'merged_image.jpg';
// Slice dimensions
$width = 200;
$height = 200;
// Number of slices (set accordingly)
$numX = 3;
$numY = 3;

// Create a canvas for the final image
$mergedWidth = $width * $numX;
$mergedHeight = $height * $numY;
$mergedImage = imagecreatetruecolor($mergedWidth, $mergedHeight);

// Loop through slices and merge
for ($x = 0; $x < $numX; $x++) {
    for ($y = 0; $y < $numY; $y++) {
        $sliceImage = imagecreatefromjpeg($slicePath . 'slice_' . $x . '_' . $y . '.jpg');
        imagecopy($mergedImage, $sliceImage, $x * $width, $y * $height, 0, 0, $width, $height);
        imagedestroy($sliceImage);
    }
}

// Save the final merged image
imagejpeg($mergedImage, $mergedPath);
imagedestroy($mergedImage);
?>

This code assumes that the slices are already generated and named in a specific format. It reads each one and assembles them into a single large image file.

Conclusion

With the PHP examples provided in this article, you can easily split a large image into smaller pieces or merge those pieces back into a single image. This technique is widely used in web performance optimization, image maps, sprite handling, and other scenarios. Developers can tailor the code to meet specific requirements by adjusting the size and number of slices as needed.