- Home
- Categorie
- Coding e Sistemistica
- PHP
- Watermark Dinamico problema
-
ciao è semplice, ti fai uno script dove indichi tutte le cartelle che contengono le immagini, pero ti consiglio una cosa, non prendere cose gia fatte perche ti complichi la vita, l'unica cosa che devi fare è sovrapporre una immagine png con il tuo logo all'imagine e questo lo puoi fare con la libreria gd
-
Non mi sono mai trovato in questa esigenza...
E via CSS?
Una sorta di background sopra di un livello?
-
no in quel modo non si puo fare, basta guardare il codice html e prendere l'immagine!
-
Vero!
-
Ho le librerie gid installate non è un problema.
Come codice pensi a qualcosa semplice del genere:
[PHP] $img = WideImage::load('pic.jpg'); $watermark = WideImage::load('logo.jpg'); $new = $img->merge($watermark, 10, 10, 30); [/PHP]Però vorrei che il watermark se possibile fosse mostrato solo a video, non impresso sulle immagini, perchè volevo tenerle anche senza. Al massimo faccio una copia così risolvo il problema.
-
no io avevo gia fatto una cosa del genere usando le seguenti funzioni:
[PHP]$size1 = getimagesize(url_dell'immagine_originale);
$size2 = getimagesize(url_dell'imagine_gif_da_sovrapporre);
$source = imagecreatefromjpeg(url_dell'immagine_originale);
$source2=imagecreatefromgif(url_dell'imagine_gif_da_sovrapporre);
imagecopy($source, $source2, 0,0,0,0,$size2[0],$size2[1]);
imagejpeg($source, url_di_destinazione , 75);[/PHP]con questo crei l'immagine con il logo sovrapposto, lo devi inserire nello script per gestirti le cartelle dove ci sono l'immagini, poi comunque si, tu sul sito tieni solo la copia delle immagini magari pure piu piccola, adesso sta a te continuare!
-
@marcocarrieri said:
Una sorta di background sopra di un livello?
Uno un po' sgamato ti andrebbe a scovare l'immagine originale...
Watermark sempre impresso... in modo indelebile!
-
innanzitutto io farei una sola cartella per le foto, poi le puoi suddividere (come già fai) in altre sottocartelle.
a mio avviso potresti (con l'aiuto di apache) reindirizzare le le richieste alle foto su uno script php che prende la foto richiesta e aggiunge il tuo logo (casomai se le salva in una cartelle è meglio così eviti elaborazioni inutili).
in questo modo puoi lavorare con le foto "pulite" ma visualizzare le foto "marchiate"...:o
-
Lui deve inserire il logo ogni volta che carica una immagine sul suo sito, ma questo lo fa in automatico php ogni volta che fa l'upload, per quelle che gia ha caricate basta uno piccolo script che modifica queste immagini.
-
Ok, funziona perfettamente come suggerito da giovaandres90 (thks)
Mi è bastato inserire il codice in un ciclo foreach ed impostare le variabili necessarie perchè fosse applicato su tutte le foto che volevo.
C'è un problema che però non avevo considerato. Le immagini non sono tutte precise della stessa dimensione, quindi il watermark appare un po' ovunque sulla foto! Visto nell' insieme è un po' disordinato.
Io lo volevo sempre centrato e poco sopra il fondo.Devo trovare il modo di adattare le dimensioni dell' immagine prima di applicare il watermak.
Vi faccio sapere gli sviluppi, voi avete qualche idea?
-
@Ivan88 said:
C'è un problema che però non avevo considerato. Le immagini non sono tutte precise della stessa dimensione, quindi il watermark appare un po' ovunque sulla foto! Visto nell' insieme è un po' disordinato.
Io lo volevo sempre centrato e poco sopra il fondo.Devo trovare il modo di adattare le dimensioni dell' immagine prima di applicare il watermak.
Vi faccio sapere gli sviluppi, voi avete qualche idea?non ho capito bene il problema che hai.
in ogni caso dai un'occhiata a hXtp:// php. net/manual/en/ function.imagecopy.php
è la documentazione della funzione che usi per unire le due foto (imagecopy )
dovresti modificare i valori che attualmente sono sempre impostati a ZERO in base alle dimensioni dell'img originale che ahi nella variabile $size1fai qualche prova con due o tre foto di che hanno una dimensione "critica" e una "strandard" quando trovi il giusto compromesso le modifichi tutte.
ciao...
-
Ok, la soluzione sta nel proporzionare le coordinate di destinazione con le dimensioni dell' immagine iniziale, ovvero:
[PHP]
$new=$size1[0]-$size2[0];
$new2=$size1[1]-80;
If ($new<0) {
$new=-10;
} else {
$new=0;
}
imagecopy($source, $source2, $new,$new2,0,0,$size2[0],$size2[1]);
[/PHP]I numeri sopra sono un esempio che si adatta al mio caso, ma il principio base dovrebbe valere sempre
Ciao