Pagina 2 di 2 PrimoPrimo 12
Visualizzazione risultati 31 fino 42 di 42

Discussione: Rimpicciolire immagini...

  1. #31
    Guest

    Predefinito

    Citazione Originalmente inviato da debug
    Ma non facevi prima a prendere uno script già fatto e testato??
    no, perchè la gallery la devo mettere a disposizione del mio sito per gli utenti...cioè la devo far scaricare!

  2. #32
    Guest

    Predefinito

    Hai ragione. Per sbaglio ho inserito uno spazio che ha sballato il nome di una variabile.
    Eccolo ri-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,$w m,$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();
    }

    ?>

  3. #33
    Guest

    Predefinito

    non capisco perchè ma continua a darmi qst maledetto errore:
    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /membri2/turkosoft/project/gallery/img.php on line 77
    ...help please! sono disperato...sto impazzendo con sto script!

  4. #34
    Ospite Guest

    Predefinito

    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,$w m,$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();
    }

    ?>
    Prova ora...

  5. #35
    L'avatar di SolitaryExplorer
    SolitaryExplorer non è connesso Utente storico
    Data registrazione
    10-08-2005
    Residenza
    Veneto
    Messaggi
    1,949

    Predefinito

    Ma hai fatto un copia e incolla?!
    Allora ora ti dico dove devi correggere.

    Codice PHP:
    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);
    }
    }
    Ultima modifica di SolitaryExplorer : 15-03-2006 alle ore 21.44.52
    Non offro assistenza privata. / Se vuoi anche tu una userbar come queste, basta chiedere.


  6. #36
    Guest

    Predefinito

    grazie 100000000000000 solitary!
    grazie anche a tuttoeniente e agli altri!

  7. #37
    Guest

    Predefinito

    @probid & SolitaryExplorer: dove erano gli errori?

    @SolitaryExplore:Ho fatto un copia incolla dall'editor (Notepad++) dopo avere corretto il codice. E' impazzito firefox?
    Ultima modifica di tuttoeniente2 : 16-03-2006 alle ore 17.06.15

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

    Predefinito

    tuttoeniente2:
    non ti preoccupare, non erano errori TUOI,
    è il forum che aggiunge qualche spazio nelle righe troppo lunghe, per es. qui:
    ...
    function edit($thumb){
    global $ext,$imgfile,$rot,$source,$newheight,$newwidth,$w m,$al,$persfont,$font,$alwayswm,$defwm,$size,$tras ;
    ...

    ha spezzato la riga in ben 2 parti.

    E' turko che prende e incolla senza controllare
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  9. #39
    Guest

    Predefinito

    Citazione Originalmente inviato da heracleum
    tuttoeniente2:
    non ti preoccupare, non erano errori TUOI,
    è il forum che aggiunge qualche spazio nelle righe troppo lunghe, per es. qui:
    ...
    function edit($thumb){
    global $ext,$imgfile,$rot,$source,$newheight,$newwidth,$w m,$al,$persfont,$font,$alwayswm,$defwm,$size,$tras ;
    ...

    ha spezzato la riga in ben 2 parti.

    E' turko che prende e incolla senza controllare
    mica è colpa mia se c'è 1 bug sul forum e non viene corretto ...la prox volta se me lo ricordo controllerò!

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

    Predefinito

    No, non è un bug del forum,
    è semplicemente un lecito controllo per non deformare il layout delle pagine, puoi controllare tu stesso:
    Senza che confermi l'invio di un post, prova a rispondere ad un thread qualsiasi, ripeti parecchie volte un carattere qualsiasi superando i 50 caratteri, per es:
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaa

    Senza inviarlo basta che fai "Anteprima Messaggio" e ti ritrovi questa riga spezzata da uno spazio come infatti risulterà in questa mia prova sopra, infatti c'è uno spazio dopo il 50' carattere.

    Meglio ancora con i numeri, ecco qualche lettera all'inizio seguita da un MIO spazio e poi 60 caratteri di filato, gli ultimi 10 vengono spezzati:
    abcd 12345678901234567890123456789012345678901234567890 1234567890

    Quindi non dall'inizio della riga ma una qualsiasi parola oltre i 50 caratteri.

    Dunque, tornando al codice, quando qualcuno ti propone un codice, prova a darci un minimo di sguardo di controllo, ad occhio una riga di codice spezzata si nota parecchio
    Lo dico anche per te, oltre ad utilizzare codici altrui e stop, prova ad apprendere leggendo il codice. Altrimenti chiunque potrebbe farti qualche scherzetto se prendi e usi codici senza controllarli un minimo.
    Ultima modifica di heracleum : 17-03-2006 alle ore 00.35.46
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  11. #41
    Guest

    Predefinito

    Fer fortuna, pensavo di essere impazzito io...!
    Ma c'è un modo per impedirlo? (a parte postare un link ad un tar con dentro lo script)

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

    Predefinito

    Per impedire che il codice venga rovinato basta lasciare qualche spazio "strategicamente", esattamente come ha fatto SolitaryExplorer,
    quella riga era stata spezzata dal forum perché aveva una serie di variabile separate da virgola tutte appiccicate l'una all'altra, bastava mettere qualche spazio dopo ciascuna virgola.
    Certo in alcuni casi la cosa potrebbe essere meno fattibile, per es. nel caso di un url molto lungo dentro un codice... o altri casi simili.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

Pagina 2 di 2 PrimoPrimo 12

Regole di scrittura

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