2016-01-20 3 views
-2

У меня есть веб-сайт, на котором на интерфейсе есть много разных изображений. ~ 200 x ~ 50kb каждый. Теперь все эти изображения загружаются по разным запросам. (~ 200 запросов) моей целью является создание одного большого изображения и загрузка его с использованием только одного запроса, также я хочу сохранить координаты в моей базе данных MySQL о позициях изображения, потому что я буду использовать их на front-end в холсте. Также я хочу изменить размер изображений перед тем, как вставлять их в большой, потому что 50kb - большой. Также он будет делать автоматическое после загрузки нового изображения в определенном каталоге. Все изображения находятся в одном каталоге. Я использую laravel PHP framework на back-end.Создать увеличенное изображение из большого количества маленьких

+1

Привет, вам нужно предоставить дополнительную информацию по вашему вопросу. И что вы пробовали? Одно место для начала - это посмотреть на объединение двух изображений (http://stackoverflow.com/questions/3876299/merging-two-images-with-php), а затем перейти оттуда. –

ответ

1

В качестве отправной точки вы можете использовать этот код, который сканирует каталог и добавляет каждое изображение в новое изображение. Это грубо и требует изменения, но это более или менее то, что вам нужно.

<?php 
    $dir=realpath('c:/wwwroot/images/tmp/');/* change to suit your environment */ 
    $col=glob($dir . '*.*');/* get all files (presuming images) */ 

    $length=count($col);/* you could use this to generate new image dimensions dynamically */ 
    $sizes=array(); 

    foreach($col as $file){ 
     list($width, $height, $type, $attr) = getimagesize($file); 
     $sizes[ realpath($file) ]=array('w'=>$width, 'h'=>$height, 't'=>$type); 
    } 

    /* create the new image */ 
    $img=imagecreatetruecolor(600,600); 
    imagecolorallocate($img, 0,0,0); 
    $x = $y = 0; 

    /* add each image to new image */ 
    foreach($sizes as $imgpath => $data){ 

     $x+=$data['w']; 
     $y+=$data['h']; 

     $tgt=imagecreatefromjpeg($imgpath); 
     imagecopymerge($img, $tgt, $x, $y, 0, 0, $data['w'], $data['h'], 100); 
     imagedestroy($tgt); 
    } 

    header('Content-Type: image/jpeg'); 
    imagejpeg($img); 
    imagedestroy($img); 
?> 
Смежные вопросы