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

Форум PHP

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

 

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

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

тема: копирайт на картинку
 
 автор: Alexx   (20.11.2005 в 22:07)   письмо автору
 
 


function resizeimg($filename, $w, $h) 

    // определим коэффициент сжатия изображения, которое будем генерить 
    $ratio = $w/$h; 
    // создадим пустое изображение по заданным размерам 
    $dest_img = imagecreatetruecolor($w, $h);     
    // зальём его белым цветом 
    imagefill($dest_img, 0, 0, 0xFFFFFF);   
    // получим размеры исходного изображения 
    $size_img = getimagesize($filename); 
    // получим коэффициент сжатия исходного изображения 
    $src_ratio=$size_img[0]/$size_img[1]; 

    // здесь вычисляем размеры, чтобы при масштабировании сохранились 
    // 1. Пропорции исходного изображения 
    // 2. Исходное изображение полностью помещалось на маленькой копии 
    // (не обрезалось) 
    if ($src_ratio>$ratio) 
    { 
        $old_h=$size_img[1]; 
        $size_img[1]=floor($size_img[0]/$ratio); 
        $old_h=floor($old_h*$h/$size_img[1]); 
    } 
    else 
    { 
        $old_w=$size_img[0]; 
        $size_img[0]=floor($size_img[1]*$ratio);     
        $old_w=floor($old_w*$w/$size_img[0]); 
    } 
     
    // исходя из того какой тип имеет изображение 
    // выбираем функцию создания 
    switch ($size_img['mime']) 
    { 
        // если тип файла JPEG 
        case 'image/jpeg': 
            // создаем jpeg из файла 
            $src_img = imagecreatefromjpeg($filename);             
            $ext="jpg";             
            break;         
        // если тип файла GIF             
        case 'image/gif':     
            // создаем gif из файла         
            $src_img = imagecreatefromgif($filename);             
            $ext="gif";             
            break;         
    } 
    // масштабируем изображение    функцией imagecopyresampled() 
    // $dest_img - уменьшенная копия 
    // $src_img - исходной изображение 
    // $w - ширина уменьшенной копии 
    // $h - высота уменьшенной копии     
    // $size_img[0] - ширина исходного изображения 
    // $size_img[1] - высота исходного изображения 
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);         
     
    // в зависимости от типа файла выбирвем функцию сохранения в файл 
    switch ($size_img['mime']) 
    { 
        case 'image/jpeg': 
            // сохраняем в файл small.jpg 
            imagejpeg($dest_img, "small.$ext");         
            break; 
        case 'image/gif':     
            // сохраняем в файл small.gif         
            imagegif($dest_img, "small.$ext");         
            break;         
    }         

    // чистим память от созданных изображений 
    imagedestroy($dest_img); 
    imagedestroy($src_img);         



Как к изображению создаваемому данной функцией, прикрутить копирайт "(c) xz "

   
 
 автор: glsv (Дизайнер)   (20.11.2005 в 23:55)   письмо автору
 
   для: Alexx   (20.11.2005 в 22:07)
 

Копирайт у Вас будет текстом или другим изображением?
Если текстом, то посмотрите решение по ссылке.
http://softtime.ru/forum/read.php?id_forum=1&id_theme=787&page=1

Если изображением, то просто наложите одно изображение на другое, например, с помощью функции imagecopymerge().
http://www.softtime.ru/dic/id_dic=357&id_group=15

   
 
 автор: Alexx   (21.11.2005 в 20:30)   письмо автору
 
   для: glsv (Дизайнер)   (20.11.2005 в 23:55)
 

glsv (Дизайнер), я хочу ставить копирайт при помощи изображения. Можно пример привести imagecopymerge(). Есть картинка 500*600 как прикрепить копирайт размером 200*20 в нижний правый угол с 10 px отступом от краёв.
Заранее спасибо

   
 
 автор: glsv (Дизайнер)   (22.11.2005 в 00:02)   письмо автору
 
   для: Alexx   (21.11.2005 в 20:30)
 

Вот пример. Это скрипт image.php, который мы вызываем следующим образом:

<img src="image.php?img=picture.jpg">

В параметре img передаем имя изображения, на которое нужно наложить логотип.

image.php

<?
  
// Если ничего не передано, то выход
  
if($_GET["img"]=="") exit();

  
// Если файла с переданным именем не существует, то выход
  
if (!file_exists($_GET["img"])) exit();
  
  
// Логотип, который будем накладывать
  
$logofile "logo.gif";
  
$size_logo getimagesize($logofile);    
  
$logo imagecreatefromgif($logofile);  

  
// Изображение, на которое нужно наложить логотип
  
$size_img getimagesize($_GET["img"]);  
  if (
$size_img[2]==2)  $img imagecreatefromjpeg($_GET["img"]);                      
  else if (
$size_img[2]==1$img imagecreatefromgif($_GET["img"]);                      
  else if (
$size_img[2]==3$img imagecreatefrompng($_GET["img"]); 

  
// Собственно операция наложения логотипа
  
imagecopymerge($img$logo
                        
$size_img[0]-$size_logo[0]-5
                        
$size_img[1]-$size_logo[1]-30
                        
00
                        
$size_logo[0], $size_logo[1], 
                        
70);
  
// Вывод изображения
  
header("Content-type: image/png");
  
imagepng($img);
?>

   
Rambler's Top100
вверх

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