Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Водяной знак PNG
 
 автор: Dimka31   (12.04.2009 в 21:59)   письмо автору
 
 

Скрипт принимает имя изображения через GET параметр, и на это изображение накладывается логотип, то есть водяной знак.
С логотипом gif все нормально, а вот с png проблема


<?php
    $logofile 
= "sign.gif";//Логотип
    
$main_foto = $_GET['file'];//Фото на которое накладываем логотип
    
$x = ($_GET['x']) ? $_GET['x'] : "10";
    
$y = ($_GET['y']) ? $_GET['y'] : "10";
    
$size_logo = getimagesize($logofile);
    
$size_img = getimagesize($main_foto);
    
    if (
$size_logo[2]==2)  $logo = imagecreatefromjpeg($logofile);                        
  else if (
$size_logo[2]==1) $logo = imagecreatefromgif($logofile);                        
  else if (
$size_logo[2]==3) $logo = imagecreatefrompng($logofile); 
    
    if (
$size_img[2]==2)  $img = imagecreatefromjpeg($main_foto);                        
  else if (
$size_img[2]==1) $img = imagecreatefromgif($main_foto);                        
  else if (
$size_img[2]==3) $img = imagecreatefrompng($main_foto); 
    
    
imagecopymerge($img, $logo, ($size_img[0]- $size_logo[0] - $x), ($size_img[1]- $size_logo[1] - $y), 0, 0, $size_logo[0], $size_logo[1], 100);

    if(
$_GET['save']=="yes")
    {
        
imagejpeg($img, $main_foto);
    }    
    
    if (
$size_img[2]==2)
    {
        
header("Content-type: image/jpeg");
      
imagejpeg($img);
    }    
  else if (
$size_img[2]==1)
    {
        
header("Content-type: image/gif");
        
imagegif($img);
    }    
  else if (
$size_img[2]==3)
    {
        
header("Content-type: image/png");
        
imagepng($img);
    }    
?>


В чем может заключаться проблема?

  Ответить  
 
 автор: genx   (21.09.2010 в 22:19)   письмо автору
 
   для: Dimka31   (12.04.2009 в 21:59)
 

попробуй этот код
<?php 
$imfile 
= 'image.gif'; 
$imext = strrchr($imfile, '.'); 
switch (
$imext) { 
case 
'.png': 
 
$im = imagecreatefrompng($imfile); break; 
case 
'.gif': 
 if (!
function_exists('imagecreatefromgif')) { 
  exit(
'GIF not supported!'); 
 } 
 if (!(
$im = imagecreatefromgif($imfile))) { 
  exit(
'Error to create GIF image!'); 
 } 
 break; 
default: 
 
$im = imagecreatefromjpeg($imfile); 
} 
$lg = imagecreatefrompng('logo.png'); 
imagecopy($im, $lg, 55, 185, 0, 0, 120, 29); 
header('Content-Type: image/jpeg'); 
imagejpeg($im); 
imagedestroy($im); 
imagedestroy($lg); 
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования