Раздел «Скрипты»
Раздел «Дизайн»
Форма входа
Чат сайта
ОК

Функции

Контакты
Наши флудеры
Ник: [npu3pak]
Сообщений: 28
Директор
[npu3pak]
Ник: FOZ)JacK
Сообщений: 6
Проверенные
FOZ)JacK
Ник: Rastaman228
Сообщений: 0
Пользователи
Rastaman228
Реклама
Купить ссылку здесь


Кто на сайте
Онлайн всего: 8
Гостей: 8
Пользователей: 0
Пользователи
Гости
пользователи отсутствуют
PHP скрипты Использование водяных знаков 


mb

В этом примере демонстрируется как с помощью php-скриптов создавать изображения с водяными знаками (watermark). Скрипт выводит на странице оригинальное изобрадение и это же изображение с водяным знаком. Для выполнения данного действия скрипт использует функции графической бибилиотеки GD. Исходный код данного примера приведен ниже. 
В шаблоне страницы: 
Code
<div align="center"> 
  


  <b>Данный пример демонстрирует использование скрипта для создания изображений с водяными знаками</b> 
  </p> 
</div> 
<hr> 

PHP скрипты примера:

example004.php: 

Code
<b>Исходное изображение:</b><br><hr> 
<center><img src="http://phpexample.ucoz.net/php/example004/image.php?main=main.jpg"></center><br><hr> 
<b>Изображение с водяным знаком:</b><br><hr> 
<center><img src="http://phpexample.ucoz.net/php/example004/image.php?main=main.jpg&watermark=watermark.png"></center><br><hr>

image.php: 
Code
  $___notjson=1; 
  include 'api.watermark.php'; 
  $watermark = new watermark(); 
  $main_img_obj = imagecreatefromjpeg($_GET['main']); 
  $watermark_img_obj = imagecreatefrompng($_GET['watermark']); 
  $return_img_obj = $watermark->create_watermark($main_img_obj, $watermark_img_obj, 66); 
  header('Content-Type: image/jpeg'); 
  header('Content-Disposition: inline; filename=' . $_GET['src']); 
  imagejpeg($return_img_obj, '', 50); 
?>

api.watermark.php: 
Code
class watermark{ 
  function create_watermark( $main_img_obj, $watermark_img_obj, $alpha_level = 100 ) { 
  $alpha_level /= 100; 
  $main_img_obj_w = imagesx( $main_img_obj ); 
  $main_img_obj_h = imagesy( $main_img_obj ); 
  $watermark_img_obj_w = imagesx( $watermark_img_obj ); 
  $watermark_img_obj_h = imagesy( $watermark_img_obj ); 
  $main_img_obj_min_x = floor( ( $main_img_obj_w / 2 ) - ( $watermark_img_obj_w / 2 ) ); 
  $main_img_obj_max_x = ceil( ( $main_img_obj_w / 2 ) + ( $watermark_img_obj_w / 2 ) ); 
  $main_img_obj_min_y = floor( ( $main_img_obj_h / 2 ) - ( $watermark_img_obj_h / 2 ) ); 
  $main_img_obj_max_y = ceil( ( $main_img_obj_h / 2 ) + ( $watermark_img_obj_h / 2 ) ); 

  $return_img = imagecreatetruecolor( $main_img_obj_w, $main_img_obj_h ); 

  for( $y = 0; $y < $main_img_obj_h; $y++ ) { 
  for( $x = 0; $x < $main_img_obj_w; $x++ ) { 
  $return_color = NULL; 
  $watermark_x = $x - $main_img_obj_min_x; 
  $watermark_y = $y - $main_img_obj_min_y; 
  $main_rgb = imagecolorsforindex( $main_img_obj, imagecolorat( $main_img_obj, $x, $y ) ); 
  if ($watermark_x >= 0 && $watermark_x < $watermark_img_obj_w && 
  $watermark_y >= 0 && $watermark_y < $watermark_img_obj_h ) { 
  $watermark_rbg = imagecolorsforindex( $watermark_img_obj, imagecolorat( $watermark_img_obj, $watermark_x, $watermark_y )); 
  $watermark_alpha = round( ( ( 127 - $watermark_rbg['alpha'] ) / 127 ), 2 ); 
  $watermark_alpha = $watermark_alpha * $alpha_level; 
  $avg_red = $this->_get_ave_color( $main_rgb['red'], $watermark_rbg['red'], $watermark_alpha ); 
  $avg_green = $this->_get_ave_color( $main_rgb['green'], $watermark_rbg['green'], $watermark_alpha ); 
  $avg_blue = $this->_get_ave_color( $main_rgb['blue'], $watermark_rbg['blue'], $watermark_alpha ); 
  $return_color = $this->_get_image_color( $return_img, $avg_red, $avg_green, $avg_blue ); 
  } else { 
  $return_color = imagecolorat( $main_img_obj, $x, $y ); 
  } 
  imagesetpixel( $return_img, $x, $y, $return_color ); 
  } 
  } 
  return $return_img; 
  } 

  function _get_ave_color( $color_a, $color_b, $alpha_level ) { 
  return round( ( ( $color_a * ( 1 - $alpha_level ) ) + ( $color_b * $alpha_level ) ) ); 
  } 

  function _get_image_color($im, $r, $g, $b) { 
  $c=imagecolorexact($im, $r, $g, $b); 
  if ($c!=-1) return $c; 
  $c=imagecolorallocate($im, $r, $g, $b); 
  if ($c!=-1) return $c; 
  return imagecolorclosest($im, $r, $g, $b); 
  } 

?> 
Автор: Не указан
Источник: Не указан
Вы сейчас просматриваете файл Использование водяных знаков. Данный файл находится в категории PHP скрипты. Чтобы увидеть другие файлы из этой категории, перейдите по этой ссылке: PHP скрипты. Для того чтобы скачать Использование водяных знаков нажмите на кнопку СКАЧАТЬ выше. Надеемся вам понравился файл Использование водяных знаков и пригодился. По всем вопросам обращайтесь на форуме или к администарции.

PHP скрипты

776 просмотров
автор: [npu3pak]
дата: 27.01.2012, 16:06
Вы не можете добавлять комментарии

При копировании материалов → указывайте ссылку на источник!
Script-uCoz © 2011-2012 Все права защищены. Хостинг от uCoz
Счётчики
Сегодня нас посетило
Seo анализ сайта
Показано 2 последних комментария из 16.
ойой !сначала получилось все красиво .как у вас .а теперь  пять плохо некрасиво как исправить? дальше »
спасибо вам .долго искала подробную инструкцию как изменить вид фотоальбома .у вас нашла только у ме дальше »
Мини-статистика
Всего зарегистрировано: 74
Постов на форуме: 34
Тем на форуме: 33