GD: как бы на задний фон вставить картинку?

Be4ep

Новичок
GD: как бы на задний фон вставить картинку?

есть такой код:
PHP:
<?php 
$x=300; 
$y=300; 
header("Content-type: image/png"); 
$im = ImageCreate(800, 600); 
$white = ImageColorAllocate($im, 255,255,255); 
$color = ImageColorAllocate($im, 0,0,0); 
ImageFilledRectangle($im, $y+5,$x+5,$y-5,$x-5, $color); 
ImagePng($im); 
ImageDestroy($im); 
?>
он делает квадрат в точке 300:300

как бы на задний фон вставить картинку? к примеру pic.jpg
все перепробовал но ни как не получется
 

Be4ep

Новичок
ну много че пробовал, например делать сразу 2 картинки...
 

diamond_krnl

pure-php
может по порядку рисовать, так сказать слоями:
1. бэкграунды.
2. потом всё отсальное.
нужны извраты? - GIF с маской вам вруки.

PS: видимо плохо пробывал.
 

msdn11

Новичок
сначала imagecopyresampled рисуеш фон из картинки
потом поверх все что надо...
 

Be4ep

Новичок
к примеру вот так:
PHP:
<?php
$imm = ImageCreateRromJpeg("pic.jpg");
$x=300;
$y=300;
header("Content-type: image/jpg");
$im = ImageCreate(800, 600);
$white = ImageColorAllocate($im, 255,255,255);
$color = ImageColorAllocate($im, 0,0,0);
ImageFilledRectangle($im, $y+5,$x+5,$y-5,$x-5, $color);
Imagejpeg($imm);
Imagejpeg($im);
?>
отображается только задний фон, а квадратик не рисуется.

а вот так:
PHP:
<?php
header("Content-type: image/jpg");
$imm = imagecreatefromjpeg("pic.jpg");
$x=300;
$y=300;
$im = ImageCreate(800, 600);
$white = ImageColorAllocate($im, 255,255,255);
$color = ImageColorAllocate($im, 0,0,0);
$blanctrans = ImageColorTransparent($im, $white);
ImageFilledRectangle($im, $y+5,$x+5,$y-5,$x-5, $color);
Imagejpeg($im);
Imagejpeg($imm);
?>
на оборот рисуется квадратик а фон нет
я первый раз работаю с GD так что не удивляйтесь :)

-~{}~ 21.12.05 15:49:

Автор оригинала: msdn11
сначала imagecopyresampled рисуеш фон из картинки
потом поверх все что надо...
у меня php не выполнит ее. тк приоритет стоит маленький. нужны другие альтернативы

-~{}~ 21.12.05 15:50:

может примерчик приведете какой нибудь? а то так сложно разобратся :(
 

msdn11

Новичок
у меня php не выполнит ее. тк приоритет стоит маленький. нужны другие альтернативы

-~{}~ 21.12.05 15:50:

может примерчик приведете какой нибудь? а то так сложно разобратся :(
дело не в приоритетах. а скорее в версии пхп и настройках.

из мана
imagecopyresampled
Copy and resize part of an image with resampling (PHP 4 >= 4.0.6)

попробуй просто imagecopy

-~{}~ 21.12.05 15:04:

например так я рисовал посередине картинки надпись PREVIEW

$src = "./1.jpg";

$size = getimagesize($src);
list($width, $height) = getimagesize($src);
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format;
$icfunc1 = "image" . $format;

$isrc = $icfunc($src);
$idest = imagecreatetruecolor($width, $height);
$white = imageColorAllocate($idest, 255, 255, 255);
imagefill($idest, 0, 0, $rgb);
imagecopyresampled($idest, $isrc, 0, 0, 0, 0, $width, $height, $width, $height);
imageString($idest, 5, $size[0]/2-30, $size[1]/2-5, "PREVIEW", $white);
imageLine($idest,$size[0]/2-35,$size[1]/2-5,$size[0]/2-30+65,$size[1]/2-5,$white);
imageLine($idest,$size[0]/2-35,$size[1]/2-5,$size[0]/2-35,$size[1]/2-5+15,$white);
imageLine($idest,$size[0]/2-35,$size[1]/2-5+15,$size[0]/2-30+65,$size[1]/2-5+15,$white);
imageLine($idest,$size[0]/2-35+70,$size[1]/2-5,$size[0]/2-35+70,$size[1]/2-5+15,$white);
$rand1 = rand(1,1000);
$icfunc1($idest, "./2.jpg", 100);
 

Be4ep

Новичок
единственное что не понятно, ак это почему ваш код рисунок изменяет? те после его выполнения на рисунке(просто когда открываешь файл) появилась надпись PREVIEW

а мож но ли вот суда: $src = "./1.jpg"; вставить например $_GET?
или например функцию которая будет возвращять путь у файлу image($_GET[img]);
 

msdn11

Новичок
вы не из Германии? :)

чё тут непонятного, берёт поверх и пишет... замени тот код что пишет, на прорисовку своего прямоугольника...

судя по фразе

а мож но ли вот суда: $src = "./1.jpg"; вставить например $_GET?
или например функцию которая будет возвращять путь у файлу image($_GET[img]);
[/i]
у вас все запущено...

туда можно вставить имя файла. если вы его загрузили или он у вас уже как то на сервере оказалзя...

или мне ещё и пример загрузки файла на сервак постить?
 

Be4ep

Новичок
вы не из Германии? :)

чё тут непонятного, берёт поверх и пишет... замени тот код что пишет, на прорисовку своего прямоугольника...

судя по фразе
я со своим разобрался. просто мне интересно почему ваш код меняет файл

-~{}~ 21.12.05 18:13:

у вас все запущено...

туда можно вставить имя файла. если вы его загрузили или он у вас уже как то на сервере оказалзя...

или мне ещё и пример загрузки файла на сервак постить?
мне просто в определенный обстаятельствах нужно будет заменить фон. вот я и спросил. тк у меня ничего не получилось.
все файлы конечно у меня на сервере есть.
 

msdn11

Новичок
я окончательно потерялся. Я не понимаю какая перед вами задача. мне казалось нарисовать на фоне картинки что-то, например прямоугольник, а потом это все сохранить в файл.
 

Be4ep

Новичок
это было просто чтоб разобратся :)
теперь я хочу динамически изменять фон
 

msdn11

Новичок
ладно. чё то я понял что ни чё не понял...

впредь потрудитесь изъяснять ваши мысли яснее...
 
Сверху