• ModSenior

    Non mi sono mai trovato in questa esigenza...
    E via CSS?
    Una sorta di background sopra di un livello?


  • User

    no in quel modo non si puo fare, basta guardare il codice html e prendere l'immagine!


  • ModSenior

    Vero! 🙂


  • Moderatore

    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.


  • User

    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!


  • User Attivo

    @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! 😉


  • User

    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


  • User

    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.


  • Moderatore

    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?

    :ciauz:


  • User

    @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?

    :ciauz:

    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 $size1

    fai 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...


  • Moderatore

    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 :ciauz: