2

これに関するドキュメントが見つかりません。画像をアップロードして使用しています

$config['create_thumb'] = TRUE; 

親指を作成し、元の画像を保持します。

親指の画像のファイル名を取得する方法はありますか?_thumbサムネイルの名前には自動的に追加されますが、フルネームを抽出する機能はありません。

4

4 に答える 4

9

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
}
于 2012-07-10T08:35:36.300 に答える
3

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

これがあなたのお役に立てば幸いです。ありがとうございました!!

于 2012-07-10T06:13:41.770 に答える
1
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 
   )
于 2017-10-05T08:56:48.750 に答える
0

次のように、親指の画像を生成する関数を作成する必要があると思います。

    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が、生成されたサム画像のファイル名への参照がないため、この方法を使用しました。

編集済み:

  • ソリー、サムファイルのファイル名を取得することについてのあなたの質問を少し逃しました、私は私の投稿とコードを編集しました:)

それが役に立てば幸い :)

于 2012-07-10T03:10:27.077 に答える