Как динамически изменять размер изображения на ходу с помощью Codeigniter / PHP?

Вот URL-адрес изображения Foursquare, которым я делюсь: -

https://igx.4sqi.net/img/general/width960/59805036_Qt3WZYJ5z3_LPh8tpG4wtqJSrVokkKioxYebWogfOjo.jpg

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

https://igx.4sqi.net/img/general/200x1600/59805036_Qt3WZYJ5z3_LPh8tpG4wtqJSrVokkKioxYebWogfOjo.jpg

Размер изображения автоматически изменяется в зависимости от размера 200x1600. Задайте любое измерение, и размер изображения изменится автоматически, что доказывает, что размер не задан заранее.

Когда указанная выше ссылка помещается в URL-адрес, размер изображения автоматически изменяется. Как этим можно управлять динамически при запуске с помощью Codeigniter или PHP?

Я понятия не имею об этом.

если вы можете управлять этим статически - вы также можете сделать это динамически - просто используйте переданные аргументы (в вашем случае width960 и 200x1600)

sintakonte 09.08.2018 15:52

Вы не поняли моего вопроса?

Saswat 09.08.2018 18:20

ты хочешь заманить меня? Я думаю, я прекрасно понимаю, что вы имеете в виду ... есть предопределенные наборы, которые вы можете определить, и размер изображения изменяется на основе этой информации, например. igx.4sqi.net/img/general/height400/… отлично работает, с другой стороны, если вы используете что-то, что не определено как igx.4sqi.net/img/general/heig1ht400/…, вы ничего не получите - imho, это довольно простая задача, которую вы задаете здесь ...

sintakonte 09.08.2018 18:59

Я хочу создать такую ​​систему на Codeigniter или на собственном PHP. Мне было интересно, есть ли какие-нибудь учебники или библиотеки, которые это делают. Так как таких найти не удалось, то и спросил здесь. Я просто не хочу изменять размер изображения, изменяя размер в данной ссылке, я хочу построить такую ​​систему. И да, дайте нестандартный размер, например, 353х417. Вы получите точный размер. Так что ничего предопределенного нет.

Saswat 09.08.2018 19:52

ofc его предопределено - не размер, а набор предопределен - вы можете использовать такие ключевые слова, как ширина, высота и тому подобное, и размеры являются динамическими ... и если вы используете библиотеку манипуляции с изображениями, вы должны легко получить то, что хотите, возьмите приглядитесь сюда ... (codeigniter.com/user_guide/libraries/…), исходное изображение должно соответствовать - вы не можете использовать изображение с размером 300x200 и ожидать, что значение высоты 2000 пикселей даст подходящий результат

sintakonte 09.08.2018 21:08
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
5
316
1

Ответы 1

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

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

<?php

class Image extends CI_Controller
{

    public function resize($filename, $width, $height){

        // path to image in your project
        $image_path = 'uploads/img/'.$filename;

        // if image doesn't exist show 404 error
        if (!file_exists($image_path))
            show_404();

        // Load image library
        $this->load->library('image_lib');


        // configure image library
        $config = array(
            'image_library' => 'gd2',
            'source_image' => $image_path,
            'dynamic_output' => true,
            'width' => $width,
            'height' => $height,
        );

        // load configuration
        $this->image_lib->initialize($config);

        // resize
        $this->image_lib->resize();

    }

}

Теперь откройте свой браузер и попробуйте: localhost / project_folder / image / resize / example.jpg / 500/500

чтобы URL-адрес выглядел так, как в вопросе, вы можете добавить маршрут в файл конфигурации маршрутов.

Другие вопросы по теме