Newsgroup: it.comp.www.php
Titolo: Script per aggiungere un logo alle immagini

Ho realizzato questo script:
<?
Header("Content-type: image/jpeg");
//campo in cui va indicato l'indirizzo dell'immagine da usare come 
bollino
$logo=("indirizzo/nomelogo.jpg");
$dim=getimagesize($logo);
$dim1=getimagesize($bolla);
//distanza dal bordo (va espressa in negativo)
$bordo=-10;
$nx=$dim1[0]-$dim1[0]-$bordo;
$ny=$dim1[1]-$dim1[1]-$bordo;
$im = ImageCreatefromJPEG($bolla);
$im1 = ImageCreatefromJPEG($logo);
imagecopy ($im , $im1 , $nx, $ny, 0, 0, $dim[0], $dim[1]);
//restituisce $im con qualità di compressione pari a 80
ImageJPEG($im,'',80);
?>
Serve per aggiungere un logo alle immagini, comodo per evitare che 
queste vengano "fregate".
Ho solo un problema... non riesco ad impostare il bordo.
Ovvero, di default il bordo che viene utilizzato è quello in alto a 
sinistra, come posso cambiarlo per farlo partire dal basso a destra?
Premetto che le varie immagini hanno grandezza variabile quindi sarebbe 
necessario poter impostare il bordo di partenza e non la distanza da 
quello in alto a sinistra.
Grazie.
-- 
+ > Piersandro Guerrera <-> PaRRoT <-> 
par...@edengames.net
  < +
+ > ICQ: 8372114 <--> Eden.Games - 
http://www.edengames.net
  < +
-> PGP Key Available - 
http://parrot.edengames.net/pgpkey.pub
 <-
+ > News Hardware and Games <---> 
http://news.edengames.net
  < +

 Ho solo un problema... non riesco ad impostare il bordo.
$dim1[0]-$dim1[0] --> 0
$dim1[1]-$dim1[1] --> 0
devi solo cambiare uno dei $dim1 con $dim
;-)

]
» 
» $dim1[0]-$dim1[0] --> 0
» $dim1[1]-$dim1[1] --> 0
» 
» devi solo cambiare uno dei $dim1 con $dim
Più esattamente come? Ho provato e o scompare del tutto il logo o 
compare sempre nello stesso punto :o|


 compare sempre nello stesso punto :o|
Ma dai! Disegna un rettangolo, metti un paio di coordinate e vedrai cosa
devi fare...
Font Courier:
0
|--w1=Image 1------|
|-----|------------|
      |-w2=Image 2-|
      |
     nx
nx=w1-w2; // alineato a destra
con bordo
0
|-w1=Image 1-------|
|--|------------|--|
   |-w2=Image 2-|
   |
   nx
nx=w1-w2-10; // alineato a destra - 10 pixel
stesso principio per y
Your turn :)

]
» Ma dai! Disegna un rettangolo, metti un paio di coordinate e vedrai cosa
» devi fare...
Ehm...
Io avevo detto:
--
Premetto che le varie immagini hanno grandezza variabile quindi sarebbe 
necessario poter impostare il bordo di partenza e non la distanza da 
quello in alto a sinistra.
--
In quel caso lo avrei già fatto...


 In quel caso lo avrei già fatto...
Uffa! Vuoi che ti faccio anche la pappa? Sinceramente: Matematica prima
elementare, piu' qualche geometria delle medie. Secondo me dovresti ancora
studiare cosa fa la funzione getimagesize(). Ti da la grandezza
dell'immagine. Quindi variabilissimo.
Il bordo metti anche come variabile (sarebbe meglio definirlo positivo in
pixel).
Adesso vuoi alineare l'immagine secondario(logo) a quello di base da destra:
quindi immagine base - immagine logo - bordo. Funziona bene perche' le
coordinate 0/0 partono da sinistra in alto.
Se la vuoi centrale: x1+(w1-w2)/2+bordo; y1=(h1-h2)/2+bordo;
Erano solo tre righe che dovevi cambiare nel tuo codice, dove stava il
problema?
<?
Header("Content-type: image/jpeg");
$bolla="bg.jpg";
$dimb=getimagesize($bolla);
$logo="logo.jpg";
$diml=getimagesize($logo);
$bordo=10;
$nx=$dimb[0]-$diml[0]-$bordo;
$ny=$dimb[1]-$diml[1]-$bordo;
$imb= ImageCreatefromJPEG($bolla);
$iml = ImageCreatefromJPEG($logo);
imagecopy ($imb, $iml, $nx, $ny, 0, 0, $diml[0], $diml[1]);
ImageJPEG($imb,'',80);
?>

]
» 
» Uffa! Vuoi che ti faccio anche la pappa? Sinceramente: Matematica prima
» elementare, piu' qualche geometria delle medie. Secondo me dovresti ancora
» studiare cosa fa la funzione getimagesize(). Ti da la grandezza
» dell'immagine. Quindi variabilissimo.
Si perdonami.
C'ho pensato dopo... l'ho messo in funzione ieri sera stesso :o|
Grazie per il suggerimento :o)
