Pagina 1 di 2 12 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 42

Discussione: Rimpicciolire immagini...

  1. #1
    Guest

    Post Rimpicciolire immagini...

    ciao vi sembrerà strana la domanda, ma vorrei rimpicciolire delle immagini senza che sgranino o che si vedano male e al click del mouse devono diventare della dimensione reale e possibilmente si devono aprire in un poup up della propria dimensione dell'immagine!
    grazie 1000 e byex!

  2. #2
    Guest

    Predefinito

    php!
    In html al massimo puoi assegnare delle dimensioni più piccole rispetto alle originali (ma il peso rimarrà lo stesso), ma nella maggior parte dei casi sgranano.


    Ciaoo!!

  3. #3
    Guest

    Predefinito

    Potresti provare con photoshop o image ready...

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da debug
    php!
    In html al massimo puoi assegnare delle dimensioni più piccole rispetto alle originali (ma il peso rimarrà lo stesso), ma nella maggior parte dei casi sgranano.


    Ciaoo!!
    va bene anke il php(a qst punto spostatemi il 3d please)...come se fa??? attendo risp.

  5. #5
    Guest

    Predefinito

    Sposto in Livello3.
    Fai una ricerca, ci sono centinaia di topic che ne parlano.

    Cflgroup2001: evita di postare cose senza senso.


    Ciao!

  6. #6
    Guest

    Predefinito

    Se vuoi in php puoi usare questo
    Codice PHP:
    <?php

    $imgfile
    = $_GET['file'];

    if(
    strstr($imgfile,"jpg")){

    header('Content-type: image/jpeg');

    list(
    $width, $height) = getimagesize($imgfile);

    $newwidth = $_GET['size'];

    $rap=$height/$width;

    $newheight=$newwidth*$rap;

    $thumb = ImageCreateTrueColor($newwidth,$newheight);

    $source = imagecreatefromjpeg($imgfile);

    imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

    imagejpeg($thumb);
    }



    if(
    strstr($imgfile,"gif")){

    header('Content-type: image/gif');

    list(
    $width, $height) = getimagesize($imgfile);

    $newwidth = $_GET['size'];

    $rap=$height/$width;

    $newheight=$newwidth*$rap;

    $thumb = ImageCreate($newwidth,$newheight);

    $source = imagecreatefromgif($imgfile);

    imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

    imagegif($thumb);
    }

    ?>
    Lo chiami come vuoi, x esempio img.php, poi lo richiami dal tag img così: img.php?file=percorso/immagine/relativo/allo/script.jpg&size=[larghezza-immagine]
    Funziona con gif e jpg. e le proporzioni dell'immagine vengono mantenute

  7. #7
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    E se lo vuoi in un pop-up
    <a href="#" onClick="window.open('img.php?file=percorso/immagine/relativo/allo/script.jpg&size=[larghezza-immagine]')">Immagine!</a>

  8. #8
    Guest

    Predefinito

    @ tuttoeniente: in quale punto dello script devo mettere il nome dell'immagine?
    In pratica sto creando 1 Gallery, per ogni immagine devo creare 1 codice del genere?
    ....grazie ancora!
    Ultima modifica di TurkoSoft : 06-03-2006 alle ore 14.53.10

  9. #9
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Lo script che ti ha dato tuttoniente lo salvi in un file a parte che chiamerai per esempio img.php.
    Poi per rimpicciolire le immagini metti:
    Codice HTML:
    <img src="img.php?file=percorso/immagine/relativo/allo/script.jpg&size=[larghezza-immagine]" alt="">
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  10. #10
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Certo questo implica un notevole lavorio continuo del processore php ..
    il povero server che ti ospita gradirebbe sicuramente il fatto di crearti una copia piccola una volta per tutte, ad ogni aggiunta di immagine grande, senza stare a rimpicciolirle continuamente a partire dall'originale. Ce ne saranno parecchi di esempi di questo tipo nel forum.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  11. #11
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Per fare quello che dice Heracleum basta mettere nei vari imageTIPO($thumb); il nome del file da salvare.
    Es.:
    Codice PHP:
    imagejpeg($thumb,"immaginepiccola.jpg");
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  12. #12
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Sì, quindi basterebbe usare il nome originale con un prefisso tipo "thumb_".$nome e mettere queste miniature in una cartella apposita, o nella cartella stessa dell'originale. Così quando si accede alla gallery o quello che è, sarà facilissimo sapere quale miniatura andare a prendere, cioè:
    se l'immagine originale è pippo.jpg
    per il tag IMG della sua miniatura basterà usare come SRC="thumb_<?=$nomeorig?>"
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  13. #13
    Guest

    Predefinito

    se tu ti scarichi il programma Easy Thumbnails te li fà automaticamente, con le dimensioni e la qualità che vuoi tu,il programma è gratuito, e per comodità se vai a questo indirizzo trovi un ottimo programma per rinominare le immagini http://digilander.libero.it/vime78

  14. #14
    Guest

    Predefinito

    non ci capisco + niente
    cioè io dovrei anche mettere 1 anteprima piccola dell'immagine da visualizzare in grande; ma come faccio?
    per favore illuminatemi!

  15. #15
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Fai una cosa, comincia a fornire più dettagli possibile su come funziona il tuo "contesto", per ora si sa solo che è un GuestBook.
    Perché notoriamente chiedi "100" e dai dettagli "1"
    L'immagine grande chi la fornisce? ne fa l'upload chi lascia il messaggio?
    Usi mysql?
    e che rapporto c'è tra quella piccola e l'originale? dove e come appaiono..
    spiega un po'..
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  16. #16
    Guest

    Predefinito

    emm, ho sbagliato, non è 1 GuestBook ma 1 Gallery(chi sa cosa pensavo quel giorno )
    ...cmq ci son riuscito senza fare col tuo modo però; quello lo farò in seguito!
    Grazie 1000000 per l'aiuto fornitomi!

  17. #17
    Guest

    Predefinito

    EDIT: come faccio a determinare anche l'altezza nel codice:
    Codice PHP:
    img.php?file=immagini/2.jpg&size=180'
    Ultima modifica di TurkoSoft : 06-03-2006 alle ore 15.40.14

  18. #18
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Non c'è bisogno, diciamo che ti basi su un massimo di pixel di riferimento, sia per altezzo sia per larghezza, MA il codice deve essere modificato opportunamente per fare questo, fai così le tre righe:
    Codice PHP:
    $newwidth = $_GET['size'];
    $rap=$height/$width;
    $newheight=$newwidth*$rap;
    Sostituiscile con queste:
    Codice PHP:
    $newwidth = $_GET['size'];
    if (
    $height<$width){
    $rap=$height/$width;
    $newheight=$newwidth*$rap;
    }else{
    $rap=$width/$height;
    $newwidth = $newheight*$rap;
    }
    Questo controllo è importante altrimenti, se ti viene passata una immagine molto stretta ma altissima, succede un patatracchete
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  19. #19
    Guest

    Predefinito

    @ heracleum: (scusa se rispondo in ritardo), ma allora sostituendo qst parte di script quando io vado a mettere il codice:
    Codice PHP:
    img.php?file=img/1.jpg&size=100
    l'immagine mi verrà 100pxX100px???

    EDIT:
    @ heracleum: perchè su 4 immagini, 2 si vedono e 2 no??? vai alla GALLERY(no spam) per vedere i risultati!
    Ultima modifica di TurkoSoft : 08-03-2006 alle ore 23.37.37

  20. #20
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Come avrai notato non sarà 100x100, ma il parametro che gli passi sarà il limite della dimensione maggiore del rettangolo.

    Non si vedono perché c'è stato un errore durante la creazione,
    per es. mozilla al posto dell'immagine scrive:
    The image “http://turkosoft.altervista.org/proj....jpg&size=180” cannot be displayed, because it contains errors.

    incolla tutto il codice come l'hai aggiornato e vediamo un po'..

    (sarebbe buona norma disattivare momentaneamente blocchi del click destro vari, soprattutto quando la pagina deve essere analizzata per anomalie, non credi? facilitare il compito di chi aiuta è sempre un buon segno di riconoscenza )
    Ultima modifica di heracleum : 09-03-2006 alle ore 01.15.30
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  21. #21
    Guest

    Predefinito

    ecco il codice modificato:
    Codice PHP:
    <?php

    $imgfile
    = $_GET['file'];

    if(
    strstr($imgfile,"jpg")){

    header('Content-type: image/jpeg');

    list(
    $width, $height) = getimagesize($imgfile);

    $newwidth = $_GET['size'];
    if (
    $height<$width){
    $rap=$height/$width;
    $newheight=$newwidth*$rap;
    }else{
    $rap=$width/$height;
    $newwidth = $newheight*$rap;
    }

    $thumb = ImageCreateTrueColor($newwidth,$newheight);

    $source = imagecreatefromjpeg($imgfile);

    imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

    imagejpeg($thumb);
    }



    if(
    strstr($imgfile,"gif")){

    header('Content-type: image/gif');

    list(
    $width, $height) = getimagesize($imgfile);

    $newwidth = $_GET['size'];

    $rap=$height/$width;

    $newheight=$newwidth*$rap;

    $thumb = ImageCreate($newwidth,$newheight);

    $source = imagecreatefromgif($imgfile);

    imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

    imagegif($thumb);
    }

    ?>
    PS: cmq il blocco tasto destro mouse è compreso direttamente nella gallery...non l'ho messo apposta per "non" farvi copiare la gallery!
    ...byex e grazie dell'aiuto!

  22. #22
    Guest

    Predefinito

    Ecco, posto una versione migliorata dello script, che ora supporta anche i file png.
    Inoltre, con il parametro GET "rot" ruotare l'immagine di x gradi a sinistra (per ruotare a destra basta inserire un valore negativo.
    Inoltre adesso crea anche i thumbnail fisicamente nella sottocartella "thumb" (creata automaticamente se inesistente) rispetto a dove è img.php.
    Codice PHP:
    <?php
    /*
    * PHP RESIZER WIZARD
    * Versione: 1.0
    * Licenza: GPL
    * Autore: Tuttoeniente
    * Contributi: Heracleum
    */
    error_reporting(0);
    $imgfile = htmlspecialchars($_GET['file']);
    $ext = explode(".",$imgfile);
    $n = count($ext)-1;
    $ext = strtolower($ext[$n]);

    function
    read($f){
    global
    $ext,$imgfile;
    if(
    $ext == "jpg" || $ext == "jpeg"){
    header('Content-type: image/jpeg');
    }
    elseif(
    $ext == "gif"){
    header('Content-type: image/gif');
    }
    elseif(
    $ext == "png"){
    header('Content-type: image/png');
    }
    $handle = fopen("thumb/thumb_".md5($imgfile).".".$ext, "r");
    echo
    fread($handle,filesize("thumb/thumb_".md5($imgfile).".".$ext));
    fclose($handle);
    }

    function
    error($e){
    $img = imagecreate(270,50);
    $bgcolor = imagecolorallocate($img, 255, 255, 255);
    $txtcolor = imagecolorallocate($img, 255, 0, 0);
    imagestring($img, 5, 0, 0, $e, $txtcolor);
    header("Content-type: image/gif");
    imagegif($img);
    }

    if(!
    is_dir("thumb")){
    mkdir("thumb");
    }

    if(
    is_file("thumb/thumb_".md5($imgfile).".".$ext)){
    read("thumb/thumb_".md5($imgfile).".".$ext);
    }else{
    if(!
    is_file($imgfile)){
    error("ERRORE: Il file non esiste");
    die();
    }
    $newwidth = $_GET['size'];
    list(
    $width, $height) = getimagesize($imgfile);
    //Heracleum mod
    if($height < $width){
    $newwidth = $_GET['size'];
    $rap = $height/$width;
    $newheight = $newwidth*$rap;
    }else{
    $newheight = $_GET['size'];
    $rap = $width/$height;
    $newwidth = $newheight*$rap;
    }
    $thumb = ImageCreateTrueColor($newwidth,$newheight);
    imageantialias($thumb,1);
    if(
    $ext == "jpg" || $ext == "jpeg"){
    header('Content-type: image/jpeg');
    $source = imagecreatefromjpeg($imgfile);
    imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    imagejpeg($thumb,"thumb/thumb_".md5($imgfile).".".$ext);
    read("thumb/thumb_".md5($imgfile).".".$ext);
    }

    elseif(
    $ext == "gif"){
    header('Content-type: image/gif');
    $source = imagecreatefromgif($imgfile);
    imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    imagegif($thumb,"thumb/thumb_".md5($imgfile).".".$ext);
    read("thumb/thumb_".md5($imgfile).".".$ext);
    }
    elseif(
    $ext == "png"){
    header('Content-type: image/png');
    $source = imagecreatefrompng($imgfile);
    imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    imagepng($thumb,"thumb/thumb_".md5($imgfile).".".$ext);
    read("thumb/thumb_".md5($imgfile).".".$ext);
    }else{
    error("ERRORE: Formato non supportato");
    die();
    }
    }
    ?>
    Ultima modifica di tuttoeniente2 : 10-03-2006 alle ore 18.21.26

  23. #23
    Guest

    Predefinito

    Citazione Originalmente inviato da tuttoeniente2
    Ecco, posto una versione migliorata dello script, che ora supporta anche i file png.
    Inoltre, con il parametro GET "rot" ruotare l'immagine di x gradi a sinistra (per ruotare a destra basta inserire un valore negativo.
    Inoltre adesso crea anche i thumbnail fisicamente nella sottocartella "thumb" (creata automaticamente se inesistente) rispetto a dove è img.php.
    ma allora qst script supporta solo jpg, gif e png?
    ho delle domande:
    1- in che senso crea i thumbnail?
    2- non ho capito la "cosa" della rotazione!

    Altra cosa: adesso nella GALLERY(nospam) si vedono solo 3 immagini su 4 e inoltre quando clicco sull'immagine per farla ingrandire nel poup-up, mi viene piccola perchè?

    ...grazie ancora per l'aiuto fornitomi!
    Ultima modifica di TurkoSoft : 10-03-2006 alle ore 20.01.37

  24. #24
    Guest

    Predefinito

    Si, solo jpg, png e gif.
    1. Le thumbnail sono delle versioni ridotte delle immagini
    2. Se dovessi voler ruotare le immagini basta che nellindirizzo delle immagini aggiungi il parametro "rot" che è un numero che indica i gradi di rotazione dell'immagine in senso antiorario (per l'orario basta che sia negativo).
    Esempio: img.php?file=miaimg.png&size=300&rot=-45
    Risultato: miaimg.png ridotta a 300 pixel e ruotata in senso orario di 45°.
    Citazione Originalmente inviato da TurkoSoft
    Altra cosa: adesso nella GALLERY(nospam) si vedono solo 3 immagini su 4 e inoltre quando clicco sull'immagine per farla ingrandire nel poup-up, mi viene piccola perchè?
    Io le vedo tutte e 4.
    Citazione Originalmente inviato da TurkoSoft
    quando clicco sull'immagine per farla ingrandire nel poup-up, mi viene piccola perchè?
    E' un buggino dello script, l'ho corretto nella nuova versione, adesso sono in momtagna, lunedì te la posto. Cmq è perché il thumbnail lo fa per ogni file, e se quando richiami l'immagine cambi la dimensione lui la ignora e ricarica la versione piccola. Temporaneamente puoi usare la versione dello script che non salvava le miniature per ovviare al problema.

  25. #25
    Guest

    Predefinito

    @ tuttoeniente2: ti ringrazio molto, non vedo l'ora che mi posti lo script...cmq lascio tutto così com'è dato che ancora la gallery non è effetivamente pronta e 1 download non c'è...
    ...grazie ancora per l'aiuto!

  26. #26
    Guest

    Predefinito

    Ecco la nuova versione, la 1.1. Ho inserito alcuni miglioramenti:
    - Il thumbnail è diverso per ogni combinazione di parametri passata allo script
    - Possibilità di utilizzo della funzione di resample, per una migliore qualità delle miniature
    - Supporto per i file bmp
    - Attivazione/disattivazione della cache delle miniature
    - Watermark

    Per configurare lo script basta seguire le semplici indicazioni contenute al suo interno, nelle prime righe.
    Per utilizzare il watermark basta passare anche il parametro wm nell'indirizzo dell'immagine, ad esempio:
    Codice:
    img.php?file=miaimg.png&size=300&wm=miosito.it
    Inoltre, è possibile dire allo script se mettere il watermark allineato in basso a sinistra, centrato o a destra (predefinito) con il parametro al:
    Codice:
    img.php?file=miaimg.png&size=300&wm=miosito.it&al=center
    Spero che così risponda alle tue esigenze. Se vuoi qualche adattamento posta qui, vedrò quello che posso fare.

    Questo è il codice:
    Codice PHP:
    <?php
    /*
    * PHP RESIZER WIZARD
    * Versione: 1.1
    * Licenza: GPL
    * Autore: Tuttoeniente
    * Contributi: Heracleum, Forum di AlterVista.org
    */

    // *** CONFIGURAZIONE ***//
    $onthefly = 0; //Generazione al volo delle immagini, cache disattiva: 1 = si 0 = no.
    //ATTENZIONE: Con questa opzione attivata il caricamento delle pagine con tante immagini potrebbe risultare
    //visibilmente rallentato. Usare questa opzione è consigliabile solo in fase di sviluppo, in caso di necessità di non
    //occupare spazio sul server, o nel caso non si disponga di permessi di scrittura
    //N.B.: Se è disattivata, qualsiasi dimensione, watermark, rotazione od altro passati non verranno eseguiti, verrà
    //solo caricata la versione della cache
    $defsize = 300; //Larghezza/altezza predefinita del thumbnail
    $resample = 1; //Utilizzo della funzione resample nella riduzione, che garantisce una migliore qualità ma è più lento (solo nella
    //generazione delle immagini, non nel richiamo dalla cache): 1 = si 0 = no
    $persfont = 0; //Font .ttf personalizzato per il watermark: 1 = si (necessario inserire quale nella prossima variabile) 0 = no
    $font = ""; //Nome del file del font, relativo alla directory dello script
    $size = 18; //Dimensione del font (solo se personalizzato)
    $alwayswm = 0; //Watermark su tutte le immagini: 1 = si 0 = no
    $defwm = ""; //Testo predefinito del watermark, obbligatorio se alwayswm è settato a 1
    $trasp = 110; //Trasparenza del watermark, da 0 a 127
    //*** FINE CONFIGURAZIONE ***//

    $imgfile = htmlspecialchars(@$_GET['file']);
    $size = @$_GET['size'];
    $rot = @$_GET['rot'];
    $wm = @$_GET['wm'];
    $al = @$_GET['al'];
    $ext = explode(".", $imgfile);
    $n = count($ext)-1;
    $ext = strtolower($ext[$n]);
    $get = '';
    foreach(
    $_GET as $k => $v){
    $get .= $k.$v;
    }
    $nomethumb = "thumb/thumb_".md5($imgfile.$get).".".$ext;

    function
    read($f){
    global
    $ext,$imgfile,$nomethumb;
    if(
    $ext == "jpg" || $ext == "jpeg"){
    header('Content-type: image/jpeg');
    }

    elseif(
    $ext == "gif"){
    header('Content-type: image/gif');
    }

    elseif(
    $ext == "png"){
    header('Content-type: image/png');
    }

    elseif(
    $ext == "bmp"){
    header('Content-type: image/vnd.wap.wbmp');
    }

    $handle = fopen($nomethumb, "r");
    echo
    fread($handle, filesize($nomethumb));
    fclose($handle);
    }

    function
    error($e){
    $w = (imagefontwidth(5) * strlen($e));
    $h = imagefontheight(5);
    $img = imagecreate($w,$h);
    $bgcolor = imagecolorallocate($img, 255, 255, 255);
    $txtcolor = imagecolorallocate($img, 255, 0, 0);
    imagestring($img, 5, 0, 0, $e, $txtcolor);
    header("Content-type: image/gif");
    imagegif($img);
    }

    function
    resize($source){
    global
    $resample,$thumb,$newwidth,$newheight,$width,$height;
    if(
    $resample == 1){
    imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    }else{
    imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    }
    return
    $thumb;
    }

    function
    edit($thumb){
    global
    $ext,$imgfile,$rot,$source,$newheight,$newwidth,$wm,$al,$persfont,$font,$alwayswm,$defwm,$size,$tras;
    if(isset(
    $rot)){
    if(
    is_numeric($rot)){
    $thumb = imagerotate($thumb, $rot, 0);
    }
    }

    if(isset(
    $wm) || $alwayswm == 1){
    $black = imagecolorallocatealpha($thumb, 255, 0, 0, $tras);

    if(
    $alwayswm == 1){
    $wm = $defwm;
    }

    if(
    $persfont == 0){
    $font = 5;
    }

    if(!isset(
    $al) || ($al != "left" && $al != "center" && $al != "right")){
    $al = "right";
    }

    switch (
    $al){
    case
    "left":
    $w = 2;
    break;
    case
    "center":
    $w = ($newwidth - (strlen($wm) * imagefontwidth($font))) / 2;
    break;
    case
    "right":
    if(
    $persfont == 1){
    $w = $newwidth - (strlen($wm) * (imagefontwidth($font) * $size/2)) - 2;
    }else{
    $w = $newwidth - (strlen($wm) * imagefontwidth($font)) - 2;
    }
    break;
    }
    $h = $newheight - imagefontheight(5) - 2;

    if(
    $persfont == 0 || trim($font) == ""){
    imagestring($thumb, 5, $w, $h, $wm, $black);
    }else{
    imagefttext($thumb, $size, 0, $w, $h, $black, $font, $_GET['wm']);
    }
    }
    return
    $thumb;
    }

    if(
    $alwayswm == 1 && trim($defwm) == ""){
    error("ERRORE: Necessario watermark predefinito con il watermark obbligatorio attivato");
    }

    if(!
    is_dir("thumb")){
    mkdir("thumb");
    }

    if(!
    is_file($imgfile)){
    error("ERRORE: L'immagine non esiste");
    die();
    }

    if(!isset(
    $size)){
    $size = $defsize;
    }

    if(
    is_file($nomethumb) && $onthefly == 0){
    read($nomethumb);
    die();
    }
    if(!
    is_file($imgfile)){
    error("ERRORE: Il file non esiste");
    die();
    }

    list(
    $width, $height) = getimagesize($imgfile);
    //Heracleum mod
    if($height < $width){
    $newwidth = $size;
    $rap = $height / $width;
    $newheight = $newwidth * $rap;
    }else{
    $newheight = $size;
    $rap = $width / $height;
    $newwidth = $newheight * $rap;
    }
    $thumb = ImageCreateTrueColor($newwidth,$newheight);
    imageantialias($thumb,1);
    if(
    $ext == "jpg" || $ext == "jpeg"){
    header('Content-type: image/jpeg');
    $source = imagecreatefromjpeg($imgfile);
    $thumb = resize($source);
    $thumb = edit($thumb);
    if(
    $onthefly == 1){
    imagejpeg($thumb);
    }else{
    imagejpeg($thumb, $nomethumb);
    read($nomethumb);
    }
    }

    elseif(
    $ext == "gif"){
    header('Content-type: image/gif');
    $source = imagecreatefromgif($imgfile);
    $thumb = resize($source);
    $thumb = edit($thumb);
    if(
    $onthefly == 1){
    imagegif($thumb);
    }else{
    imagegif($thumb, $nomethumb);
    read($nomethumb);
    }
    }

    elseif(
    $ext == "png"){
    header('Content-type: image/png');
    $source = imagecreatefrompng($imgfile);
    $thumb = resize($source);
    $thumb = edit($thumb);
    if(
    $onthefly == 1){
    imagepng($thumb);
    }else{
    imagepng($thumb, $nomethumb);
    read($nomethumb);
    }
    }

    elseif(
    $ext == "bmp"){
    header('Content-type: image/vnd.wap.wbmp');
    $source = imagecreatefrompng($imgfile);
    $thumb = resize($source);
    $thumb = edit($thumb);
    if(
    $onthefly == 1){
    imagewbmp($thumb);
    }else{
    imagewbmp($thumb, $nomethumb);
    read($nomethumb);
    }
    }else{
    error("ERRORE: Formato non supportato");
    die();
    }

    ?>

  27. #27
    Guest

    Predefinito

    @ tuttoeniente2: dire che NON funzia è poco? le immagini non si vedono...vai a vedere(GALLERY/nospam\) ...
    ho delle domande:
    1- In che senso il thumbnail è diverso per ogni combinazione di parametri passata allo script?
    2- Che cos'è Possibilità la funzione di resample?
    3- Come faccio ad attivare/disattivare le cache delle miniature?
    4- Che cos'è il watemark?

    Cmq al + presto di metterò come collaboratore della gallery con 1 link diretto al tuo sito!
    ...grazie & byex!

    EDIT by debug: turko guarda che è perfettamente inutile la scritta "no spam", priòa di tutto perchè in questo caso non lo è, e poi in caso lo fosse quella scritta non risolverebbe nulla!
    Ultima modifica di debug : 14-03-2006 alle ore 10.40.21

  28. #28
    Guest

    Predefinito

    1. in pratica se tu scrivi img.php?file=miaimg.png&size=300 e poi img.php?file=miaimg.png&size=500, una dopo l'altra, adesso l'immagine risulta diversa, mentre prima, come hai potuto vedere anche tu, mostrava sempre la stessa immagine.
    2. In pratica la funzione resample migliora la qualità del ridimensionamento, a costo di una riduzione della velocità (solo nella creazione dei thumbnail.
    3. Editando le prime righe dello script, all'interno del quale ci sono dettagliate spiegazioni
    4. Una scritta semitrasparente personalizzabile, ad esempio potresti usarla per scrivere "by TurkoSoft" o qualcosa del genere nelle immagini. Ovviamente non è obbligatorio. Strano che non funzioni, l'ho appena testata sia in locale sia su AV e va alla grande.
    L'unica cosa è che c'era un errore marginale nella funzione per il watermark che visualizzava la scritta rossa anziché nera, ecco lo script corretto.
    Codice PHP:
    <?php
    /*
    * PHP RESIZER WIZARD
    * Versione: 1.1
    * Licenza: GPL
    * Autore: Tuttoeniente
    * Contributi: Heracleum, Forum di AlterVista.org
    */

    // *** CONFIGURAZIONE ***//
    $onthefly = 0; //Generazione al volo delle immagini, cache disattiva: 1 = si 0 = no.
    //ATTENZIONE: Con questa opzione attivata il caricamento delle pagine con tante immagini potrebbe risultare
    //visibilmente rallentato. Usare questa opzione è consigliabile solo in fase di sviluppo, in caso di necessità di non
    //occupare spazio sul server, o nel caso non si disponga di permessi di scrittura
    //N.B.: Se è disattivata, qualsiasi dimensione, watermark, rotazione od altro passati non verranno eseguiti, verrà
    //solo caricata la versione della cache
    $defsize = 300; //Larghezza/altezza predefinita del thumbnail
    $resample = 1; //Utilizzo della funzione resample nella riduzione, che garantisce una migliore qualità ma è più lento (solo nella
    //generazione delle immagini, non nel richiamo dalla cache): 1 = si 0 = no
    $persfont = 0; //Font .ttf personalizzato per il watermark: 1 = si (necessario inserire quale nella prossima variabile) 0 = no
    $font = ""; //Nome del file del font, relativo alla directory dello script
    $size = 18; //Dimensione del font (solo se personalizzato)
    $alwayswm = 0; //Watermark su tutte le immagini: 1 = si 0 = no
    $defwm = ""; //Testo predefinito del watermark, obbligatorio se alwayswm è settato a 1
    $trasp = 110; //Trasparenza del watermark, da 0 a 127
    //*** FINE CONFIGURAZIONE ***//

    $imgfile = htmlspecialchars(@$_GET['file']);
    $size = @$_GET['size'];
    $rot = @$_GET['rot'];
    $wm = @$_GET['wm'];
    $al = @$_GET['al'];
    $ext = explode(".", $imgfile);
    $n = count($ext)-1;
    $ext = strtolower($ext[$n]);
    $get = '';
    foreach(
    $_GET as $k => $v){
    $get .= $k.$v;
    }
    $nomethumb = "thumb/thumb_".md5($imgfile.$get).".".$ext;

    function
    read($f){
    global
    $ext,$imgfile,$nomethumb;
    if(
    $ext == "jpg" || $ext == "jpeg"){
    header('Content-type: image/jpeg');
    }

    elseif(
    $ext == "gif"){
    header('Content-type: image/gif');
    }

    elseif(
    $ext == "png"){
    header('Content-type: image/png');
    }

    elseif(
    $ext == "bmp"){
    header('Content-type: image/vnd.wap.wbmp');
    }

    $handle = fopen($nomethumb, "r");
    echo
    fread($handle, filesize($nomethumb));
    fclose($handle);
    }

    function
    error($e){
    $w = (imagefontwidth(5) * strlen($e));
    $h = imagefontheight(5);
    $img = imagecreate($w,$h);
    $bgcolor = imagecolorallocate($img, 255, 255, 255);
    $txtcolor = imagecolorallocate($img, 255, 0, 0);
    imagestring($img, 5, 0, 0, $e, $txtcolor);
    header("Content-type: image/gif");
    imagegif($img);
    }

    function
    resize($source){
    global
    $resample,$thumb,$newwidth,$newheight,$width,$height;
    if(
    $resample == 1){
    imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    }else{
    imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    }
    return
    $thumb;
    }

    function
    edit($thumb){
    global
    $ext,$imgfile,$rot,$source,$newheight,$newwidth,$wm,$al,$persfont,$font,$alwayswm,$defwm,$size,$tras;
    if(isset(
    $rot)){
    if(
    is_numeric($rot)){
    $thumb = imagerotate($thumb, $rot, 0);
    }
    }

    if(isset(
    $wm) || $alwayswm == 1){
    $black = imagecolorallocatealpha($thumb, 0, 0, 0, $tras);

    if(
    $alwayswm == 1){
    $wm = $defwm;
    }

    if(
    $persfont == 0){
    $font = 5;
    }

    if(!isset(
    $al) || ($al != "left" && $al != "center" && $al != "right")){
    $al = "right";
    }

    switch (
    $al){
    case
    "left":
    $w = 2;
    break;
    case
    "center":
    $w = ($newwidth - (strlen($wm) * imagefontwidth($font))) / 2;
    break;
    case
    "right":
    if(
    $persfont == 1){
    $w = $newwidth - (strlen($wm) * (imagefontwidth($font) * $size/2)) - 2;
    }else{
    $w = $newwidth - (strlen($wm) * imagefontwidth($font)) - 2;
    }
    break;
    }
    $h = $newheight - imagefontheight(5) - 2;

    if(
    $persfont == 0 || trim($font) == ""){
    imagestring($thumb, 5, $w, $h, $wm, $black);
    }else{
    imagefttext($thumb, $size, 0, $w, $h, $black, $font, $_GET['wm']);
    }
    }
    return
    $thumb;
    }

    if(
    $alwayswm == 1 && trim($defwm) == ""){
    error("ERRORE: Necessario watermark predefinito con il watermark obbligatorio attivato");
    }

    if(!
    is_dir("thumb")){
    mkdir("thumb");
    }

    if(!
    is_file($imgfile)){
    error("ERRORE: L'immagine non esiste");
    die();
    }

    if(!isset(
    $size)){
    $size = $defsize;
    }

    if(
    is_file($nomethumb) && $onthefly == 0){
    read($nomethumb);
    die();
    }
    if(!
    is_file($imgfile)){
    error("ERRORE: Il file non esiste");
    die();
    }

    list(
    $width, $height) = getimagesize($imgfile);
    //Heracleum mod
    if($height < $width){
    $newwidth = $size;
    $rap = $height / $width;
    $newheight = $newwidth * $rap;
    }else{
    $newheight = $size;
    $rap = $width / $height;
    $newwidth = $newheight * $rap;
    }
    $thumb = ImageCreateTrueColor($newwidth,$newheight);
    imageantialias($thumb,1);
    if(
    $ext == "jpg" || $ext == "jpeg"){
    header('Content-type: image/jpeg');
    $source = imagecreatefromjpeg($imgfile);
    $thumb = resize($source);
    $thumb = edit($thumb);
    if(
    $onthefly == 1){
    imagejpeg($thumb);
    }else{
    imagejpeg($thumb, $nomethumb);
    read($nomethumb);
    }
    }

    elseif(
    $ext == "gif"){
    header('Content-type: image/gif');
    $source = imagecreatefromgif($imgfile);
    $thumb = resize($source);
    $thumb = edit($thumb);
    if(
    $onthefly == 1){
    imagegif($thumb);
    }else{
    imagegif($thumb, $nomethumb);
    read($nomethumb);
    }
    }

    elseif(
    $ext == "png"){
    header('Content-type: image/png');
    $source = imagecreatefrompng($imgfile);
    $thumb = resize($source);
    $thumb = edit($thumb);
    if(
    $onthefly == 1){
    imagepng($thumb);
    }else{
    imagepng($thumb, $nomethumb);
    read($nomethumb);
    }
    }

    elseif(
    $ext == "bmp"){
    header('Content-type: image/vnd.wap.wbmp');
    $source = imagecreatefrompng($imgfile);
    $thumb = resize($source);
    $thumb = edit($thumb);
    if(
    $onthefly == 1){
    imagewbmp($thumb);
    }else{
    imagewbmp($thumb, $nomethumb);
    read($nomethumb);
    }
    }else{
    error("ERRORE: Formato non supportato");
    die();
    }

    ?>

  29. #29
    Guest

    Predefinito

    ecco che errore mi da nel poup up quando lo apro(anche se ancora le immagini non si vedono):
    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /membri2/turkosoft/project/gallery/img.php on line 77
    c'è 1 errore nella riga 77 da quello che ho capito...gli dai 1 occhiata li x favore?
    ...grazie!
    PS: sei stato inserito come partner

    @ debug: scusa, ma era appunto per non fare dello spam!

  30. #30
    Guest

    Predefinito

    Ma non facevi prima a prendere uno script già fatto e testato??

    PS: lo spam rimane tale anche se ci aggiungi quella scritta, è questo che voglio dire!
    Se tu avessi fatto dello spam, ti sarebbe stato censurato, anche se avessi scritto "no spam".


    Ciao!

Pagina 1 di 2 12 UltimoUltimo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •