Как изменить размер изображения из файла получить контент

0

Я использую codeigniter, и я хочу изменить размер изображения у пользователя, загружающего через url.

Вот мой код:

            //upload via url
            $url = $this->input->post('photo');
            /* Extract the filename */
            $filename = substr($url, strrpos($url, '/') + 1);
            /* Save file wherever you want */
            file_put_contents('myuploads/'.$filename, file_get_contents($url));
            //resize start
            $config['image_library'] = 'gd2';
            $config['source_image']  = $filename;
            $config['overwrite']     = TRUE;
            $config['width'] = 59;
            $config['height'] = 90;
            $this->load->library('image_lib', $config);
            $this->image_lib->initialize($config);
            $this->image_lib->resize();
            $data=array(
                'username'=>$this->input->post('username'),
                'deskrip'=>$this->input->post('deskrip'),
                'photo'=>$filename
              );
            $this->db->where('id',$id);
            $outp = $this->db->update('user',$data);

Загрузка работает, но проблема заключается в том, что изображение не будет изменяться в 59х90 и все еще в исходном размере.

Любой ответ?

Большое спасибо..

  • 0
    Сначала запустите phpinfo (); и посмотрите, является ли gd2 установленным модулем.
  • 0
    Вы пытались отладить? Что сработало? Где это перестает работать?
Теги:
codeigniter
upload

2 ответа

0

Может быть немного не по теме (не через codeigniter), но я нашел, что этот метод будет немного легче в моем проекте.

Я использовал эту логику для создания логики обрезки изображений.

$value = "picture.jpg";
$x = $p[0];
$y = $p[1];
$w = $p[2];
$h = $p[3];

$targ_w = $w;
$targ_h = $h;
$jpeg_quality = 90;

$src = REAL_PATH."uploads/".$value;
$src_end = $path."/".$value;
$ext = pathinfo($src, PATHINFO_EXTENSION);
if(($ext == "jpg" || $ext == "jpeg") && isset($x) && isset($y) && isset($w))
{
    $img_r = imagecreatefromjpeg($src);
    $dst_r = ImageCreateTrueColor( $targ_w, $targ_h );

    imagecopyresampled($dst_r,$img_r,0,0,$x,$y,
    $targ_w,$targ_h,$w,$h);
    unlink($src);
    imagejpeg($dst_r,$src_end,$jpeg_quality);
}
0

resize() работает или нет, вы можете увидеть ошибку:

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

см. документацию. Хороший учебник по изображению Manipulation, от tutsplus

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

благодаря

Ещё вопросы

Сообщество Overcoder
Наверх
Меню