Как наложить копирайт на фотку

Тема в разделе "FAQ", создана пользователем Juri, 10 ноя 2008.

Статус темы:
Закрыта.
  1. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.065
    Симпатии:
    197
    собственно такой сабж, интересно как наложить надпись (копирайт) на фотку. естественно с указанием координат, надпись желательно что б могла быть с русским языком. заранее спасибо
     
  2. allov

    allov

    Регистр.:
    7 июл 2008
    Сообщения:
    156
    Симпатии:
    214
    Посмотрите статью, совсем несложно:
    Перейти по ссылке
    Только шрифт кириллический поискать, и пожалуйста, картинка с надписью:
    Перейти по ссылке

    Ну, а если не охота возиться, то есть способ и полегче, практически все просмотрщики графики поддерживают добавление текста: IrfanView, XnView, FastStone Image Viewer...

    Н/р в IrfanView делается так: Файл Преобразовать/переименовать группу файлов Пакетное преобразование С дополнительными параметрами Параметры Разное Нанести текст на изображение Параметры, а там уже пишете наносимый текст, устанавливаете его выравнивание, выбираете шрифт...
     
    dotsenko нравится это.
  3. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.065
    Симпатии:
    197
    Спасибо но имелось не много не это, наложить надпись нужно средствами PHP на загружаемую картинку. раздел же про PHP
     
  4. RolCom

    RolCom

    Регистр.:
    12 мар 2008
    Сообщения:
    351
    Симпатии:
    108
    Чтобы наложить готовую картинку, функции
    imagecopy, imagecopymerge.
    Чтобы наложить текст стредствами PHP, функция imagettftext (TrueType шрифт). Необходимо залить на сервер файл .ttf со шрифтом.
     
  5. myweb

    myweb Среда обитания WEB

    Регистр.:
    10 сен 2007
    Сообщения:
    539
    Симпатии:
    246
    Если создать готовый рисунок с копирайтом то можно наложить через PHP

    PHP:

    function save_image ($filename){
    global 
    $script_path;

    // сохраняем изображение во временную директорию
    if ($_FILES['req_file']['type'] == 'image/jpeg' OR $_FILES['req_file']['type'] == 'image/pjpeg' OR $_FILES['req_file']['type'] == 'image/gif'){

    // перемещаем загруженный файл в директорию tmp_img_upload
    $uploaddir 'images/tmp_upload/';

    $tmp_img_file basename($_FILES['req_file']['name']);
    $ext strtolower(array_pop(explode("."$tmp_img_file )));
    $tmp_filename $uploaddir.(rand(10000,9999999)).'.'.$ext;
    move_uploaded_file($_FILES['req_file']['tmp_name'], $tmp_filename);


    // обработка большого изображения
    $write_img 'images/normal/'.$filename;
    $set_width 396;
    $set_height 396;
    $quality 75;


    // размер загруженного изображения
    list($width$height) = getimagesize($tmp_filename);


    // проверяем - нужно-ли вообще уменьшать изображение
    $resize 0;
    if (
    $set_width $width){$resize 1;}
    if (
    $set_height $height){$resize 1;}


    if (
    $resize == 1){
    if (
    $height $width){
    $scale $width $set_width;
    $set_height $height $scale;
    }
    else{
    $scale $height $set_height;
    $set_width $width $scale;
    }
    // end if resize
    else{
    $set_height $height;
    $set_width $width;
    // end else - noresize



    // Resample
    $image_p imagecreatetruecolor($set_width$set_height);


    if (
    $_FILES['req_file']['type'] == 'image/jpeg' OR $_FILES['req_file']['type'] == 'image/pjpeg'){
    $image imagecreatefromjpeg($tmp_filename);
    }

    if (
    $_FILES['req_file']['type'] == 'image/gif'){
    $image imagecreatefromgif($tmp_filename);
    }

    imagecopyresampled($image_p$image0000$set_width$set_height$width$height);

    $watermark imagecreatefrompng($script_path.'images/plus2.png');
    $trans imagecolorat($watermark,2,2);
    imagecolortransparent($watermark,$trans); 
    $watermark_width imagesx($watermark);  
    $watermark_height imagesy($watermark);    
    imagecopymerge($image_p$watermark, ($set_width-$watermark_width-1), ($set_height-$watermark_height-1), 00$watermark_width$watermark_height80);


    // Output
    $ext 'jpg';
    imagejpeg($image_p$write_img.'.'.$ext$quality);




    // обработка маленького изображения
    $write_img 'images/small/'.$filename;
    $set_width 100;
    $set_height 100;
    $quality 90;


    // проверяем - нужно-ли вообще уменьшать изображение
    $resize 0;
    if (
    $set_width $width){$resize 1;}
    if (
    $set_height $height){$resize 1;}


    if (
    $resize == 1){
    if (
    $height $width){
    $scale $width $set_width;
    $set_height $height $scale;
    }
    else{
    $scale $height $set_height;
    $set_width $width $scale;
    }
    // end if resize
    else{
    $set_height $height;
    $set_width $width;
    // end else - noresize


    // Resample
    $image_p imagecreatetruecolor($set_width$set_height);
    if (
    $_FILES['req_file']['type'] == 'image/jpeg' OR $_FILES['req_file']['type'] == 'image/pjpeg'){
    $image imagecreatefromjpeg($tmp_filename);
    }
    if (
    $_FILES['req_file']['type'] == 'image/gif'){
    $image imagecreatefromgif($tmp_filename);
    }
    imagecopyresampled($image_p$image0000$set_width$set_height$width$height);

    $watermark imagecreatefrompng($script_path.'images/plus.png');
    //$trans = imagecolorat($watermark,2,2);
    //imagecolortransparent($watermark,$trans); 
    $watermark_width imagesx($watermark);  
    $watermark_height imagesy($watermark);    
    imagecopymerge($image_p$watermark, ($set_width-$watermark_width-1), ($set_height-$watermark_height-1), 00$watermark_width$watermark_height100);

    // Output
    $ext 'jpg';
    imagejpeg($image_p$write_img.'.'.$ext$quality);
    @
    unlink ($script_path.$tmp_filename);
    // end if - проверка типа файла

    return $ext;


    // end function


    где

    $script_path - локальный путь
    $uploaddir - временная папка
    images/normal/ - большие рисунки
    images/small/ - маленькие рисунки

    на small, normal, $uploaddir - 777

    "images/plus.png" - рисунок с копирайтом в папке images

    $set_width = 396; - размеры картинки
    $set_height = 396;
    $quality = 75;
     
    Juri нравится это.
  6. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.065
    Симпатии:
    197
    наскоько этот скрипт требователен к ресурсам? и не вжано толи это jpg png он справится?
     
  7. ewg777

    ewg777

    Регистр.:
    6 авг 2007
    Сообщения:
    763
    Симпатии:
    321
    В данном коде он работает только с jpg и gif:ay:
     
  8. foxtrialer

    foxtrialer Постоялец

    Регистр.:
    18 июл 2007
    Сообщения:
    67
    Симпатии:
    53
    Встройте какую-нибкть простенькую фото-галерею с функцией watermark, да и все тут.
     
  9. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    Этот прикрутить можно куда угодно и как угодно. Рекомендую глянуть:
    Перейти по ссылке
     
  10. brazer

    brazer Постоялец

    Регистр.:
    16 май 2006
    Сообщения:
    87
    Симпатии:
    10
    лично я использую для работы с рисунками

    http://code.google.com/p/timthumb/

    она позволяет уменьшать, кадрировать и т.п., и что главное - кешировать файлы, снимая нагрузку

    вот к ней и можно прикрутить watermark, указанный выше
     
Статус темы:
Закрыта.