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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как наложить прозрачный фон? 
V
    Опции темы
Reverent
  Дата 18.2.2009, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Добрый день уважаемые форумчани, столкнулся вот с такой проблемой. У меня есть картинка, на которую нужно наложить внизу черную линию с прозрачным фоном, как мне это реализовать. На выходе должно получиться нечто подобное:

http://s2.ipicture.ru/uploads/090218/33519.../Nknj2gkIew.jpg

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  Nknj2gkIew.jpg 8,99 Kb
PM MAIL   Вверх
oksale
Дата 19.2.2009, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



У меня была такая задача, поделюсь кодом  smile 
Код

<?php
// get file extension
function getExt($file){
    return substr($file, strrpos($file, '.') + 1);
}

define('P_IMG',     '/');

/*
FUNCTION: setStamp
joins sourse image with watermark
PARAMS:
    $img          file with image
    $stamp          file with watermark;
    $margin         margins of watermark; default value: 5
*/
function setStamp($img, $stamp = 'logo.png', $margin = 5)
{
    # stamp file
    switch(strtolower(getExt($stamp)))
    {
        case "jpg":
            $stampImage = ImageCreateFromJPEG($stamp);
        break;

        case "gif":
            $stampImage = ImageCreateFromGIF($stamp);
        break;

        case "png":
            $stampImage = ImageCreateFromPNG($stamp);
        break;

        default:
            return -1;
        break;
    }

    $tmpImage = P_IMG . 'tmp.' . getExt($img);

    switch(strtolower(getExt($img)))
    {
        case "jpg":
            $srcImage = ImageCreateFromJPEG($img);
        break;

        case "gif":
            $srcImage = ImageCreateFromGIF($img);
        break;

        default:
            return -1;
        break;
    }

    $srcWidth  = ImageSX($srcImage);
    $srcHeight = ImageSY($srcImage);

    $logoWidth  = ImageSX($stampImage);
    $logoHeight = ImageSY($stampImage);

    // Water mark position
    $wmX = (imageSX($srcImage) - imageSX($stampImage)) - $margin;
    $wmY = (imageSY($srcImage) - imageSY($stampImage)) - $margin;

    imagecopy($srcImage, $stampImage, $srcWidth - $logoWidth-$margin, $srcHeight - $logoHeight-$margin, 0, 0, $logoWidth, $logoHeight);

    // Overwriting image
    switch(strtolower(getExt($img)))
    {
        case "jpg":
            header("Content-type: image/jpeg");
            ImageJPEG($srcImage, '',100);
        break;

        case "gif":
            header("Content-type: image/gif");
            ImageGIF($srcImage, '',100);
        break;
    }

    ImageDestroy($srcImage);
}

setStamp('22.jpg');
?>

--------------------
WBR, oksale
PM MAIL ICQ   Вверх
awers
Дата 19.2.2009, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код

    switch(strtolower(getExt($stamp)))
    {
        case "jpg":
            $stampImage = ImageCreateFromJPEG($stamp);
        break;

        case "gif":
            $stampImage = ImageCreateFromGIF($stamp);
        break;

        case "png":
            $stampImage = ImageCreateFromPNG($stamp);
        break;

        default:
            return -1;
        break;
    }

    $tmpImage = P_IMG . 'tmp.' . getExt($img);

    switch(strtolower(getExt($img)))
    {
        case "jpg":
            $srcImage = ImageCreateFromJPEG($img);
        break;

        case "gif":
            $srcImage = ImageCreateFromGIF($img);
        break;

        default:
            return -1;
       


Жуть. Не делай больше так.


Код

$size = getimagesize($src);
if ($size === false) return false;

$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));

$icfunc = "imagecreatefrom" . $format;
if (!function_exists($icfunc)) return false; 
$isrc = $icfunc($src); 


А накладывать полупрозрачное изображение - делаешь пнг (сразу с прозрачностью) а потом накладываешь! )))
PM MAIL WWW ICQ Skype   Вверх
Reverent
Дата 19.2.2009, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всем  спасибо смысл стал понятным. Действительно все просто берешь прозрачный png файл и накладываешь его на другой файл с помощью функции  imagecopy
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




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


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

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