php圖片合成(多張圖片合成一張)

1.多張圖片合成一張好比:php

圖片合成,能夠顯示在瀏覽器上面同時保存到文件夾下面瀏覽器

<?php  
    /** 
    * 圖片合併 
    **/  
  
    $pic_list       = array(  
        'img2.png',  
        'img2.png',  
        'logo.png',  
        'logo.png',  
        'logo.png',  
        'img2.png',  
        'img2.png',  
        'img2.png',  
        'img2.png'  
    );  
      
    $pic_list    = array_slice($pic_list, 0, 9); // 只操做前9個圖片  
  
    $bg_w    = 150; // 背景圖片寬度  
    $bg_h    = 150; // 背景圖片高度  
  
    $background = imagecreatetruecolor($bg_w,$bg_h); // 背景圖片  
    $color   = imagecolorallocate($background, 202, 201, 201); // 爲真彩色畫布建立白色背景,再設置爲透明  
    imagefill($background, 0, 0, $color);  
    imageColorTransparent($background, $color);   
  
    $pic_count  = count($pic_list);  
    $lineArr    = array();  // 須要換行的位置  
    $space_x    = 3;  
    $space_y    = 3;  
    $line_x  = 0;  
    switch($pic_count) {  
    case 1: // 正中間  
        $start_x    = intval($bg_w/4);  // 開始位置X  
        $start_y    = intval($bg_h/4);  // 開始位置Y  
        $pic_w   = intval($bg_w/2); // 寬度  
        $pic_h   = intval($bg_h/2); // 高度  
        break;  
    case 2: // 中間位置並排  
        $start_x    = 2;  
        $start_y    = intval($bg_h/4) + 3;  
        $pic_w   = intval($bg_w/2) - 5;  
        $pic_h   = intval($bg_h/2) - 5;  
        $space_x    = 5;  
        break;  
    case 3:  
        $start_x    = 40;   // 開始位置X  
        $start_y    = 5;    // 開始位置Y  
        $pic_w   = intval($bg_w/2) - 5; // 寬度  
        $pic_h   = intval($bg_h/2) - 5; // 高度  
        $lineArr    = array(2);  
        $line_x  = 4;  
        break;  
    case 4:  
        $start_x    = 4;    // 開始位置X  
        $start_y    = 5;    // 開始位置Y  
        $pic_w   = intval($bg_w/2) - 5; // 寬度  
        $pic_h   = intval($bg_h/2) - 5; // 高度  
        $lineArr    = array(3);  
        $line_x  = 4;  
        break;  
    case 5:  
        $start_x    = 30;   // 開始位置X  
        $start_y    = 30;   // 開始位置Y  
        $pic_w   = intval($bg_w/3) - 5; // 寬度  
        $pic_h   = intval($bg_h/3) - 5; // 高度  
        $lineArr    = array(3);  
        $line_x  = 5;  
        break;  
    case 6:  
        $start_x    = 5;    // 開始位置X  
        $start_y    = 30;   // 開始位置Y  
        $pic_w   = intval($bg_w/3) - 5; // 寬度  
        $pic_h   = intval($bg_h/3) - 5; // 高度  
        $lineArr    = array(4);  
        $line_x  = 5;  
        break;  
    case 7:  
        $start_x    = 53;   // 開始位置X  
        $start_y    = 5;    // 開始位置Y  
        $pic_w   = intval($bg_w/3) - 5; // 寬度  
        $pic_h   = intval($bg_h/3) - 5; // 高度  
        $lineArr    = array(2,5);  
        $line_x  = 5;  
        break;  
    case 8:  
        $start_x    = 30;   // 開始位置X  
        $start_y    = 5;    // 開始位置Y  
        $pic_w   = intval($bg_w/3) - 5; // 寬度  
        $pic_h   = intval($bg_h/3) - 5; // 高度  
        $lineArr    = array(3,6);  
        $line_x  = 5;  
        break;  
    case 9:  
        $start_x    = 5;    // 開始位置X  
        $start_y    = 5;    // 開始位置Y  
        $pic_w   = intval($bg_w/3) - 5; // 寬度  
        $pic_h   = intval($bg_h/3) - 5; // 高度  
        $lineArr    = array(4,7);  
        $line_x  = 5;  
        break;  
    }  
    foreach( $pic_list as $k=>$pic_path ) {  
        $kk = $k + 1;  
        if ( in_array($kk, $lineArr) ) {  
            $start_x    = $line_x;  
            $start_y    = $start_y + $pic_h + $space_y;  
        }  
        $pathInfo    = pathinfo($pic_path);  
        switch( strtolower($pathInfo['extension']) ) {  
            case 'jpg':  
            case 'jpeg':  
                $imagecreatefromjpeg    = 'imagecreatefromjpeg';  
            break;  
            case 'png':  
                $imagecreatefromjpeg    = 'imagecreatefrompng';  
            break;  
            case 'gif':  
            default:  
                $imagecreatefromjpeg    = 'imagecreatefromstring';  
                $pic_path    = file_get_contents($pic_path);  
            break;  
        }  
        $resource   = $imagecreatefromjpeg($pic_path);  
        // $start_x,$start_y copy圖片在背景中的位置  
        // 0,0 被copy圖片的位置  
        // $pic_w,$pic_h copy後的高度和寬度  
        imagecopyresized($background,$resource,$start_x,$start_y,0,0,$pic_w,$pic_h,imagesx($resource),imagesy($resource)); // 最後兩個參數爲原始圖片寬度和高度,倒數兩個參數爲copy時的圖片寬度和高度  
        $start_x    = $start_x + $pic_w + $space_x;  
    }  
  
    header("Content-type: image/jpg");  
    imagejpeg($background);
    imagegif($background, "./hero_gam.png");  
      
?>  
圖片合成

 

2.獲取 源圖片的高度和寬度ide

list($width, $height) = getimagesize($file);spa

相關文章
相關標籤/搜索