CodeIgniter Проблема с уменьшением изображения - PullRequest
4 голосов
/ 01 августа 2011

Я хочу создать две миниатюры разных размеров с двумя функциями. загрузить изображение() делает большой эскиз, а uploadIhumb ($ name) {вызывает внутри первой функции} создает маленький эскиз. ПЕРВЫЙ ФУНКЦИОНАЛЬНЫЙ СОЗДАТЬ THUMBNAIL, НО ВТОРОЙ НЕ РАБОТАЕТ. Пожалуйста, решите проблему и выделите место возникновения проблемы?

enter code here:
function uploadImage()
        {
                                    $imageName2=$_FILES['file']['tmp_name'];


                $config['image_library'] = 'gd2';
                //$config['source_image']   = $imageName2;// this is temporary folder where image place on uploading time
                $config['create_thumb'] = TRUE;
                $config['maintain_ratio'] = false;
                $config['width']     = 696;
                $config['height']   = 241;
                $config['new_image'] = 'images/uploads';
                $this->load->library('image_lib', $config); 
                $this->image_lib->resize();
                $file_name= basename( $imageName2, ".tmp");
                $filename=$file_name.'_thumb.tmp'; 


        ////////////////////Rename code///////////////////////////
                $name= $this->rand_string( 6 );

                $dir=$_SERVER['DOCUMENT_ROOT'].'/images/uploads/';

                rename($dir . $filename, $dir . $name);
                echo $name;
                $this->uploadIhumb($name); //FUNCTION CALL
}

function uploadIhumb($name)
    {

                $config['image_library'] = 'gd2';
                $config['source_image'] = $_SERVER['DOCUMENT_ROOT'].'/images/uploads/'.$name;
                $config['create_thumb'] = TRUE;

                $config['width']     = 80;
                $config['height']   = 80;
                $config['new_image'] = $_SERVER['DOCUMENT_ROOT'].'images/uploads/thumbs/';
                $this->load->library('image_lib', $config); 
                $this->image_lib->resize();


}

Ответы [ 3 ]

5 голосов
/ 02 августа 2011

Нет необходимости в какой-либо другой библиотеке :-( Проблема может быть решена, если мы загружаем библиотеку изображений только один раз, в начале функции. И только инициализируемую конфигурацию для второго большого пальца. Успешный код такой же, как для транспортировки: -

{function createThumb1 ($ imageName) // имя файла передано {

        // this thumbnail created
    $config['image_library'] = 'gd2';
    $config['source_image'] = $_SERVER['DOCUMENT_ROOT'].'/uploads/'.$imageName;

    $config['create_thumb'] = TRUE;
    $config['maintain_ratio'] = false;
    $config['width']     = 80;
    $config['height']   = 80;
    $config['new_image'] = $_SERVER['DOCUMENT_ROOT'].'/images/uploads/thumbs/'.$imageName;
    $this->load->library('image_lib', $config);
    if ( ! $this->image_lib->resize()){echo $this->image_lib->display_errors();}

    $this->image_lib->clear();

    // unable to create this this thumbnail
    $config['image_library'] = 'gd2';
    $config['source_image'] = $_SERVER['DOCUMENT_ROOT'].'/uploads/'.$imageName;
    $config['create_thumb'] = FALSE;
    $config['maintain_ratio'] = false;
    $config['width']     = 696;
    $config['height']   = 241;
    $config['new_image'] =  $_SERVER['DOCUMENT_ROOT'].'/images/uploads/'.$imageName;
    //$this->load->library('image_lib', $config);  // this line cause problem
    $this->image_lib->initialize($config); // with this problem resolved
    if ( ! $this->image_lib->resize()){echo $this->image_lib->display_errors();}


    $this->image_lib->clear();






    $this->load->view('admin/upload_form',array('error' => ' ' ));





}

}

2 голосов
/ 01 августа 2011

Попробуйте очистить конфигурацию в верхней части вашей функции, используя:

$this->image_lib->clear();

Также вы также можете проверить наличие ошибок, используя:

if ( ! $this->image_lib->resize()) {
    echo $this->image_lib->display_errors();
    }

Надеюсь, это поможет.

0 голосов
/ 06 августа 2012

эй, спасибо за ваш ответ

да, это работает для создания в конце $ this-> image_lib-> clear ();

и для 2-го эскиза // $ this->load-> library ('image_lib', $ config);

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

закомментируйте 1-ю строку и замените 2-й.Ваш запрос будет решен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...