モバイルアプリからbase64でエンコードされた形式の画像ファイルを受け入れるAPIを開発しています。
次に、そのイメージ ファイルを作成してサーバーに保存する apis タスクを実行します。
以下はコードです。
<?php
$file="mygif_image.gif";
$handle = fopen($file, "r");
if(!filesize($file)){
echo "corrupted file.."; die;
}
$image_contents = fread($handle, filesize($file));
fclose($handle);
$encoded_data = base64_encode($image_contents);
/* assume that this $encoded_data I am getting in api as request */
/* this will be the server side code, where encoded data is accepted and
I required to store image in server*/
$image_binary_content = base64_decode($encoded_data);
$im = imagecreatefromstring($image_binary_content);
if ($im !== false) {
header('Content-Type: image/gif');
imagegif($im,"mygif_image2.gif");
imagedestroy($im);
}else{
echo "some thing went wrong..";
}
?>
画像は必要な場所に適切に保存されていますが、問題はエフェクトが来ていないことです。
imagejpeg()、imagepng() などの関数は、jpg、joeg、png ファイルの場合に非常にうまく機能します。
どこがおかしいのかわからない??