Станислав

Станислав
Рейтинг
258
Регистрация
27.12.2009

все зависит от сайта и от объема картинок, если будет лежать в корне штук 10, пусть лежат так (я бы конечно в отдельную папку засунул). Если регулярно пополняться будут, то создавайте папки по дате в формате /uploads/2013/08/картинка.jpg - оптимальный не нагруженный вариант, если будете ползать по фтп.

bay_ebook, все же вы не правы )

Сейчас протестировал и понял что режет только с одной стороны.

Взял пример изображения размером 1920x1080

Скриптом сжал картинку по высоте до 350px, получил ширину 622, затем прогнал через crop для получения размера 500х350, отрезал кусок ширины в 122px, затем побежал в фотошоп для эксперимента.

Взял тот же оригинальный размер 1920x1080, сжал ее по высоте, обрезал с двух сторон по ширине (слева 61px и справа 61px).

На выходе получил другое изображение, отличное от cropa. Т.е. crop режет изображение именно слева, а не рассчитывает соотношение сторон для обрезки изображения относительно ее центра.

Вобщем вопрос открыт ( Как же все таки заставить crop резать слева и справа, а не с одной стороны.

bay_ebook:
неправильно понимаете.

☝ вот оно, значит у меня все правильно режет, как надо.

размеры да я не знаю, узнаю их как раз токи

ms-dred:

~~~~~
$image = getimagesize($source_size);
~~~~~~

спасибо.

видать я что то жестко не понимаю )))

в мауле

x_axis Устанавливает координату X в пикселях для обрезки изображений. Например, установка в 30 обрежет изображение на 30 пикселей слева.

Я понимаю это так, если установили 30px значил слева срежет 30px.

Или все же я не прав? И она уже заведомо учитывает размер картинки и если 30px стоит, то она режет по 15px с каждой стороны...

        $config['image_library']    = 'gd2';

$config['source_image'] = $source;
$config['new_image'] = $path;
$config['create_thumb'] = false;
$config['maintain_ratio'] = true;
$config['master_dim'] = $master_dim;
$config['width'] = $width;
$config['height'] = $height;

$this->load->library('image_lib', $config);

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

$this->image_lib->clear();

if( ! $this->config->item('ImageMagick'))
{
return $source_size;

}
$image = getimagesize($source_size);
$w_img = $image[0] - $width;
$h_img = $image[1] - $height;

// Сколько еще необходимо обрезать
$x_axis = $w_img > 0 ? $w_img : 0; // получаем 50px
$y_axis = $h_img > 0 ? $h_img : 0;

$config['image_library'] = 'ImageMagick';
$config['library_path'] = $this->config->item('ImageMagick');
$config['source_image'] = $source_size;
$config['x_axis'] = $x_axis; // 50
$config['y_axis'] = $y_axis; // 0

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

if ( ! $this->image_lib->crop())
{
return $this->image_lib->display_errors();
}

режу слева 50px, нуна 25 слева и 25 справа

пойду в мауле почитаю, но я вроде там не видел этого.

да это понятно, я просто не врублю как срезать справа 25

bay_ebook:
$this->db->set('field', 'field+1', FALSE);

$this->db->insert('mytable');
// сделает INSERT INTO mytable (field) VALUES (field+1)

$this->db->set('field', 'field+1');
$this->db->insert('mytable');
// сделает INSERT INTO mytable (field) VALUES ('field+1')


вроде у CI классная документация, неужели так тяжело её читать?

работает ) спасибо.

по доки там много столько написано что глаза разбегаются )

ну я его уже задал он у меня равен к примеру 50

а картинка по ширине 500

нужно получить 450

Он обрезает ее только слева, а нужно как то сделать чтобы слева 25 пикселей среза и справа 25, а не с одной стороны.

Или я не правильно вас понял?

Так же интересует еще один момент, после маштабирования изображения взял ширину и высоту и хотелось бы обрезать картинку к примеру по ширине с обоих сторон, а не только слева.

Как такое сделать? Подсчитать сколько нужно сделать отступ слева смогу, а вот что потом делать пока ума не приложу.

Уже сделал )

Вобще взял инфу по картинки, а именно ширину и высоту после сжатия, сравнил стороны картинки с указанным размером, получил значения, если положительные то режим сторону, если отрицательные или 0, то пропускаем.

Не думал что так просто будет.

Всего: 1561