Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как получить переменные из CSV и зациклить выполнение скрипта?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Заранее благодарен:)))
djonci
Отправлено: 23 Марта, 2019 - 19:16:10
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Март 2019  


Помог: 0 раз(а)




Друзья! Помогите автоматизировать скрипт нанесения текста на изображение.

Что нужно:

1.Нужно чтобы переменные name, job, email брались из файла csv или txt. Где строки такого вида (name, job, email, filename)
2. При создании файла необходимо подставлять имя из переменной которая берется из записи: filename
3.Зациклить создание картинок пока не закончатся строки в текстовом файле.
4. Чтобы создавалась запись в отдельном файле c текстом о созданном файле с полями: (filename, ссылка на файл)

Понимаю что для многих это простая задача... ВыручайтеУлыбка Заранее благодарю.

Сам скрипт:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. // link to the font file no the server
  4. $fontname = 'font/Capriola-Regular.ttf';
  5. // controls the spacing between text
  6. $i=30;
  7. //JPG image quality 0-100
  8. $quality = 90;
  9.  
  10. function create_image($user){
  11.  
  12.                 global $fontname;      
  13.                 global $quality;
  14.                 $file = "covers/".md5($user[0]['name'].$user[1]['name'].$user[2]['name']).".jpg";      
  15.        
  16.         // if the file already exists dont create it again just serve up the original  
  17.         //if (!file_exists($file)) {   
  18.                        
  19.  
  20.                         // define the base image that we lay our text on
  21.                         $im = imagecreatefromjpeg("pass.jpg");
  22.                        
  23.                         // setup the text colours
  24.                         $color['grey'] = imagecolorallocate($im, 255, 255, 255);
  25.                         $color['green'] = imagecolorallocate($im, 55, 189, 102);
  26.                        
  27.                         // this defines the starting height for the text block
  28.                         $y = imagesy($im) - $height - 365;
  29.                          
  30.                 // loop through the array and write the text   
  31.                 foreach ($user as $value){
  32.                         // center the text in our image - returns the x value
  33.                         $x = center_text($value['name'], $value['font-size']); 
  34.                         imagettftext($im, $value['font-size'], 0, $x, $y+$i, $color[$value['color']], $fontname,$value['name']);
  35.                         // add 52px to the line height for the next text block
  36.                         $i = $i+52;    
  37.                        
  38.                 }
  39.                         // create the image
  40.                         imagejpeg($im, $file, $quality);
  41.                        
  42.         //}
  43.                                                
  44.                 return $file;  
  45. }
  46.  
  47. function center_text($string, $font_size){
  48.  
  49.                         global $fontname;
  50.  
  51.                         $image_width = 700;
  52.                         $dimensions = imagettfbbox($font_size, 0, $fontname, $string);
  53.                        
  54.                         return ceil(($image_width - $dimensions[4]) / 2);                              
  55. }
  56.  
  57.  
  58.  
  59.         $user = array(
  60.        
  61.                 array(
  62.                         'name'=> 'Ashley Ford',
  63.                         'font-size'=>'27',
  64.                         'color'=>'grey'),
  65.                        
  66.                 array(
  67.                         'name'=> 'Technical Director',
  68.                         'font-size'=>'16',
  69.                         'color'=>'grey'),
  70.                        
  71.                 array(
  72.                         'name'=> 'ashley@papermashup.com',
  73.                         'font-size'=>'13',
  74.                         'color'=>'green'
  75.                         )
  76.                        
  77.         );
  78.        
  79.        
  80.         if(isset($_POST['submit'])){
  81.        
  82.         $error = array();
  83.        
  84.                 if(strlen($_POST['name'])==0){
  85.                         $error[] = 'Please enter a name';
  86.                 }
  87.                
  88.                 if(strlen($_POST['job'])==0){
  89.                         $error[] = 'Please enter a job title';
  90.                 }              
  91.  
  92.                 if(strlen($_POST['email'])==0){
  93.                         $error[] = 'Please enter an email address';
  94.                 }
  95.                
  96.         if(count($error)==0){
  97.                
  98.         $user = array(
  99.        
  100.                 array(
  101.                         'name'=> $_POST['name'],
  102.                         'font-size'=>'33',
  103.                         'color'=>'grey'),
  104.                        
  105.                 array(
  106.                         'name'=> $_POST['job'],
  107.                         'font-size'=>'23',
  108.                         'color'=>'grey'),
  109.                        
  110.                 array(
  111.                         'name'=> $_POST['email'],
  112.                         'font-size'=>'23',
  113.                         'color'=>'green'
  114.                         )
  115.                        
  116.         );             
  117.                
  118.         }
  119.                
  120.         }
  121.  
  122. // run the script to create the image
  123. $filename = create_image($user);
  124.  
  125. ?>
  126.  
  127. <html xmlns="http://www.w3.org/1999/xhtml">
  128. <head>
  129. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  130.  
  131.  
  132. <style>
  133. input{
  134.         border:1px solid #ccc;
  135.         padding:8px;
  136.         font-size:14px;
  137.         width:300px;
  138.         }
  139.        
  140. .submit{
  141.         width:110px;
  142.         background-color:#FF6;
  143.         padding:3px;
  144.         border:1px solid #FC0;
  145.         margin-top:20px;}      
  146.  
  147. </style>
  148.  
  149. </head>
  150.  
  151. <body>
  152.  
  153.  
  154. <img src="<?=$filename;?>?id=<?=rand(0,1292938);?>" width="700" height="600"/><br/><br/>
  155.  
  156. <ul>
  157. <?PHP if(isset($error)){
  158.        
  159.         foreach($error as $errors){
  160.                
  161.                 echo '<li>'.$errors.'</li>';
  162.                        
  163.         }
  164.        
  165.        
  166. }?>
  167. </ul>
  168.  
  169.  
  170. <div class="dynamic-form">
  171. <form action="" method="post">
  172. <label>Name</label>
  173. <input type="text" value="<?PHP if(isset($_POST['name'])){echo $_POST['name'];}?>" name="name" maxlength="15" placeholder="Name"><br/>
  174. <label>Job Title</label>
  175. <input type="text" value="<?PHP if(isset($_POST['job'])){echo $_POST['job'];}?>" name="job" placeholder="Job Title"><br/>
  176. <label>Email</label>
  177. <input type="text" value="<?PHP if(isset($_POST['email'])){echo $_POST['email'];}?>" name="email" placeholder="Email"><br/>
  178. <input name="submit" type="submit" class="btn btn-primary" value="Update Image" />
  179. </form>
  180. </div>
  181.  
  182.  
  183.  
  184.  
  185. </body>
  186. </html>
  187.  
 
 Top
Vladimir Kheifets
Отправлено: 24 Марта, 2019 - 09:49:58
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




djonci пишет:
Друзья! Помогите автоматизировать скрипт нанесения текста на изображение.

Добрый день!
Вообще-то можно не сохранять сгенерированные изображения в файлах,
а написать скрипт который создаёт и выводит изображения.
Всё, что необходимо для этого можно передать через $_GET или $_SESSION
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // ViewImage.php
  3. header('Content-Type: image/jpeg');
  4. $im = imagecreatefromjpeg($_GET["src"].".jpg");
  5. /*
  6. здесь изменяте картинку, например,  накладываете текст
  7. */
  8. imagejpeg($im);
  9. ?>
Так встaвляете картинки в HTML
CODE (html):
скопировать код в буфер обмена
  1. <img src="ViewImage.php?src=pass&text=abc" width="700" height="600"/>

Удачи!

(Отредактировано автором: 24 Марта, 2019 - 09:51:05)

 
 Top
djonci
Отправлено: 24 Марта, 2019 - 10:33:22
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Март 2019  


Помог: 0 раз(а)




Vladimir Kheifets пишет:
djonci пишет:
Друзья! Помогите автоматизировать скрипт нанесения текста на изображение.

Добрый день!
Вообще-то можно не сохранять сгенерированные изображения в файлах,
а написать скрипт который создаёт и выводит изображения.
Всё, что необходимо для этого можно передать через $_GET или $_SESSION
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // ViewImage.php
  3. header('Content-Type: image/jpeg');
  4. $im = imagecreatefromjpeg($_GET["src"].".jpg");
  5. /*
  6. здесь изменяте картинку, например,  накладываете текст
  7. */
  8. imagejpeg($im);
  9. ?>
Так встaвляете картинки в HTML
CODE (html):
скопировать код в буфер обмена
  1. <img src="ViewImage.php?src=pass&text=abc" width="700" height="600"/>

Удачи!
Спасибо за ответ! в том и дело что необходимо сгенерировать и сохранить сотни картинок для последующей загрузки на сайт. В ручную это займет очень много времени.
Было бы удобнее если б этот скрипт помог выполнить эту задачу с генерацией
 
 Top
Vladimir Kheifets
Отправлено: 24 Марта, 2019 - 11:22:13
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Если требуется только наложить тексты на изображение, то вполне можно обойтись HTML и CSS.

(Отредактировано автором: 24 Марта, 2019 - 11:23:01)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB