使用php创建图像

时间:2011-12-07 12:09:27

标签: php

我尝试使用.jpg图片和ffmpeg创建视频片段,正在创建.jpg图片,如下所示:

  $str=$_REQUEST['data_array'];//gets the base64 encoded image data;  
  $count =$_REQUEST['count'];//gets number of images i've to create;
  $edited_str=substr($str,23,strlen($str)-1);// 
  $edited_str=base64_decode($edited_str);  
  $f=fopen("Images/temp".$count.".jpg","w");//am creating temp.jpg file
  fwrite($f,$edited_str);//placing my decoded data into file
  fclose($f); 

上面创建的图像与普通的.jpg图像有什么不同?

1 个答案:

答案 0 :(得分:0)

这一行:

$edited_str=substr($str,23,strlen($str)-1);

使它与众不同。如果这是文件的完整base64 sting,那么这会削减它并破坏它。也许你正在前面添加一些东西。

如果您只是从正面添加的东西,那么它应该与使用base64编码的原始文件相同。

如果你想从另一个页面以这种方式获取信息,我建议使用$ _POST而不是$ _REQUEST,原因有很多。

编辑:我不会说php中的视频操作是不可能的。我认为甚至还有一个工具包......这是一个:

http://phpvideotoolkit.sourceforge.net/

指出:

  

它可以执行视频格式转换,将视频帧提取到单独的图像文件中,并从一组单独的视频图像中组合视频流。

没有测试过,但计划有一天尝试一下。

EDIT2:在php网站上,你可以尝试一些问题,但为了提供更多帮助,需要提供更多信息。直接检查文件,确保正确发送和解密。

我还没有测试过这些。

有一条建议是使用大文件:

$decodedstring=base64_decode(chunk_split($encodedstring));

另一个是如果你使用javascript canvas.toDataURL()然后你需要将空格转换回来:

$encodedData = str_replace(' ','+',$encodedData);
$decocedData = base64_decode($encodedData);

http://php.net/manual/en/function.base64-decode.php