Codeigniter image resize() проблема с именем миниатюры

Когда я изменяю размер изображения, сохраняя $config['create_thumb'] = true, Codeigniter добавляет строку «_thumb» в конце имени изображения с измененным размером.

Я хочу спросить, можно ли добавить суффикс "_thumb" в начале имени изображения.

пример: original_name.jpg

после изменения размера: original_name_thumb.jpg

Что я хочу: thumb_original_name.jpg

Любая помощь приветствуется!


person Community    schedule 29.09.2011    source источник


Ответы (3)


Вы можете попробовать это:

$data = $this->upload->data();
$config['create_thumb'] = false;
$config['new_image'] = 'thumb_'.$data['file_name'];

И если у вас есть другие проблемы с библиотекой обработки изображений CI, возможно, вы можете попробовать ImageMoo.

person shaggy    schedule 29.09.2011

Если вы не хотите добавлять суффикс _thumb в имя файла эскиза, используйте $config['thumb_marker'] = false;

person Sukhjeet Singh Mangat    schedule 30.11.2012

это может быть достигнуто следующим образом

$data = $this->upload->data();

$config['create_thumb'] = ложь;

$config['new_image'] = 'thumb_'.$data['имя_файла'];

для получения дополнительной информации об изменении размера изображения ознакомьтесь со следующим кодом.

function special_resize($oldFile, $width, $height) { $obj =& get_instance();

    $info = pathinfo($oldFile);        
    out($info);

    $tempFile = '/public/files/files/temp/' . $info['filename'] . '-' . $width . 'x' . $height . '.' . $info['extension'];
    $newFile = '/public/files/files/cache/' . $info['filename'] . '-' . $width . 'x' . $height . '.' . $info['extension'];

    //if image already exists, use it
    if(file_exists('.' .$newFile))
        return $newFile;

    //math for resize/crop without loss
    $o_size = _get_size( '/' . $info['dirname'] . '/' . $info['basename']);        

    $master_dim = ($o_size['width']-$width < $o_size['height']-$height?'width':'height');

    $perc = max( (100*$width)/$o_size['width'] , (100*$height)/$o_size['height']  );

    $perc = round($perc, 0);

    $w_d = round(($perc*$o_size['width'])/100, 0);        
    $h_d = round(($perc*$o_size['height'])/100, 0);

            // end math stuff

    /*
     *    Resize image
     */
    $config['image_library'] = 'gd2';
    $config['source_image'] = $oldFile;
    $config['new_image'] = '.' . $tempFile;
    $config['maintain_ratio'] = TRUE;
    $config['master_dim'] = $master_dim;
    $config['width'] = $w_d + 1;
    $config['height'] = $h_d + 1;

    $obj->image_lib->initialize($config);

    $obj->image_lib->resize();

    $size = _get_size($tempFile);    

    unset($config); // clear $config

    /*
     *    Crop image  in weight, height
     */

    $config['image_library'] = 'gd2';
    $config['source_image'] = '.' . $tempFile;
    $config['new_image'] = '.' . $newFile;
    $config['maintain_ratio'] = FALSE;
    $config['width'] = $width;
    $config['height'] = $height;
    $config['y_axis'] = round(($size['height'] - $height) / 2);
    $config['x_axis'] = 0;

    $obj->image_lib->clear();
    $obj->image_lib->initialize($config);
    if ( ! $obj->image_lib->crop())
    {
        echo $obj->image_lib->display_errors();
    }

    $info = pathinfo($newFile);        
    out($info);

    return $newFile;
}
person Community    schedule 30.11.2012