Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как на изображение нанести логотип, с последующим сохранением и изменением р 
:(
    Опции темы
americanets
Дата 16.3.2007, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: нет
Всего: 12



Как на изображение нанести логотип

Вопрос обсуждался, но ответ на свой вопрос не смог нати, мне нужно нанести на изображение логотип, у меня функция делает уменьшение нужно чтоб помимо уменьшения фото и логотип вставлялся 

Код

function resizeimg($id, $filename, $w, $h,$nameimage,$dirictory) 
  { 
    $patch=$_SERVER["DOCUMENT_ROOT"];
    $smallimage = "$id-$nameimage";   
    $ratio = $w/$h; 
    $size_img = getimagesize($filename); 
    if (($size_img[0]<$w) && ($size_img[1]<$h)) return true; 
    $src_ratio=$size_img[0]/$size_img[1]; 
    if ($ratio<$src_ratio) 
    { 
      $h = $w/$src_ratio; 
    } 
    else 
    { 
      $w = $h*$src_ratio; 
    } 
    $dest_img = imagecreatetruecolor($w, $h);   
    $white = imagecolorallocate($dest_img, 255, 255, 255);        
    if ($size_img[2]==2)  $src_img = imagecreatefromjpeg($filename);                       
    else if ($size_img[2]==1) $src_img = imagecreatefromgif($filename);                         
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);                 
    if ($size_img[2]==2)  imagejpeg($dest_img, $patch."/ima/Image/$dirictory/".$smallimage.".jpg",60);             
    else if ($size_img[2]==1) imagegif($dest_img, $patch."/ima/Image/$dirictory/".$smallimage.".gif");
    imagedestroy($dest_img); 
    imagedestroy($src_img); 
    return true;          
  }
?>


Вставить в функцию что то но не знаю куда или лучше при загрузке фото сразу на нее нанести 

Код

<?
copy($_FILES["filename"] ["tmp_name"], $patch."/ima/Image/catalog/".$_FILES["filename"] ["name"]);
$source=$patch."/ima/Image/catalog/".$_FILES["filename"] ["name"]; 
resizeimg($idzapisi, $source, $wiz, $hiz,"smal","catalog");
?>






--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
mishaSL
Дата 17.3.2007, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



americanets, вот пример из мануала http://ru2.php.net/manual/ru/function.imag...merge.php#48169 :
Код

<?php
function waterMark($fileInHD, $wmFile, $transparency = 50, $jpegQuality = 90, $margin = 5) {

 $wmImg  = imageCreateFromGIF($wmFile);
 $jpegImg = imageCreateFromJPEG($fileInHD);

 // Water mark random position
 $wmX = (bool)rand(0,1) ? $margin : (imageSX($jpegImg) - imageSX($wmImg)) - $margin;
 $wmY = (bool)rand(0,1) ? $margin : (imageSY($jpegImg) - imageSY($wmImg)) - $margin;

 // Water mark process
 imageCopyMerge($jpegImg, $wmImg, $wmX, $wmY, 0, 0, imageSX($wmImg), imageSY($wmImg), $transparency);

 // Overwriting image
 ImageJPEG($jpegImg, $fileInHD, $jpegQuality);
}

waterMark('myImage.jpg','waterMark.gif');

?>


Посмотри комментарии внимательней, так есть примеры и универсальней. smile 


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
americanets
Дата 17.3.2007, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: нет
Всего: 12



ОК, посмотрю, вроде понятно 


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Sannis
Дата 12.2.2008, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

Репутация: нет
Всего: 13



Подниму-ка я эту тему... Создание водяных знаков довольно баянистая тема в интернете, так что найти рабочий пример довольно просто, хотя доля шума и больше 50%. если покапать глуюже, то можно заставить PHP накладывать PNG изображение с прозрачностью.

Однако как ни старался не получилось сделать одну вещь: Чтобы при склеивании изображений с помощью imagecopymerge и задании прозрачности корректно накладывался PNG24 знак. При использовании imagecopy всё работает нормально, а с imagecopymerge на месте прозрачных пикселей накладываемого знака получается белый цвет с прозрачностью, странно зависящей от передаваемого в функцию последнего аргумента. Такое наблюдается только на PNG24, с PNG8 проблем нет.

Если кто сталкивался с такой проблемой, буду рад просветиться smile

Для загрузки использую
Код

$this->mark = @imagecreatefrompng( $this->mark_path );

Для склейки:
Код

    function _apply_watermark_gd2( $c_x, $c_y ) 
    {
        if( !$this->mark )
        {
            return;
        }
        
        // Image
        if( $this->image_type == 'jpg' || $this->image_type == 'jpeg' )
        {
            @imagealphablending( $this->image, TRUE );
        }
        
        $result = @imagecreatetruecolor( $this->image_width, $this->image_height );
        
        if( $this->image_type == 'png' )
        {
            $itransparent = @imagecolorallocatealpha($result, 255, 255, 255, 127);
            @imagefilledrectangle($result, 0, 0, $this->image_width, $this->image_height, $itransparent);
        }
        
        @imagecopy( $result, $this->image, 0, 0, 0, 0, $this->image_width, $this->image_height );
        @imagedestroy($this->image);
        
        // Merge
        if( $this->mark_opacity )
        {
            @imagecopymerge( $result, $this->mark, $c_x, $c_y, 0, 0, $this->mark_width, $this->mark_height, $this->mark_opacity );
        }
        else
        {
            @imagecopy( $result, $this->mark, $c_x, $c_y, 0, 0, $this->mark_width, $this->mark_height );
        }
        
        if( $this->image_type == 'png' )
        {
            @imagealphablending( $result, FALSE );
            @imagesavealpha( $result, TRUE );
        }
        
        $this->image =& $result;
    }


Заранее спасибо!


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
HnH
Дата 13.3.2008, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 23.2.2006
Где: Питер

Репутация: нет
Всего: 1



PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.0474 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.