Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536

    creare immagine con al centro un'altra

    Ciao

    avrei bisogno di creare un'immagine in php che deve avere dimensioni fisse e lo sfondo nero.

    Al centro di questa immagine base deve essere incollata perfettamente al centro un'altra immagine più piccola (caricata da me o da un altro utente).
    Ho visto un po' le funzioni che permettono di ridimensionare e creare immagini e le ho usate per gestire l'upload entro certe dimensioni però mi sono accorto che se l'immagine è troppo piccola ho problemi di visualizzazione con una galleria scritta in javascript.

    Potete aiutarmi a capire come creare l'immagine di base da usare come sfondo standard (per le immagini troppo piccole) con incollata al centro un'altra.

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536
    niente?

  3. #3

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536
    ho visto ma la cosa sembra abbastanza complessa (almeno per me).

    Io dovrei prima ridimensionare l'immagine in ogni caso in quanto potrebbe verificarsi il caso che l'immagine è più corta delle dimensioni minime ma più larga della massima consentita, e in questo caso devo comunque ridimensionare per rispettare le proporzioni.
    Poi "incollare" l'immagine, ottenuta dal ridimensionamento, sullo sfondo nero per ripsttare le esigenza di output della galleria.

    Non so se sono stato chiaro.

    Per il momento ho preso solo il caso del ridimensionamento se l'immagine è troppo grande:

    ho questa funzione che viene richiamata per il ridimensionamento:

    Codice PHP:

    <?php
    function makeresize($dir,$pic,$n,$t){
      @list(
    $width$height$type$attr) = @getimagesize($pic);
      
    $max_w 500;
      
    $max_h 300;
      
    $ratio = @min($max_w/$width,$max_h/$height);

      
    // Verifico che l'immagine originale sia più grande delle dimensioni massime 100*100pxl
      
    if ($ratio 1){
        
    // Individuo le nuove dimensioni da assegnare all'immagine
        
    $w = @floor($ratio*$width);
        
    $h = @floor($ratio*$height);

        
    // creo una nuova immagine con le dimensioni appena calcolate
        
    $thumb = @imagecreatetruecolor($w,$h);
        if (
    $t == 'image/jpeg'){$temp = @imagecreatefromjpeg($pic);}
        elseif (
    $t == 'image/gif'){$temp = @imagecreatefromgif($pic);}
        elseif (
    $t == 'image/png'){$temp = @imagecreatefrompng($pic);}
       

        
    // ridimensiono l'originale e salvo nella cartella di destinazione
        
    @imagecopyresampled($thumb,$temp,0,0,0,0,$w,$h,$width,$height);
        if (
    $t == 'image/jpeg'){@imagejpeg($thumb,"$dir/".$n100);}
        elseif (
    $t == 'image/gif'){@imagegif($thumb,"$dir/".$n100);}
        elseif (
    $t == 'image/png'){@imagepng($thumb,"$dir/".$n100);}
      }
    }
    ?>

    il codice della pagina che la richiama è questo:


    Codice PHP:
      // Creo una array con i formati accettati
      
    $tipi_consentiti = array("image/gif","image/jpeg","image/png","image/pjpeg");

        
    // recupero i dati dal form
        
    $titolo = @addslashes($_POST['titolo']);
        
    $descrizione = @addslashes($_POST['descrizione']);
        
    $nome = @addslashes($_FILES['imagefile']['name']);
        
    $path $carfoto_user stripslashes($nome);
        
    $tipo = @addslashes($_FILES['imagefile']['type']);   

    ............

      
    // verifico che il formato del file sia tra quelli accettati
      
    if ((@in_array($_FILES['imagefile']['type'], $tipi_consentiti))&& ($_FILES["imagefile"]["size"] < 2200000)){ 
        
    // copio il file nella cartella delle immagini
        
    @copy ($_FILES['imagefile']['tmp_name'], $carfoto_user $nome);

      
    $nomenew $t."_".$nome;
       

        

      
    // creo ridimensionamento

        

    @makeresize($carfoto_user,$path,$nomenew,$tipo); 
        
    // creo la miniatura
        
    @makeThumb($carthumb_user,$path,$nomenew,$tipo);
        
        
    unlink($carfoto_user.$nome); 

    makeresize e makeThumb sono in pratica la stessa funzione; sono solo modificate le impostazioni di
    ridimensionamento.


    Chi mi può aiutare?

    Grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.