2011-03-07 4 views
0

私はバインドのビットです。画像の種類と圧縮を確認せずにMagick

(別の部門で管理されているサーバー上の)画像のフォルダを通過するスクリプトを作成し、すべてが圧縮されていないTIFであることを確認する必要があります。私たちのローカルボックスにはImage Magickがインストールされていますが、このサーバーはインストールされていません。このサーバーの担当者は助けにはならない(私は先週シェルアクセスを要求したとき、彼は答えました。「SSHがプラットフォームに依存するかのようにWindowsサーバです...いいえ」と答えました)。

を除いて、圧縮とファイルの種類をチェックする方法はありませんか?Image Magick

+1

TIFFはコンテナ形式であり、膨大な種類のイメージエンコードを提供します。ヘッダ構造の束を調べることなく、圧縮をチェックするのは簡単ではありません。 '32773'または' 0x8005'という値は、いくつかのラスタイメージのランレングスエンコーディングを示します:http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf – mario

+0

ああ、不思議です! :) –

答えて

0

さて、はい、ImageMagickやGD以外のものにアクセスする必要があります。まず、サーバーにもGDがないことを確認してください。これも問題を解決するためです。サーバがGD持っていないのいずれか、あなたはおそらく、いくつかの他のWebサービスを使用します(とそれに画像を送信する)またはシェルコマンドを実行するか必要があるだろう場合http://php.net/manual/en/function.getimagesize.php

:あなたがしたいGDを使用して

サーバーにインストールされている他のイメージツールを使用しています。

+0

私はgd_info()を実行しましたが、それは空白に戻ってきました。 – tkm256

0

ファイルのマジックナンバーを取得するために最初のXバイト(通常は8バイト)を読み取ることができます。オプションで、TIF情報を検索することもできます。 TIFのファイル形式の仕様を見てください。

P.S.必要に応じて例を提供します。 :)

+0

ファイルの内容を文字列として読み取るにはどうすればよいですか?私はfile_get_contentsを試しましたが、このフォーマットでは動作しません。 – tkm256

+0

freadを試してください:http://php.net/manual/en/function.fread.php –

+0

fread()にサイコロがありません。 Urgh。 – tkm256