powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вырисовка логотипа поверх изображения
13 сообщений из 13, страница 1 из 1
вырисовка логотипа поверх изображения
    #33554884
twistfire
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пользую скрипт:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
<?
function imagecopyalpha(&$img, $logo, $alpha, $base_x, $base_y){

$width = imagesx($alpha);
$height = imagesy($alpha);
$base_width = imagesx($img);
$base_height = imagesy($img);

for ($x =  0 ; $x < $width; $x++, $base_x++) {
if ($base_x <  0 ) continue;
if ($base_x >= $base_width) break;
for ($y =  0 ; $y < $height; $y++, $base_y++) {
if ($base_y <  0 ) continue;
if ($base_y >= $base_height) break;

$img_color = imagecolorat($img, $base_x, $base_y);

$logo_color = imagecolorat($logo, $x, $y);

$a = (imagecolorat($alpha, $x, $y) & 0xff) /  255 . 0 ;


$r = (int) ((($img_color >>  16 ) & 0xff) * $a + ( 1 . 0  - $a) * (($logo_color >>  16 ) & 0xff));
$g = (int) ((($img_color >>  8 ) & 0xff) * $a + ( 1 . 0  - $a) * (($logo_color >>  8 ) & 0xff));
$b = (int) (($img_color & 0xff) * $a + ( 1 . 0  - $a) * ($logo_color & 0xff));

$new_color = ($r <<  16 ) | ($g <<  8 ) | $b;
imagesetpixel($img, $base_x, $base_y, $new_color);
}
$base_y -= $height;
}
}

$img=imagecreatefromjpeg("http://nikinfo.net/info/weather/836.JPEG");
$logo=imagecreatefromgif("http://nikinfo.net/img/logo.gif");
$alpha=imagecreatefromgif("http://nikinfo.net/info/weather/alpha.gif");
$base_x= 2 ;
$base_y= 2 ;

$img=imagecopyalpha(&$img, $logo, $alpha, $base_x, $base_y);

Header("Content-type: image/png");
imagepng($img);
?>
а он чего-то не пашет... ПРосто відает ошибку - типа изображение неврхможно показать...
Я уже и без header смотрел - все равно фигня какая-то... Никаких сообщений об ошибке.. Просто - Изображение испорчено...

Помогите добиться работоспособности.. или укажите на ошибку, если можете.
Спасибо.
...
Рейтинг: 0 / 0
вырисовка логотипа поверх изображения
    #33555464
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
...
Рейтинг: 0 / 0
вырисовка логотипа поверх изображения
    #33556376
twistfire
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну спсб...
там ведь картинка... никаких сообщ об ошибках...
просто пишет что невернЫй формат рисунка.

Посмотрите пожалуйста алгоритм - там скорее всего ошибка.
...
Рейтинг: 0 / 0
вырисовка логотипа поверх изображения
    #33556406
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
twistfireникаких сообщ об ошибках...Уберите хидер или запускайте скрипт в консоли при включенных ошибках.
...
Рейтинг: 0 / 0
вырисовка логотипа поверх изображения
    #33556933
twistfire
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я уже убрал хидер, запускаю не с консоли а так...
вроде віводит -но почему-то просто темный квадрат
вот посмотрите http://nikinfo.net/info/weather/graph1.php

может я что-то напутал?
...
Рейтинг: 0 / 0
вырисовка логотипа поверх изображения
    #33556972
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если бы выводили без хидеров, то мы бы увидели не "Малевич на тёте", а текст отладки.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
вырисовка логотипа поверх изображения
    #33557005
twistfire
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да єто я уже сделал.. я нашел ошибку и исправил :)

Вот теперь другая ошибка - "малевич на тете"...

А должен быть прозрачный лого...
...
Рейтинг: 0 / 0
вырисовка логотипа поверх изображения
    #33557066
twistfire
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну может кто-то видел скрипт для нанесения watermark на картинку?? Причем не просто прозрачного gifa, что сделать просто, а рисунка с альфа-каналом...
т.е. типа
есть исходное изображение background.jpeg
есть лого - logo.gif

и вот мы наносим лого на бєкграунд так, чтобі через лого был виден бєкграунд, т.е. лого как бы прозрачно...

я видел такое на сайтах и тот скрипт которым я пользуюсь должен реализовывать такую вещь, но вот что-то не выходит ...
...
Рейтинг: 0 / 0
вырисовка логотипа поверх изображения
    #33557085
twistfire
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
усе... всем спасибо...
разобрался. Еще раз убедился - учиться и еще раз мучиться :)
...
Рейтинг: 0 / 0
вырисовка логотипа поверх изображения
    #33557088
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так а как решили проблему??? потому как Малевич на тёте так и остался.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
вырисовка логотипа поверх изображения
    #33557372
twistfire
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://nikinfo.net/info/weather/graph.php

там нужен просто альфа-канал для рисунков. Для маски.
...
Рейтинг: 0 / 0
вырисовка логотипа поверх изображения
    #33558167
Ajvengo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
twistfire не опубликуешь готовый скрипт для остальных???
...
Рейтинг: 0 / 0
вырисовка логотипа поверх изображения
    #33558314
twistfire
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а он в самом начале опубликован.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
<?
function imagecopyalpha(&$img, $logo, $alpha, $base_x, $base_y){

$width = imagesx($alpha);
$height = imagesy($alpha);
$base_width = imagesx($img);
$base_height = imagesy($img);

for ($x =  0 ; $x < $width; $x++, $base_x++) {
if ($base_x <  0 ) continue;
if ($base_x >= $base_width) break;
for ($y =  0 ; $y < $height; $y++, $base_y++) {
if ($base_y <  0 ) continue;
if ($base_y >= $base_height) break;

$img_color = imagecolorat($img, $base_x, $base_y);

$logo_color = imagecolorat($logo, $x, $y);

$a = (imagecolorat($alpha, $x, $y) & 0xff) /  255 . 0 ;


$r = (int) ((($img_color >>  16 ) & 0xff) * $a + ( 1 . 0  - $a) * (($logo_color >>  16 ) & 0xff));
$g = (int) ((($img_color >>  8 ) & 0xff) * $a + ( 1 . 0  - $a) * (($logo_color >>  8 ) & 0xff));
$b = (int) (($img_color & 0xff) * $a + ( 1 . 0  - $a) * ($logo_color & 0xff));

$new_color = ($r <<  16 ) | ($g <<  8 ) | $b;
imagesetpixel($img, $base_x, $base_y, $new_color);
}
$base_y -= $height;
}
}

$img=imagecreatefromjpeg("http://nikinfo.net/info/weather/836.JPEG");
$logo=imagecreatefromgif("http://nikinfo.net/img/logo.gif");
$alpha=imagecreatefromgif("http://nikinfo.net/info/weather/alpha.gif");
$base_x= 2 ;//naprimer ^)
$base_y= 2 ;//

$img_to_see=imagecopyalpha(&$img, $logo, $alpha, $base_x, $base_y);

Header("Content-type: image/png");
imagepng($img);
?>

только повторюсь - изображение должно быть с alpha каналом
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вырисовка логотипа поверх изображения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]