PHPology is a collective of highly skilled, award winning, web gurus.
Contact Raj on 07985 467 213 or email info@phpology.co.uk

Merging images side by side with PHP and GD

Previously I wrote a script example of merging transparents PNG's side by side so here is a JPG version of the code.

  1. <?php
  2. ini_set('display_errors', 1);
  3. ini_set('memory_limit', -1);
  4. //where are the images stored
  5. $src_dir = './';
  6. //because our images were named as number i.e. 0.png, 1.png, 2.png, 3.png etc etc, using the range()
  7. $numbers = range(1, 10); //we have 10 images as a sample
  8. $dest_w = 0;
  9. foreach ($numbers as $key => $val)
  10. {
  11. $src = $src_dir . $val . '.jpg';
  12. $size = getimagesize($src);
  13. $src_gds[$key]['img'] = imagecreatefromjpeg($src);
  14. $src_gds[$key]['w'] = $size[0];
  15. $src_gds[$key]['h'] = $size[1];
  16. $dest_w += $src_gds[$key]['w'];
  17. $hts[] = $src_gds[$key]['h'];
  18. }
  19. $dest_h = max($hts);
  20. $dest_gd = imagecreatetruecolor($dest_w, $dest_h);
  21. $dest_x = 0;
  22. foreach ($src_gds as $gd)
  23. {
  24. imagecopymerge($dest_gd, $gd['img'], $dest_x, 0, 0, 0, $gd['w'], $gd['h'], 99);
  25. $dest_x += $gd['w'];
  26. imagedestroy($gd['img']);
  27. }
  28. header ("Content-type: image/jpeg");
  29. imagejpeg($dest_gd);
  30. imagedestroy($dest_gd);
  31. ?>