Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Прозрачный текст поверх картинки
 
 автор: Екатерина   (16.11.2004 в 10:29)
 
 

Подскажите плз как с помощью php можно отображать динамичный прозрачный текст поверх картинки.
Заранее спасибо.

   
 
 автор: glsv (Дизайнер)   (16.11.2004 в 11:00)   письмо автору
 
   для: Екатерина   (16.11.2004 в 10:29)
 

Что значит "динамичный текст"? Бегущая строка?
А "прозрачный" что значит? Буквы должны просвечивать? Хм, это возможно... но мне кажется не имеет смысла - лучше подобрать нужный цвет текста.

>как с помощью php
PHP не решает такие задачи - здесь, наверное, вопрос верстки HTML. Меня вот только смущает фраза "динамичный текст"...

Хотя можно и на PHP генерировать картинки с надписями. В любом случае, уточните пожалуйста вопрос. Лучше с примерами.

   
 
 автор: Екатерина   (16.11.2004 в 11:47)
 
   для: glsv (Дизайнер)   (16.11.2004 в 11:00)
 

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

   
 
 автор: Екатерина   (16.11.2004 в 12:15)
 
   для: Екатерина   (16.11.2004 в 11:47)
 

идея в том, чтобы картинки защитить от скачивания

   
 
 автор: glsv (Дизайнер)   (16.11.2004 в 13:35)   письмо автору
 
   для: Екатерина   (16.11.2004 в 12:15)
 

Ага, теперь ясно. Это можно сделать с помощью библиотеки GDLib. Узнайте, есть эта библиотека у Вас на сервере или нет. И возможно ли ее установить. А я подкину код, создающий надписи... к завтру.

   
 
 автор: Екатерина   (16.11.2004 в 14:38)
 
   для: glsv (Дизайнер)   (16.11.2004 в 13:35)
 

да есть эта библиотека.
спасибо за помощь

   
 
 автор: glsv (Дизайнер)   (16.11.2004 в 13:38)   письмо автору
 
   для: Екатерина   (16.11.2004 в 12:15)
 

-

   
 
 автор: glsv (Дизайнер)   (16.11.2004 в 23:10)   письмо автору
 
   для: Екатерина   (16.11.2004 в 11:47)
 

Привожу пример для файлов расширениями jpeg и gif


<?php
  
// В переменной $imagefile содержится имя файла с изображением
  // Если эта переменная пуста, то останавливаем выполнение скрипта
  
if ($imagefile == "") exit();
  
  
// Определяем расширение
  // и в зависимости от него вызываем функции создания изображений из файлов
  
$path_parts pathinfo($imagefile);
  
$ext $path_parts["extension"];
  switch (
$ext)
  {
    case 
"jpg":
      
$img imagecreatefromjpeg($imagefile);
      break;
    case 
"gif":
      
$img imagecreatefromgif($imagefile);      
      break;
    default:
      echo 
"Неизвестное расширение файла";
      exit();
  }        
  
  
// Если изображение создано  
  
if ($img)
  {
    
// Назначаем цвет
    
$color imagecolorallocatealpha($img0255050);
    
// Пишем текст поверх изображения
    
$box imagettftext($img50010150$color"arbat.ttf""Торговая марка");
    
// Выводим изображение в браузер
    
switch ($ext)
    {
      case 
"jpg":
        
header("Content-type: " .image_type_to_mime_type(IMAGETYPE_JPEG));
        
imagejpeg($img);      
        break;
      case 
"gif":
        
header("Content-type: " .image_type_to_mime_type(IMAGETYPE_GIF));
        
imagegif($img);
        break;
      default:
        echo 
"Неизвестное расширение файла";
        exit();
    }            
  }
?> 


int imagecolorallocatealpha(resource image, int red, int green, int blue, int alpha)
Функция возвращает идентификатор цвета для изображения image, представленный RGB-компонентами.
Полученный идентификатор цвета далее может использоваться для функций рисования.
Функция imagecolorallocatealpha() должна вызываться для каждого цвета, используемого при рисовании изображения image.
Параметры red, green, blue — являются RGB компонентами и их значения лежат в диапазоне от 0 до 255 или от 0x00 до 0хFF в шестнадцатеричном формате.
Значения параметра alpha лежат в диапазоне от 0 до 127. Значение alpha = 0 определяет полную непрозрачность. Значение alpha = 127 соответствует полностью прозрачному цвету.

array imagettftext (resource image, int size, int angle,
int x, int y, int color,
string fontfile, string text)

size — размер шрифта в пикселях.
angle — угол поворота текста. Поворот осуществляется против часовой стрелки. Угол 0 градусов соответствует направлению на 3 часа.
x, y — координаты точки, с которой начинается запись текста. Приблизительно соответствует левому верхнему углу первого символа.
color — идентификатор цвета текста.
font_file — имя файла со шрифтом.

Функция возвращает массив координат 4 вершин прямоугольника, в который будет вписан текст.
Вершины перечисляются в следующем порядке: нижняя левая, нижняя правая, верхняя правая, верхняя левая.
Примечание
Для работы функция требует библиотеку Free Type.
Проверить ее наличие можно, выполнив функцию phpinfo().
Сведения о ней будут находиться в разделе gd.

// Здесь приведены выдержки из будущей книги "Профессиональный сайт на PHP 5"
-------------------------------------------------

Вышеприведенный скрипт следует записать в отдельный файл, например image.php,
а изображение генерировать вызывая этот скрипт из другого файла:

<?
  
// Здесь будет блок кода для получения имен файлов изображения из Вашей
  // базы данных
  
  // Для примера напишем так:
  
$imagefile="1.jpg";
?>
  <img src="image.php?imagefile=<?= $imagefile ?>">


Таким образом в теге <img> пишем обращение к скрипту, которые будет рисовать прозрачный текст
поверх изображения. В параметре imagefile передаем имя изображения, на которое нужно наложить текст.

   
 
 автор: Екатерина   (17.11.2004 в 15:52)
 
   для: glsv (Дизайнер)   (16.11.2004 в 23:10)
 

все получилось.
спасибо очень выручили

   
 
 автор: Artemy   (27.10.2005 в 11:37)   письмо автору
 
   для: glsv (Дизайнер)   (16.11.2004 в 23:10)
 

Уважаемый Дизайнер!

Пробовал использовать Ваш скрипт, но он почему то не работает!

Выводиться картинка с неправельным путем!

Права на папку были 777!

Вот что пишет phpinfo();

GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled

   
 
 автор: Artemy   (27.10.2005 в 11:46)   письмо автору
 
   для: Artemy   (27.10.2005 в 11:37)
 

Пробовал вставить print 1; die(); послу условия if($img){}, но ничего не выводится!

Еще есть одна проблема с функцией imagestring(), если печатать русский текст, то выводить абракадабра, пробовал перекодировать туду-сюда функцией convert_cyr_string();, но ни каких результатов это не принесло, такая же ерунда!
Как это лечится?

   
 
 автор: Axxil   (16.11.2004 в 11:01)   письмо автору
 
   для: Екатерина   (16.11.2004 в 10:29)
 

А нельзя просто картинку задавать через background-image?

   
 
 автор: elenaki   (16.11.2004 в 20:12)   письмо автору
 
   для: Axxil   (16.11.2004 в 11:01)
 

лучше через Flash, бакграунды тоже можно сохранять одним кликом, а с Флашем повозиться придется. я такое видела даже на статичных картинках. а вообще, нельзя защитить от копирования то, что выложено для всеобщего обозрения в интернет. выход - делать картинки такого плохого качества, чтобы никому не захотелось их украсть :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования