Старый 06.08.2009, 13:53   #1
Знаменитость
 
Аватар для voland
 
Мужчина
Регистрация: 18.12.2004
Возраст: 36
Сообщений: 2,361
Вес репутации: 0 voland кажется, это ваша репутацияvoland кажется, это ваша репутацияvoland кажется, это ваша репутацияvoland кажется, это ваша репутация

Отправить сообщение для voland с помощью ICQ Отправить сообщение для voland с помощью Skype™
По умолчанию Помогите с PHP

Есть такой вот скриптик нанесения водяного знака на картинку:

PHP код:
<?php
        
include 'api.watermark.php';
        
$watermark = new watermark();
        
$fl $_GET['main'];
        if ((
strpos(".jpg",$fl)!==0) || (strpos(".jpeg",$fl)!==0))
        {
          
$main_img_obj imagecreatefromjpeg($fl);
        } else
        if (
strpos(".png",$fl)!==0)
        {
          
$main_img_obj imagecreatefrompng($fl);
        };
        
$watermark_img_obj imagecreatefrompng($_GET['watermark']);
        
$return_img_obj $watermark->create_watermark($main_img_obj$watermark_img_obj66);
        if ((
strpos(".jpg",$fl)!==0) || (strpos(".jpeg",$fl)!==0))
        {
          
header('Content-Type: image/jpeg');
          
header('Content-Disposition: inline; filename=' $_GET['src']);
          
imagejpeg($return_img_obj''50);
        } else
        if (
strpos(".png",$fl)!==0)
        {
          
header('Content-Type: image/png');
          
imagepng($main_img_obj);
        };

?>
с файлами jpg все работает, а вот с PNG - не работает. Подсажите, где грабли?
Класс watermark выполняет работу с объектом $main_img_obj, и я не пойму где искать ошибку...
2) и еще вопрос - нужно ли в таких функциях удалять созданные объекты в конце?

ЗЫ: нашел более лаконичный скрипт, который тоже не работает с PNG. А почему?
PHP код:
<?php
$image 
imagecreatefromjpeg('image.jpg');
$watermark imagecreatefrompng('watermark.png');
$image_watermark create_watermark($image$watermark'right'30);
header('Content-Type: image/jpeg');
imagejpeg($image_watermark);
 
function 
create_watermark$image$watermark$position 'right'$alpha_level 100 )  
{  
  
// ширина и высота водяного знака
  
$width imagesx($watermark);  
  
$height imagesy($watermark);  
  if ( 
$position == 'right' ) { // водяной знак будет внизу справа
    
$dest_x imagesx($image) - $width 5;  
    
$dest_y imagesy($image) - $height 5;
  } else { 
// водяной знак будет по центру
    
$dest_x intval(imagesx($image)*0.5) - intval($width*0.5);  
    
$dest_y intval(imagesy($image)*0.5) - intval($height*0.5);     
  }
  
imagecopymerge($image$watermark$dest_x$dest_y00$width$height$alpha_level);     
  return 
$image;  
}  
?>

Последний раз редактировалось voland; 06.08.2009 в 14:54.
voland вне форума   Ответить с цитированием
Ответ

  HitForum - Форумы Мариупольской Городской Сети > HiTech > Web-разработка > Скрипты


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
бесплатный сайт Lord CA Web-разработка 33 03.02.2013 22:09
Flash - дизайнер (PHP - программист)(удаленно) Sermik Вакансии 1 25.02.2009 16:55
Помогите найти дрова Moohas Беседка 0 05.11.2008 20:06
Помогите СКАЧАТЬ ДРАЙВЕР GoldMan Беседка 5 26.10.2008 17:26
Помогите найти темы!:) JustFire Музыка хип-хопа 6 19.07.2008 11:57

© 2003 - HitLine.
Часовой пояс GMT +3, время: 00:04.