これに関するドキュメントが見つかりません。画像をアップロードして使用しています
$config['create_thumb'] = TRUE;
親指を作成し、元の画像を保持します。
親指の画像のファイル名を取得する方法はありますか?_thumb
サムネイルの名前には自動的に追加されますが、フルネームを抽出する機能はありません。
これに関するドキュメントが見つかりません。画像をアップロードして使用しています
$config['create_thumb'] = TRUE;
親指を作成し、元の画像を保持します。
親指の画像のファイル名を取得する方法はありますか?_thumb
サムネイルの名前には自動的に追加されますが、フルネームを抽出する機能はありません。
There really is a much easier way of doing this:
if ($this->upload->do_upload()) // If file was uploaded
{
$data = $this->upload->data(); // Returns information about your uploaded file.
$thumbnail = $data['raw_name'].'_thumb'.$data['file_ext']; // Here it is
}
CodeIgniterは、サムネイル名を抽出するための関数を提供していません。ファイル名に_thumbが追加されます。サムネイル名を取得するカスタム関数を作成する場合は、これを使用します。
function generate_thumb($filename, $path = '')
{
// if path is not given use default path //
if (!$path) {
$path = FCPATH . 'somedir' . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR;
}
$config['image_library'] = 'gd2';
$config['source_image'] = $path . $filename;
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = TRUE;
$config['width'] = 75;
$config['height'] = 50;
$this->load->library('image_lib', $config);
if (!$this->image_lib->resize()) {
echo $this->image_lib->display_errors();
return FALSE;
}
// get file extension //
preg_match('/(?<extension>\.\w+)$/im', $filename, $matches);
$extension = $matches['extension'];
// thumbnail //
$thumbnail = preg_replace('/(\.\w+)$/im', '', $filename) . '_thumb' . $extension;
return $thumbnail;
}
入力:
echo generate_thumb('someimage.jpg');
echo generate_thumb('other_image.png', FCPATH . 'dirname' . DIRECTORY_SEPARATOR);
出力:
someimage_thumb.jpg
other_image_thumb.png
これがあなたのお役に立てば幸いです。ありがとうございました!!
function general_thumbnail_image($source_image_path, $width, $height){
$thumbnail_config['image_library'] = 'gd2';
$thumbnail_config['source_image'] = $source_image_path;
$thumbnail_config['thumb_marker'] = '_'.$width.'x'.$height;
$thumbnail_config['create_thumb'] = TRUE;
$thumbnail_config['maintain_ratio'] = TRUE;
$thumbnail_config['width'] = $width;
$thumbnail_config['height'] = $height;
$this->load->library('image_lib', $thumbnail_config);
if($this->image_lib->resize()){
$result['status'] = True;
//If you need complete base path of the thumbnail.
$result['thumbnail_base_path'] = $this->image_lib->full_dst_path;
//If you just need name of the thumbnail.
$source_image_name = $this->image_lib->source_image;
$extension = strrchr($source_image_name , '.');
$name = substr($source_image_name , 0, -strlen($extension));
$result['thumbnail_image_name'] = $name.$config['thumb_marker'].$extension;
//If you need path similar to source image path.
$source_image_path = $source_image_path;
$extension = strrchr($source_image_path , '.');
$name = substr($source_image_path , 0, -strlen($extension));
$result['thumbnail_image_path'] = $name.$config['thumb_marker'].$extension;
}
else{
$result['status'] = false;
$result['error'] = $this->image_lib->display_errors('', '');
}
return $result;
}
関数を呼び出しています。
$thumbnail_result = $this->generate_thumbnail_image('./assests/images/apple.jpg', 180, 180);
print_r($thumbnail_result);
出力は次のようになります。
Array
(
[status] => 1
[thumbnail_base_path] => D:/xampp/htdocs/project_name/assets/images/apple_180x180.jpg
[thumbnail_image_name] => apple_180x180.jpg
[thumbnail_image_path] => ./assets/images/apple_180x180.jpg
)
次のように、親指の画像を生成する関数を作成する必要があると思います。
function generateThumb($fileName) {
$config['image_library'] = 'gd2';
$config['source_image'] = './upload/images/clca/' . $fileName;
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = TRUE;
$config['width'] = 90;
$config['height'] = 90;
var file = "";
$this->load->library('image_lib', $config);
if(!$this->image_lib->resize()) {
echo $this->image_lib->display_errors();
} else {
// Get File Name
var file = $fileName."_thumb";
}
}
その関数を呼び出すには、まずファイルをアップロードし、ファイル名を取得して関数を呼び出す必要があります->$this->generateThumb($file_resp['file_name']);
アップロードされたファイルフォルダには、2つの画像(元の画像と_thumbサフィックスが付いた生成された親指の画像)があります。
ファイル名を取得するために、「if」条件を使用してサム画像の生成にエラーがないことを確認してから、$ fileName +"_thumb"に参加します。オブジェクトを確認した$this->image_lib
が、生成されたサム画像のファイル名への参照がないため、この方法を使用しました。
編集済み:
それが役に立てば幸い :)