Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
403 / 19 / 5
Регистрация: 17.01.2017
Сообщений: 572

Как добавить текст в картинку которая уже находится на сервере?

19.11.2019, 12:47. Показов 724. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть функция размещения картинки, и я решила эту функцию немного переделать и теперь в картинку добавляется текст. Таких картинок на сайте много, около несколько тысяч, выгружать их с сайта и добавлять текст слишком долго, есть ли возможность на php сделать так, чтобы всё происходило в режиме онлайн?

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

Вот мой код добавление картинки с текстом:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
function upload_file($path, $w, $h)
    {
        $type = $_FILES['filename']['type'];
        $size = $_FILES['filename']['size'];
        $filename = $_FILES['filename']['name'];
        $source = $_FILES['filename']['tmp_name'];
        $target = $path  . $filename;
        $ext = strtolower(strrchr($_FILES["filename"]["name"],"."));
        $blacklist = array(".jpg", ".gif", ".png");
        
        if(in_array($ext,$blacklist))
        {
          if(is_uploaded_file($_FILES['filename']['tmp_name']))
           {
            
              move_uploaded_file($source, $target);
              
           if(preg_match('/[.](GIF)|(gif)$/', $filename)) {
                  $im = imagecreatefromgif($path.$filename) ; 
                }
                if(preg_match('/[.](PNG)|(png)$/', $filename)) {
                  $im = imagecreatefrompng($path.$filename) ;
                }
                
                if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) 
                {
                  $im = imagecreatefromjpeg($path.$filename); 
                }
                            
                            $w_src = imagesx($im); 
                            $h_src = imagesy($im);
                            
                            $ratio = $w / $h;
                            $src_ratio=$w_src/$h_src;
                            if ($ratio<$src_ratio) 
                            { 
                              $h = $w/$src_ratio; 
                            } 
                            else 
                            { 
                              $w = $h*$src_ratio; 
                            }
                            
                            $dest = imagecreatetruecolor($w,$h);
                            $white = imagecolorallocate($dest, 255, 255, 255);
                            imagecopyresampled($dest, 
                                                 $im, 
                                                 0, 
                                                 0, 
                                                 0, 
                                                 0, 
                                                 $w, 
                                                 $h, 
                                                 $w_src, 
                                                 $h_src);    
                            
                           
                            $date=time();
                           
                             Header("Content-type: image/jpeg");
                            $color=ImageColorAllocate($dest, 250, 0, 0); //получаем идентификатор цвета
                            $font = "path/tahoma.ttf"; // путь к шрифту
                            $text = "My text";
                            ImageTTFtext($dest, 24, 0, $w-320, $h-24, $white, $font, $text);
                            $img = $date.".jpg";
                            $delfull = $path.$filename;
                            imagejpeg($dest, $path.$date.".jpg");
                            unlink ($delfull);
                            ImageDestroy($dest); //освобождаем память и закрываем изображение 
                return $img;
              }
             else return $img = '';
            
        }
        else return $img = '';
        
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.11.2019, 12:47
Ответы с готовыми решениями:

Как получить данные из БД, которая находится на сервере?
Как получить данные из БД MySQL , которая находится на сервере . Подскажите что почитать и с чего нужно начинать

Как вызвать картинку из ресурсов, которая находится в подпапке
Не могу понять как вызвать картинку из ресурсов. В проекте у меня в папке images есть картинка, как ее вывести в PictureBox? Вот скрин...

Как загрузить картинку которая находится в папке с ресурсами
У меня есть проект в intellij idea и в папке src находится файл apple.jpeg. Как создать переменную типа Image(java.awt) содержащую эту...

5
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
19.11.2019, 12:52
Дык функция уже есть ) а в чем вопрос?
0
403 / 19 / 5
Регистрация: 17.01.2017
Сообщений: 572
19.11.2019, 12:56  [ТС]
Вопрос в том что эта функция работает так. Когда я добавляю картинку,то в неё добавляется текст, а мне надо, чтобы текст добавился в картинки которые уже размещены на сервере.
0
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
19.11.2019, 13:17
Дык и переписать-то не проблема )) Только сразу договоримся: не проверял
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function upload_file($path, $w, $h) # $path = 'dir/image.jpg';
      $im = imagecreatefromjpeg($path); 
                
    $w_src = imagesx($im); 
    $h_src = imagesy($im);
    
    $ratio = $w / $h;
    $src_ratio=$w_src/$h_src;
    if ($ratio<$src_ratio) 
    { 
      $h = $w/$src_ratio; 
    } 
    else 
    { 
      $w = $h*$src_ratio; 
    }
    
    $dest = imagecreatetruecolor($w,$h);
    $white = imagecolorallocate($dest, 255, 255, 255);
    imagecopyresampled($dest, 
                         $im, 
                         0, 
                         0, 
                         0, 
                         0, 
                         $w, 
                         $h, 
                         $w_src, 
                         $h_src);    
    
   
    $date=time();
   
     Header("Content-type: image/jpeg");
    $color=ImageColorAllocate($dest, 250, 0, 0); //получаем идентификатор цвета
    $font = "path/tahoma.ttf"; // путь к шрифту
    $text = "My text";
    ImageTTFtext($dest, 24, 0, $w-320, $h-24, $white, $font, $text);
    $img = $date.".jpg";
    imagejpeg($dest, $path);
    ImageDestroy($dest); //освобождаем память и закрываем изображение 
    return $img;
}
0
403 / 19 / 5
Регистрация: 17.01.2017
Сообщений: 572
20.11.2019, 08:39  [ТС]
Почему не удаётся сохранить файл с помощью imagejpeg, под тем же названием, под которым загружаю на сервер?
PHP
1
2
$img = pathinfo($_FILES['filename']['name'], PATHINFO_FILENAME);
imagejpeg($dest, $path."$img"."$ext");
Если например в имени файла добавить дополнительный символ цифру или букву, то файл сохраняется.
0
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
20.11.2019, 15:23
Katerina1993, Это может быть по двум причинам:
1. Файл с тем же именем заблокирован для записи (открыт в редакторе, например)
2. Имя файла совпадает с именем каталога.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.11.2019, 15:23
Помогаю со студенческими работами здесь

Как по нажатии на картинку, которая находится на панели, перетаскивать её мышкой
Вопросы такие: 1) как по нажатии на картинку которая находится на панели перетаскивать её мышкой и при отпускании что бы она оставалась...

Как записать картинку в ImageBox, которая находится на первой форме из класса
Добрый день. В программе есть форма (Form1) и класс (Functions.cs), подскажите пожалуйста как из класс получить доступ к первой форме и как...

Как добавить текст на картинку?
&lt;td height=&quot;60&quot; colspan=&quot;2&quot; &gt;&lt;img src=&quot;image/up.png&quot; width=100% height=&quot;60&quot; /&gt;&lt;/td&gt; Картинку нужно добавить не как картинку фона, а...

Как вставить значение поля формы типа double из access 97 в таблицу, которая находится на ms sql сервере
Как вставить значение поля формы типа double из access 97 в таблицу, которая находится на ms sql сервере. Есть старая программа в access...

Как сделать, при нажатии на картинку (которая уже является ссылкой другой карт) выходила другая
Я далеко не профи, но делаю один очень хороший сайт...в том числе и для практики.. Так проблема встала в следующем. Есть картинка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru