Искать  
 
   
 
Водяные знаки
Отправлено: 05 Апрель 2010 02:04 P.M.   [ Игнорировать ]
Sr. Member
RankRankRankRank
Всего сообщений:  987
Зарегистрирован  2008-09-27

В идеале мне нужно поле обыкновенной для загрузки файлов, но нужно накладывать водяной знак на изображение.
В системы есть функция какая для наложения водяных знаков?
Меня инетерсует готовое решение или как можно доработаь, скажем расшрение ngen file field чтобы туда водяной знак накладывался. Никаких админсих настроек не нужно.

Профиль
 
 
Отправлено: 19 Апрель 2010 08:41 P.M.   [ Игнорировать ]   [ # 1 ]
Студент
RankRank
Всего сообщений:  74
Зарегистрирован  2008-09-02

По моему простещий вариант средствами пхп. (phpwatermark)
А потом картинки отображать через него sait.ru/watermark.php?img.gif

Профиль
 
 
Отправлено: 19 Апрель 2010 08:46 P.M.   [ Игнорировать ]   [ # 2 ]
Sr. Member
RankRankRankRank
Всего сообщений:  987
Зарегистрирован  2008-09-27

Нашел в ядре функцию. Подсмотрел модуль галереи. На днях думаю как будет свободное время в ngen file field можно это вогнать

Профиль
 
 
Отправлено: 29 Январь 2011 01:56 A.M.   [ Игнорировать ]   [ # 3 ]
Sr. Member
Avatar
RankRankRankRank
Всего сообщений:  463
Зарегистрирован  2009-08-07
Максим - 19 Апрель 2010 08:46 P.M.

Нашел в ядре функцию. Подсмотрел модуль галереи. На днях думаю как будет свободное время в ngen file field можно это вогнать

А Вы реализовали это или нет ?

 Подпись 

Ум - как бюст: надо иметь, но выпячивать не стоит
SSD Cloud Hosting

Профиль
 
 
Отправлено: 29 Январь 2011 11:42 A.M.   [ Игнорировать ]   [ # 4 ]
Sr. Member
RankRankRankRank
Всего сообщений:  987
Зарегистрирован  2008-09-27

Да, правил версию Denik’a
Ghмерно на строке 800 перед

return array('file_name'=>$file_name,'custom_path'=>$settings['custom_path']); 

Добавляем строку:

$this->AddWatermark($upload_path.$settings['custom_path'].$file_name$this->findexts($file_name),$_SERVER["DOCUMENT_ROOT"].'/images/watermark.png'); 

И в самый конец перед последней закрывающей фигурной скобкой вставляй вот это:

function AddWatermark($img_file$filetype$watermark 'watermark.png'){
    $offset 
5;//отступ от правого нижнего края px
    
$image GetImageSize($img_file);
    
$xImg $image[0];
    
$yImg $image[1];
    switch (
$image[2]{
        
case 1:
            
$img=imagecreatefromgif($img_file);
        break;
        case 
2:
            
$img=imagecreatefromjpeg($img_file);
        break;
        case 
3:
            
$img=imagecreatefrompng($img_file);
        break;
        
}

    $r 
imagecreatefrompng($watermark);
    
$x imagesx($r);
    
$y imagesy($r);

    
$xDest $xImg - ($x $offset);
    
$yDest $yImg - ($y $offset);
    
imageAlphaBlending($img,1);
    
imageAlphaBlending($r,1);
    
imagesavealpha($img,1);
    
imagesavealpha($r,1);
    
imagecopyresampled($img,$r,$xDest,$yDest,0,0,$x,$y,$x,$y);
    switch (
$filetype{
            
case "jpg":
                
imagejpeg($img,$img_file,100);
            break;
            case 
"jpeg":
                
imagejpeg($img,$img_file,100);
            break;
            case 
"gif":
                
imagegif($img,$img_file);
            break;
            case 
"png":
                
imagepng($img,$img_file);
            break;
        
}
    imagedestroy
($r);
    
imagedestroy($img);
}
function findexts ($filename){
    $filename 
strtolower($filename) ;
    
$exts explode("."$filename) ;
    
$n count($exts)-1;
    
$exts $exts[$n];
    return 
$exts;

Простое решение. Никаких настроек в админке, но мне этого и не нужно было.
Теперь все изображения, загружамеые через ngen file field будут с водяными знаками

Профиль
 
 
Отправлено: 29 Январь 2011 05:44 P.M.   [ Игнорировать ]   [ # 5 ]
Sr. Member
Avatar
RankRankRankRank
Всего сообщений:  463
Зарегистрирован  2009-08-07

Спасибо. Помогло решение..

 Подпись 

Ум - как бюст: надо иметь, но выпячивать не стоит
SSD Cloud Hosting

Профиль