@samorez777

Как вывести картинку из папки??

В базе хранится пустая картинка.на нее наносится текст с $title и сохраняется рандомно в файл с разными именами title.jpg
Код:

<?PHP foreach ($products as $item){
   $jpg_image = imagecreatefromjpeg("img/$item->images");
   $white = imagecolorallocate($jpg_image, 255, 255, 255);
   $font_path = 'E:\serv\OSPanel\domains\localhost\ verdana.ttf';
   $text = $item->title; //текст 1
   $text2 = $item->desc; //текст 2
   imagettftext($jpg_image, 25, 0, 75, 300, $white, $font_path, $text);
   imagettftext($jpg_image, 25, 0, 100, 400, $white, $font_path,$text2);
   imagejpeg($jpg_image,"img/$item->title.jpg");//сохранил картинки
   imagedestroy($jpg_image);
}
?>


Теперь хочу вывести в цикле картинки из папки,если title из БД равен названию файла в папке .
в базе хранится имена машин например Toyota,BMW которое наносится на пустую картинку и сохр. а файл создается Toyota.jpg , BMW.jpg. Как вывести.писал много выражений выводило битые картинки..
использую redbeanphp.

Помогите пожалуйста!
  • Вопрос задан
  • 573 просмотра
Пригласить эксперта
Ответы на вопрос 2
LenovoId
@LenovoId
svg, css,js
<?php
  $dir = 'images/'; // Папка с изображениями
  $cols = 3; // Количество столбцов в будущей таблице с картинками
  $files = scandir($dir); // Берём всё содержимое директории
  echo "<table>"; // Начинаем таблицу
  $k = 0; // Вспомогательный счётчик для перехода на новые строки
  for ($i = 0; $i < count($files); $i++) { // Перебираем все файлы
    if (($files[$i] != ".") && ($files[$i] != "..")) { // Текущий каталог и родительский пропускаем
      if ($k % $cols == 0) echo "<tr>"; // Добавляем новую строку
      echo "<td>"; // Начинаем столбец
      $path = $dir.$files[$i]; // Получаем путь к картинке
      echo "<a href='$path'>"; // Делаем ссылку на картинку
      echo "<img src='$path' alt='' width='100' />"; // Вывод превью картинки
      echo "</a>"; // Закрываем ссылку
      echo "</td>"; // Закрываем столбец
      /* Закрываем строку, если необходимое количество было выведено, либо данная итерация последняя */
      if ((($k + 1) % $cols == 0) || (($i + 1) == count($files))) echo "</tr>";
      $k++; // Увеличиваем вспомогательный счётчик
    }
  }
  echo "</table>"; // Закрываем таблицу
?>
Ответ написан
Комментировать
@maiskiykot
Free coder
Вообще задачу лучше решать так - картинку выводить как фон страницы, а надпись - как див в произвольном месте. Тогда отпадает необходимость использовать gd2, которая крайне ресурсоемкая
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы