1

您好,我从输入表单上传数据:图像,它适用于 png 和 jpg,但我无法使用 GIF。

  <input value="data:image/gif;base64,...................................." type="hidden" /> 

我需要的:

  1. 从字符串创建文件而不会丢失动画。(另一个问题)

  2. 复制到文件夹

问题

  1. 无论我试图上传什么 gif,我都会从 if (!$image) 中得到一个错误,该图像无效。为什么 ?

  2. 如果我删除 $image = @imagecreatefromgif($image); 所有作品,但复制的图像只是 gif 的第一帧,所以它不是动画的(我听说 GD 有问题,也许我可以从 datestring 复制完整的图像,但如何正确保存?)

  3. 我尝试使用 Gifencoder 和 Gifdecoder 和 imagemagick,但问题是它无法识别来自数据字符串的图像,我需要将它弄掉吗?

这是我的代码

function ImageUploadString($data_string) 
{
 $data_string = str_replace('data:image/gif;base64,', '', $data_string); 
 $data_string = base64_decode($data_string);   // decode image from base64
 $image = imagecreatefromstring($data_string);

 if ($image !== false) {
 $random_imagename = str_shuffle(MD5(microtime()));
 $extention = "gif";
 $ufname = 'folder/'.$random_imagename.'.'.$extention;

$image = @imagecreatefromgif($image); /* Attempt to open */

 if (!$image) {
 imagedestroy($image);
  die('gif error');
   }

 imagegif($image, $ufname);

  }
     }

  $imagebase = "data:image/gif;base64,..........................................";
  ImageUploadString($imagebase); 
4

0 回答 0