Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    da [img]http://[/img] a $variabile

    salve gente,
    ho il mio bel forum dove gli utenti postano i loro messaggi relativi di immagini con (img)(/img) (ma con le [ ]).

    adesso il mio bel problemino è farne il resize in caso eccedano i 400 pixel di larghezza.
    come faccio??

    per ora ho sempre utilizzato:

    $testo = preg_replace("/\[IMG\](.*?)\[\/IMG\]/i", "<img src=\"\\1\" />", $testo);

    ma ora come faccio a portare l'indirizzo assoluto dell'immagine in una variabile per poterla ridimensionare??

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    potresti fare una cosa di questo tipo: prendi l'immagine, controlli se la larghezza è maggiore di 400, ed in caso affermativo metti come width la larghezza prefissata.

    codice:
    preg_match("/\[IMG\](.*?)\[\/IMG\]/i", $testo, $ris);
    $temp=getimagesize($ris[1]);
    if ($temp[0] > 400)
    	$testo = preg_replace("/\[IMG\](.*?)\[\/IMG\]/i", "<img src=\"\\1\" width=\"400\" />", $testo); 
    else
    	$testo = preg_replace("/\[IMG\](.*?)\[\/IMG\]/i", "<img src=\"\\1\" />", $testo);
    think simple think ringo

  3. #3
    grazie mille, utilizzerei questa funzione per il ridimensionamento:

    Codice PHP:
    function resize($file){ 
    $size getimagesize("$file");//Ritorna una matrice di 4 elementi 
        # L'indice 0 contiene la larghezza. L'indice 1 contiene la lunghezza. 
        # L'indice 2 contiene il tipo d'immagine : 1 = GIF, 2 = JPG, 
        # 3 = PNG, 5 = PSD, 6 = BMP. 

        //ridimensiono 
        
    if ($size[0]>$size[1]){ 

        if (
    $size[0]==300){ 
        
    $dime=1
        
    $larghezza = ($size[0]/$dime); 
        }else{ 
        
    $dime=($size[0]*1)/100
        
    $larghezza = ($size[0]/$dime); 
        }; 
        
    $altezza=($size[1]/$dime); 
        }else{ 

        if (
    $size[1]==300){ 
        
    $dime=1
        
    $altezza = ($size[1]/$dime); 
        }else{ 
        
    $dime=($size[1]*1)/100
        
    $altezza = ($size[1]/$dime); 
        }; 
        
    $larghezza=($size[0]/$dime); 
        } 
        
        if (
    $size[2]==1){ 
        }else{ 
        
    $src_img imagecreatefromjpeg("$file"); 
        } 
        
    $d_img imagecreatetruecolor($larghezza,$altezza
        
    ); 
        
    imagecopyresampled($d_img$src_img0000$larghezza$altezza$size[0], $size[1]); 
        
    imagejpeg($d_img"$file"85); 
        
    imagedestroy($src_img); 
        
    imagedestroy($d_img); 
        


    il solo problema è che dovrei usarla nel ciclo while che mostra tutti i messaggi, ma mi da errore "cannot redeclare...."
    ma se la metto esterna al ciclo e poi la richiamo?

  4. #4
    per ora ho messo:
    Codice PHP:
    preg_match("/\[IMG\](.*?)\[\/IMG\]/i"$testo$ris);
    $temp=getimagesize($ris[1]);
    if (
    $temp[0] > 372){
        
    $testo preg_replace("/\[IMG\](.*?)\[\/IMG\]/i""<img src=\"\\1\" width=\"372\" />"$testo); 
    }
    elseif(
    $tempo[0] < 372){
        
    $testo preg_replace("/\[IMG\](.*?)\[\/IMG\]/i""<img src=\"\\1\" />"$testo); 

    ma ridimensiona pure le immagini + piccole di 372 pixel, e me le porta a 372. Come mai?

    ps.è normale che la pagina rallenti tanto?

  5. #5
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    si, puoi metterla fuori dal ciclo e richiamarla successivamente quando ti serve.
    think simple think ringo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.