[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Водяной знак
zhenia3003
Накладываю водяной знак (PNG) на GIF, получается черный фон вместо прозрачности. Как убрать черный фон?


<?
//имя файла
$f_name = time();
//папка
$path_directory = 'avatars/';
//проверка формата исходного изображения
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['imgupload']['name'])){
$fil = $_FILES['imgupload']['name'];
//расширение файла
$filename = $f_name.".".substr($fil, strrpos($fil, '.') + 1);
$source = $_FILES['imgupload']['tmp_name'];
$target = $path_directory . $filename;
move_uploaded_file($source, $target);
//загрузка оригинала в папку $path_directory
if(preg_match('/[.](GIF)|(gif)$/', $filename)) {
$im = imagecreatefromgif($path_directory.$filename) ;
//если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](PNG)|(png)$/', $filename)) {
$im = imagecreatefrompng($path_directory.$filename) ;
//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
$im = imagecreatefromjpeg($path_directory.$filename);
//если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}







//Создаем ВОДЯНОЙ ЗНАК - - - - - - - - - - - -
//ЕСЛИ НЕ НУЖЕН ВОДЯНОЙ ЗНАК - УДАЛИТЬ ЭТОТ БЛОК!

//если ширина оригинального изображения больше 300 пикселей, ставим водяной знак

if(imagesx($im) >= 300){

$stamp = imagecreatefrompng('watermark.png');
// Установка полей для штампа и получение высоты/ширины штампа
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
// Копирование изображения штампа на фотографию с помощью смещения края
// и ширины фотографии для расчета позиционирования штампа.

imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, $sx, $sy);
imagejpeg($im, $path_directory.$f_name.".jpg");


//здесь конвертируем gif, png в jpg и удаляем оригиналы
if(preg_match('/[.](GIF)|(gif)|(PNG)|(png)$/', $filename)) {
imagejpeg($im, $path_directory.$f_name.".jpg");
unlink($target);
}

}
//if




//Конец кода ВОДЯНОЙ ЗНАК - - - - - - - - - - - -













// МИНИАТЮРА
// dest - результирующее изображение
// w - ширина изображения
// ratio - коэффициент пропорциональности

$w = 250;
$w_src = imagesx($im); //вычисляем ширину
$h_src = imagesy($im); //вычисляем высоту
$ratio = $w_src/$w;
$w_dest = round($w_src/$ratio);
$h_dest = round($h_src/$ratio);
$dest = imagecreatetruecolor($w_dest,$h_dest); // важно именно truecolor!, иначе будем иметь 8-битный результат
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);

//создаем миниатюру
imagejpeg($dest, $path_directory.$f_name."_small.jpg");
$avatar = $path_directory.$f_name."_small.jpg";


}else{
//в случае несоответствия формата, выдаем соответствующее сообщение
exit ("Аватар должен быть в формате <strong>JPG,GIF или PNG</strong>"); //останавливаем выполнение сценариев
}






echo "<img width='500' src='avatars/".$f_name.".jpg' />";
echo "<br/>";
echo "<img src='avatars/".$f_name."_small.jpg' />";
?>
<br />
<
a href="index.php">назад</a>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.