how i can put image on image with gd?

GD and GD2 are useful libraries for creating graphics on-the-fly. Discuss your PHP GD and GD2 scripts here.

Moderators: onion2k, General Moderators

Post Reply
User avatar
_qwerty_
Forum Newbie
Posts: 8
Joined: Fri May 12, 2006 6:29 am
Location: Lithuania

how i can put image on image with gd?

Post by _qwerty_ »

i tryedto do it with watermark but... :( :(

i want to put into this script :)

Code: Select all

<?php
$tipas = $_GET['tipas'];
$foto = $_GET['foto'];
    if($tipas=="bw"){$i = new imagethumbnail_blackandwhite(); }else{$i = new imagethumbnail();}
    $i->open("img/foto/$foto");
    $i->setY("120");
    if($tipas=="bw"){$i->blackandwhite();}else{}
    header("Content-type: image/jpeg;");
    $i->imagejpeg();



    
    header("Content-type: image/jpeg;");
    $i->imagejpeg();

class imagethumbnail{
var $filename;
var $x;
var $y;
var $image;
var $thumbnail;
function imagethumbnail() {}
function open($filename) {
$this->filename = $filename;
$imageinfo = array();
$imageinfo = getimagesize($this->filename,$imageinfo);
$this->old_x = $imageinfo[0];
$this->old_y = $imageinfo[1];
switch ($imageinfo[2]) {
case "1": $this->image = imagecreatefromgif($this->filename); break;
case "2": $this->image = imagecreatefromjpeg($this->filename); break;
case "3": $this->image = imagecreatefrompng($this->filename); break;
}
}
function setX($x="") {
if (isset($x)) { $this->x = $x; }
return $this->x;
}
function setY($y="") {
if (isset($y)) { $this->y = $y; }
return $this->y;
}
function generate() {
if ($this->x > 0 and $this->y > 0) { $new_x = $this->x; $new_y = $this->y; } elseif ($this->x > 0 and $this->x != "") { $new_x = $this->x; $new_y = ($this->x/$this->old_x)*$this->old_y; } else { $new_x = ($this->y/$this->old_y)*$this->old_x; $new_y = $this->y; }

$this->thumbnail = imagecreatetruecolor($new_x,$new_y);
$white = imagecolorallocate($this->thumbnail,255,255,255);
imagefill($this->thumbnail,0,0,$white);

imagecopyresampled ( $this->thumbnail, $this->image, 0, 0, 0, 0, $new_x, $new_y, $this->old_x, $this->old_y);
}

function imagegif($filename="") {
if (!isset($this->thumbnail)) { $this->generate(); }
imagetruecolortopalette($this->thumbnail,0,256);
if ($filename=="") {imagegif($this->thumbnail); } else { imagegif($this->thumbnail,$filename); } }

function imagejpeg($filename="",$quality=80) {
if (!isset($this->thumbnail)) { $this->generate(); }
imagejpeg($this->thumbnail,$filename,$quality);
}

function imagepng($filename="") {
if (!isset($this->thumbnail)) { $this->generate(); }
if ($filename=="") { imagepng($this->thumbnail); } else { imagepng($this->thumbnail,$filename); }
}
}
   

class imagethumbnail_blackandwhite extends imagethumbnail {
function imagethumbnail_blackandwhite() {}
function blackandwhite() {
if (!isset($this->thumbnail)) { $this->generate(); }
for ($x=0;$x<256;$x++) {
$palette[$x] = imagecolorallocate($this->thumbnail,$x,$x,$x);
}
            for ($x=0;$x<imagesx($this->thumbnail);$x++) {
for ($y=0;$y<imagesy($this->thumbnail);$y++) {
$rgb = imagecolorat($this->thumbnail,$x,$y);
$r   = ($rgb >> 16) & 0xFF;
$g   = ($rgb >>  & 0xFF;
$b   = $rgb & 0xFF;
$val = (($r*0.299)+($g*0.587)+($b*0.114));

imagesetpixel($this->thumbnail,$x,$y,$palette[$val]);
}}}}

        


    

?>
and do it like this
http://mjaw.net/alo.jpeg
Last edited by _qwerty_ on Thu Nov 09, 2006 1:32 pm, edited 1 time in total.
User avatar
_qwerty_
Forum Newbie
Posts: 8
Joined: Fri May 12, 2006 6:29 am
Location: Lithuania

Re: how i can put image on image with gd?

Post by _qwerty_ »

please help : :?
User avatar
Mini
Forum Newbie
Posts: 23
Joined: Mon Dec 04, 2006 4:39 am
Location: Netherlands

Re: how i can put image on image with gd?

Post by Mini »

try imagecopymerge ;)

Code: Select all

imagecopymerge($this->thumbnail, $this->image, $posx, $posy, 0, 0, imagesx($this->image), imagesy($this->image), 100);
Post Reply