我使用https://github.com/lunakid/AnimGif类。它使我动画了4创建的png图像到gif。如果没有imagetruecolortopalette,图片质量会很差(像素化)。使用imagetruecolortopalette时,它将失去透明背景。
《守则》赋予了使用模版切割的图像,并覆盖了也使用模版切割的其他图像。
代码如下:
$im = imagecreatetruecolor(64, 110);
$farbe_body = imagecolorallocate( $im, 255, 0, 255);
imagefill ( $im, 0, 0, $farbe_body );
imagecolortransparent($im, $farbe_body);
$userimage = imagecreatefromstring("$userimage");
imagecopy($im, $userimage, 0, 0, 0, 0, 64, 80);
$cut = imagecreatefromgif("cut_image.gif");
imagecopy($im_1, $cut, 0, 0, 0, 0, 64, 110);
$im_1 = imagecreatetruecolor(110, 110);
$farbe_body_1 = imagecolorallocate ( $im_1, 255, 0, 255 );
imagefill ( $im_1, 0, 0, $farbe_body_1 );
imagecolortransparent($im_1, $farbe_body_1);
$userimage_2 = imagecreatefromstring("$userimage");
imagecopy($im_1, $userimage_2, -3, 0, 0, 0, 64, 90);
$farbe_body_2 = imagecolorallocate ( $im_1, 255, 0, 255 );
imagefill ( $im_3, 0, 0, $farbe_body_2 );
imagecolortransparent($im_1, $farbe_body_2);
$farbe_body_3 = imagecolorallocate($im_1, 255, 0, 255);
$cut_2 = imagecreatefromgif("cut_image_2.gif");
imagecopy($im_1, $cut_2, 0, -1, 0, 0, 64, 110);
imagecolortransparent($im_1, $farbe_body_3);
imagecopymerge($im, $im_1, 3, 0, 0, 0, 64, 110, 100);
$frames = array($im);
$durations = array(20, 20, 20, 20);
$gc = new GifCreator\GifCreator();
$gc->create($frames, $durations, 5);
$gifBinary = $gc->getGif();
header('Content-type: image/gif');
header('Content-Disposition: filename="butterfly.gif"');
echo $gifBinary;
exit;