将base 64字符串转换为图像文件?

将base 64字符串转换为图像文件?

我正在尝试将base 64图像字符串转换为图像文件。这是我的base 64字符串:

http://pastebin.com/ENkTrGNG

使用以下代码将其转换为图像文件:

function base64_to_jpeg( $base64_string, $output_file ) {
    $ifp = fopen( $output_file, "wb" ); 
    fwrite( $ifp, base64_decode( $base64_string) ); 
    fclose( $ifp ); 
    return( $output_file ); }$image = base64_to_jpeg( $my_base64_string, 'tmp.jpg' );

但我得到了一个错误invalid image这里怎么了?


大话西游666
浏览 494回答 3
3回答

噜噜哒

你得把上面写的那部分去掉data:image/png;base64,在图像数据的开头。之后是实际的base 64数据。只要把所有的东西都去掉,包括base64,(打电话前)base64_decode()你会没事的。

倚天杖

也许像这样function save_base64_image($base64_image_string, $output_file_without_extension, $path_with_end_slash="" ) {     //usage:  if( substr( $img_src, 0, 5 ) === "data:" ) {  $filename=save_base64_image($base64_image_string,      $output_file_without_extentnion, getcwd() . "/application/assets/pins/$user_id/"); }           //     //data is like:    data:image/png;base64,asdfasdfasdf     $splited = explode(',', substr( $base64_image_string , 5 ) , 2);     $mime=$splited[0];     $data=$splited[1];     $mime_split_without_base64=explode(';', $mime,2);     $mime_split=explode('/', $mime_split_without_base64[0],2);     if(count($mime_split)==2)     {         $extension=$mime_split[1];         if($extension=='jpeg')$extension='jpg';         //if($extension=='javascript')$extension='js';         //if($extension=='text')$extension='txt';         $output_file_with_extension=$output_file_without_extension.'.'.$extension;     }     file_put_contents( $path_with_end_slash . $output_file_with_extension, base64_decode($data) );     return $output_file_with_extension;}
打开App,查看更多内容
随时随地看视频慕课网APP