Установка размеров изображения с помощью массива - PHP

0

Массив $file_ary содержит изображения из ввода файла. Это выглядит так:

Array
(
    [0] => Array
        (
            [name] => Screenshot from 2015-03-06 15:41:58.png
            [type] => image/png
            [tmp_name] => /tmp/php2b8cbW
            [error] => 0
            [size] => 87810
        )

    [1] => Array
        (
            [name] => Screenshot from 2015-03-06 15:45:00.png
            [type] => image/png
            [tmp_name] => /tmp/phpcpmK2A
            [error] => 0
            [size] => 93532
        )

)

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

  $imgSizes = array(
    '100' => '100',
    '150' => '150',
    '130' => '400'
  );


 if(!empty($file_ary)) {

        foreach($file_ary as $file) {

            foreach($imgSizes as $key => $val) {

                echo $file['name'];
                echo '<br>';
                //$resizeObj -> resizeImage(100, 100, 'crop');
                //$resizeObj -> saveImage('images/100/'.$this->id.'.gif', 100);

            }

        }

      }

Прямо сейчас foreach($imgSizes as $key => $val) { возвращает 6 изображений... по одному для каждой клавиши и по одному для каждого значения val. Я хотел бы использовать ключ и val из массива $imgSizes для установки нового размера $resizeObj → resizeImage($key, $val, 'crop'); , переименовать и сохранить его //$resizeObj → saveImage('images/'.$key.'/'.$this->id.'.gif', $key);

Я не знаю, как это делается.

Теги:
arrays

1 ответ

0
Лучший ответ

Если я хорошо понимаю ваш вопрос, вам придется немного переписать структуру массива, например:

$imgSizes = array(
    0 => array(
        'width'  => '100',
        'height' => '100'
    ),
    1 => array(
        'width'  => '150',
        'height' => '150'
    ),
    2 => array(
        'width'  => '130',
        'height' => '400'
    )
  );

if(!empty($file_ary)) {
    foreach($file_ary as $file) {
        foreach($imgSizes as $key => $val) {
            echo $file['name'];
            echo '<br>';
            $resizeObj -> resizeImage($val['width'], $val['height'], 'crop');
            $resizeObj -> saveImage('images/'.$val['width'].'/'.$this->id.'.gif', $val['width']);
        }
    }
}
  • 0
    Здравствуй. Спасибо ... но это все еще повторяет 6 пунктов.
  • 0
    Разве это не должно показать 6 предметов? Вы обрезаете 2 изображения по 3 размера, можете ли вы указать, сколько вы хотели бы видеть?
Показать ещё 1 комментарий

Ещё вопросы

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