1

メディア ファイル形式を別の形式に変更できるプラグイン/コンポーネントを開発しようとしています。具体的には、「tiff」ファイルを「jpg」画像ファイルの配列/単一コピーに変換する必要があります。

親切にガイドしてください、それをどのように実装することができますか、それをダウンロードするか、それを開発するための助けを借りることができるチュートリアルリンクがあります. 前もって感謝します。

4

1 に答える 1

3

これは、CMS(CakePHP 1.2で構築されています。私が気付いていない重大な不一致がある場合は申し訳ありません)で動作を使用して行いました。これにより、コントローラーのロジックが非常に簡単になります(実際、変更を加えずにベイク処理されたコントローラーを使用します)。

残念ながら、TIFFはGD(PHPのデフォルトの画像操作ライブラリ)でサポートされているファイル形式ではありません。実際の変換自体を行うには、ImageMagickまたは同等のツールを使用する必要がありますが、CakePHPプロジェクトに実装するためのロジックは、ここで説明するものと何ら変わりはありません。

この動作(この場合)は、サムネイルおよびページ解像度として画像を生成し、アップロードされたファイル形式をJPEGに変換するために使用されました。

そのbeforeSave()メソッドでは、データが指定されていること(およびエラーがないこと)を確認してtmp_nameから、投稿されたデータから値を取得しました(投稿されたデータオブジェクトを削除しました)。

そのafterSave()方法では、実際に画像変換タスク自体を実行し(生成された画像をディスク上の予想される場所に配置)、アップロードされた画像のIDで拡張モデルの外部キーを更新しました。これはafterSave()操作で行うため、ディスク上のファイルに名前を付けるために使用するデータベースIDがあります。

そのafterDelete()方法では、ディスク上のファイルのリンクを解除します。

モデルでの動作の使用は、モデルに指示するのと同じくらい簡単です(ContentImage動作の名前はどこにありますか)。

var $actsAs = array('ContentImage');

動作を実装するモデルがいくつかあったため、モデルを使用して出力ディレクトリを定義しましたが、たとえばモデルでは、次のように実行するのが正しいと感じました。

function getThumbnailDir() {
    return WWW_ROOT.'img'.DS.'upload'.DS.'thumb';
}

動作自体では、出力パスは次のようになります。

$Model->getThumbnailDir().DS.$Model->id.'.jpg'
于 2012-07-23T09:01:41.003 に答える