mediaプラグイン応用(8) VersionファイルのmimeTypeを任意で出力
Mediaプラグインの「Versionファイル機能」で出力される縮小画像の、ファイルタイプを任意に選べる改修を追加しました。
注:この記事は、Viewで呼び出し時にVersionファイルを作成する 改修済みのソースをベースに記載しています。
mimeTypeの設定
VersionファイルのmimeTypeを変更するには、convert設定を適宜変更します。
例
Configure::write('Media.filter.image', array( - 'xxs' => array('convert' => 'image/png', 'fitCrop' => array(16, 16)), + 'xxs' => array('convert' => 'image/jpeg', 'fitCrop' => array(16, 16)),
core.phpやbootstra.phpで設定すると、全ての画像のxxsサイズ縮小ファイルが jpg 固定になります。
mimtType適宜指定したい場合は、例えば以下の様に改修します(引用ソースの委細は こちら 参照)
- Versionファイル出力時、$options['mimeType']の指定がある場合、convert設定を$options['mimeType']で上書き。
app/plugins/media/libs/upfile.php(Versionファイル出力ライブラリ)
/* Versionファイルの個別作成 */ function make_version($path, $orig_filepath, $options=array()) { (中略) // Confirgureの設定 $name = Medium::name($orig_filepath); $filters = Configure::read('Media.filter.'. strtolower($name)); if (!isset($filters[$dir])) { return false; } - Configure::write('Media.filter.'. strtolower($name), array($dir => $filters[$dir])); + $filter[$dir] = $filters[$dir]; + // mimeType設定 + if (isset($options['mime_type']) && !empty($options['mime_type'])) { + $filter[$dir]['convert'] = $options['mime_type']; + } + Configure::write('Media.filter.'. strtolower($name), array($dir => $filter[$dir])); // Versionファイル出力 $Media->setup($Model); $result = $Media->make($Model, $orig_filepath);
- 上記関数を呼び出す箇所で、適宜$options['mime_type']を設定。
app/plugins/media/views/elements/medium_edit.ctp(改修Attachmentエレメント)
$file = $upfile->file( 'filter/'.$previewVersion, $item, array( 'model_name' => $model, + 'mime_type' => 'image/jpeg', ) );