2017-06-02 47 views
-1

ユーザがアップロードした画像ファイルが.png画像でない場合は、Imagemagickを使用して画像ファイルを.pngに変換して保存します。サーバ。ただし、HTMLフォームの.tmpファイルしか使用できないため、.tmp(およびそのファイル名)をそのままにしてCONTENTSを変換する必要があります。これは、これまでの私のコードです:.tmpファイルの内容をpngに変換する方法

if (exif_imagetype($tmpName) != IMAGETYPE_PNG) { 
    $uploadOk = 0; // don't upload later 
    $im = new Imagick("$tmpName"); 
    $im->setImageFormat("png"); 
    file_put_contents($tmpName, ''); 
    file_put_contents(file_get_contents($im), $tmpName); 
    if (exif_imagetype($tmpName) != IMAGETYPE_PNG) { //check again 
     // try again or throw error somehow? 
    } else { 
     $uploadOk = 1; 
    } 
} else { 
    $uploadOk = 1; 
} 

どのように適切に元の(非PNG)画像のPNGバージョンに私の一時ファイルの内容を変換するために、Imagickを使用していますか?

編集:スクリプトが正常に動作する必要がありますが、問題はまったく異なるものです。この時点ではわかりません。

+0

...それはあなたのために働く場合はポストファイル

// This equals to 'some/server/path/temp/filename.tmp' $original_image = $_FILE['tmp_name']; // Lets work on the Imagick... $img = new Imagick($original_image); $img->setImageBackgroundColor('white');// red, black..etc $img = $img->flattenImages(); // Use this instead. $img->setImageFormat('png'); $new_image_name = 'nice_image_name.png'; $img->writeImage($new_image_name); 

を参照してください取得します。ここのコードは機能しているのですか?そうでない場合、それは何をしますか?あなたはそれが何をすると思いますか? – Mike

答えて

0

IMAGICKライブラリを使用する場合は、次のようなものを使用できます。 ... .tmpファイルの取得方法を説明する必要があります。 ...

..私は問題が何であるかについて混乱してい

+0

申し訳ありませんが、私はより具体的であったはずです。 .tmpは基本的なhtmlファイルの送信フォームからのものです。しかし、これは動作します、ありがとう! –

関連する問題