現在の位置: ホーム> 最新記事一覧> PHPの画像スライシングとスプライシングに関する完全なチュートリアル

PHPの画像スライシングとスプライシングに関する完全なチュートリアル

M66 2025-08-07

画像のスライシングとスプライシングを実現するPHPのアプリケーションシナリオ

Web開発の過程で、画像最適化処理は、ユーザーエクスペリエンスとWebページのパフォーマンスの向上の重要な部分です。その中で、画像のスライスおよびスプライシング操作は、画像の読み込み時間を効果的に短縮し、ページの応答速度を向上させることができます。強力な画像処理機能により、PHPは両方の操作を簡単に達成できます。

PHPを使用して画像スライシングを実装します

画像スライスは、大きな画像をいくつかの小さな画像に分割しています。多くの場合、エリアごとに画像をロードしたり、グラフィックマップを作成したり、怠zyな画像読み込み効果を実現したりします。

これは、固定サイズで大きな画像をスライスして保存する方法を示すPHPコードの例です。

<?php
// 元の画像パス
$srcPath = 'big_image.jpg';
// スライス保存パス
$savePath = 'sliced_images/';
// スライスサイズ
$width = 200; // スライス幅
$height = 200; // スライスの高さ

// 元の画像をロードします
$srcImage = imagecreatefromjpeg($srcPath);
$srcWidth = imagesx($srcImage);
$srcHeight = imagesy($srcImage);

// スライス数を計算します
$numX = ceil($srcWidth / $width);
$numY = ceil($srcHeight / $height);

// スライスを収穫して節約します
for ($x = 0; $x < $numX; $x++) {
    for ($y = 0; $y < $numY; $y++) {
        // 新しいキャンバスを作成します
        $sliceImage = imagecreatetruecolor($width, $height);
        // 領域をコピーします
        imagecopy($sliceImage, $srcImage, 0, 0, $x * $width, $y * $height, $width, $height);
        // スライスを保存します
        imagejpeg($sliceImage, $savePath . 'slice_' . $x . '_' . $y . '.jpg');
        // リソースをクリーンアップします
        imagedestroy($sliceImage);
    }
}

// 元の画像リソースをクリーンアップします
imagedestroy($srcImage);
?>

上記のコードは、設定された幅と高さに基づいて大きな画像をいくつかの小さな画像に削減し、指定されたディレクトリに保存し、その後の管理のために座標に従ってファイル名に名前を付けます。

PHPを使用して、画像ステッチを実現します

画像ステッチは、複数の小さな画像を1つの大きな画像に結合することです。これは、画像の合成、背景タイル、または大きな画像の復元に適しています。

次のコードは、スライスした画像を読み取り、それらを順番に大きな画像にスプライスする方法を示しています。

<?php
// 画像カタログをスライスします
$slicePath = 'sliced_images/';
// ステッチ後の画像保存パス
$mergedPath = 'merged_image.jpg';
// スライスサイズ
$width = 200;
$height = 200;
// スライス数(実際のスライス数に従って設定する必要があります)
$numX = 3;
$numY = 3;

// 合成キャンバスを作成します
$mergedWidth = $width * $numX;
$mergedHeight = $height * $numY;
$mergedImage = imagecreatetruecolor($mergedWidth, $mergedHeight);

// スライスを1つずつ読み取り、マージします
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);
    }
}

// 合成写真を保存します
imagejpeg($mergedImage, $mergedPath);
imagedestroy($mergedImage);
?>

このスクリプトは、順序で名前が付けられたスライスされた画像が既にあることを想定しており、それを指定されたファイルとして出力する完全な画像に縫い付けます。

要約します

この記事で提供されているPHP画像処理の例を介して、必要に応じて大きな画像を複数の小さな画像に分割するか、セグメント化された画像を元の画像に再結合できます。このテクノロジーは、フロントエンド画像の読み込み最適化、ゲームマップの分割、バックエンド画像管理システム、その他のフィールドで広く使用できます。実際には、開発者はさまざまなビジネスニーズを満たすために、画像サイズとスライス数を柔軟に調整できます。