为什么imagecopymerge在以不同顺序加载时无法加载png图像? PHP

时间:2016-03-10 20:53:26

标签: php

$result=count($ingredient);
$height=$result*100+350;
  $my_img = imagecreate( 703, $height );
  $black = imagecolorallocate($my_img, 0, 0, 0);
  $my_img1 = imagecreatefrompng("./Ingredients/topbun.png");
  $my_img3 = imagecreatefrompng("./Ingredients/bottombun.png");
  imagecopymerge($my_img, $my_img1, 0, 0, 0, 0, 700, 250, 100);
  $yaxis=150;
  $small='mustard & ketchup & mayo & bbq & brown mustard & chipotle mayo';
  for ($x=0; $x<$result;$x++) {
          $smallcheck=strpos($small, $ingredient[$x-1]);
          if ($smallcheck===false) {
          $yaxis=$yaxis+105;
          } else {$yaxis=$yaxis+38;
          }
          $my_img2 = imagecreatefrompng("./Ingredients/$ingredient[$x].png");
          imagecopymerge($my_img, $my_img2, 0, $yaxis, 0, 0, 700, 100, 100);
          };
  $last = end($ingredient);
  $buncheck=strpos($small, $last);
 if ($buncheck===false) {
          $yaxis=$yaxis+105;
          } else {$yaxis=$yaxis+38;
          }
  imagecopymerge($my_img, $my_img3, 0, $yaxis, 0, 0, 700, 100, 100);
  imagecolortransparent($my_img, $black);
  $my_img4 = imagecreate(703, $yaxis+103);
  imagecopymerge($my_img4, $my_img, 0, 0, 0, 0, 703, $yaxis+103, 100);
  imagecolortransparent($my_img4, $black);
  imagepng( $my_img4, "./burgerpics/".$data[0].".png" );
  imagedestroy($my_img4);

这是我设计的代码,用于根据用户输入创建汉堡的png图像。代码工作得很好,但后来我添加了一种新成分(生菜)。当我把生菜放在汉堡馅饼上面时,汉堡馅饼就消失了。当生菜在汉堡肉饼下面时,它们都显得很好。

我认为它可能与文件大小有关,因为生菜是我创建的最大的成分文件(27.6KB)。我不相信,因为那仍然是一个非常小的文件。

关于可能导致此问题的任何想法?

Lettuce on top of burger patty

Lettuce under burger patty

0 个答案:

没有答案