Visualizzazione dei risultati da 1 a 5 su 5

Discussione: php e immagini

  1. #1

    php e immagini

    ho creato una classe che mi crea delle thumbnail e le va a salvare in una cartella.Le immagini vengono caricate attraverso una form con un campo input type="file"...sapete dirmi perche' quando carico una foto dalla cartella radice,ossia $_SERVER['document_root'],mi crea la thumb e me la salva nella cartella,mentre se carico una foto da un'altra directory,mi salva la thumb nella cartella,ma risulta tutta nera senza nessuna immagine ridimensionata...ciao e grazie in anticipo

  2. #2
    Magari è un'errore nello script, se lo posti altri esperti di sicuro ti sapranno aiutare

  3. #3
    Hai ragione...lo metto

    <?php
    class FotoManager
    {

    private static $s_fotoManager;

    private $handleimg;
    private $original = "";
    private $handlethumb;
    private $oldoriginal;

    public static function getInstance(){

    if (FotoManager::$s_fotoManager === NULL)
    {
    FotoManager::$s_fotoManager = new FotoManager();
    }
    return FotoManager::$s_fotoManager;
    }

    private function __construct()
    {
    }
    private function __destruct()
    {
    }
    /*
    Apre l'immagine da manipolare
    */
    public function openImg($file)
    {
    $this->original = $file;

    if($this->extension($file) == 'jpg' || $this->extension($file) == 'jpeg')
    {
    $this->handleimg = @imagecreatefromjpeg($file);
    }
    elseif($this->extension($file) == 'png')
    {
    $this->handleimg = @imagecreatefrompng($file);
    }
    else {return -1;}

    }
    /*
    Restituisce la larghezza dell'immagine
    */
    public function getWidth()
    {
    return imageSX($this->handleimg);
    }

    /*
    Ottiene l'altezza dell'immagine
    */
    public function getHeight()
    {
    return imageSY($this->handleimg);
    }



    /*
    Crea una miniatura dell'immagine
    */
    public function creaThumb($newWidth, $newHeight)
    {
    $oldw = $this->getWidth();
    $oldh = $this->getHeight();
    $this->handlethumb = imagecreatetruecolor($newWidth, $newHeight);

    return imagecopyresampled($this->handlethumb, $this->handleimg, 0, 0, 0, 0, $newWidth, $newHeight, $oldw, $oldh);
    }



    /*
    Salva su file la Thumbnail
    */
    public function saveThumb($path, $qualityJpg = 100)
    {
    if($this->extension($this->original) == 'jpg' || $this->extension($this->original) == 'jpeg')
    {
    return imagejpeg($this->handlethumb, $path, $qualityJpg);
    }
    elseif($this->extension($this->original) == 'png')
    {
    return imagepng($this->handlethumb, $path);
    }

    }

    /*
    Distrugge le immagine per liberare le risorse
    */
    public function closeImg()
    {
    imagedestroy($this->handleimg);
    imagedestroy($this->handlethumb);
    }


    /*
    Estrae l'estensione da un file o un percorso
    */
    private function extension($percorso)
    {
    if(eregi("[\|\\]", $percorso))
    {
    // da percorso
    $nome = $this->nomefile($percorso);

    $spezzo = explode(".", $nome);

    return strtolower(trim(array_pop($spezzo)));
    }
    else
    {
    //da file
    $spezzo = explode(".", $percorso);

    return strtolower(trim(array_pop($spezzo)));
    }
    }

    /*
    Estrae il nome del file da un percorso
    */
    private function nomefile($path, $ext = true)
    {
    $diviso = spliti("[/|\\]", $path);

    if($ext)
    {
    return trim(array_pop($diviso));
    }
    else
    {
    $nome = explode(".", trim(array_pop($diviso)));

    array_pop($nome);

    return trim(implode(".", $nome));
    }
    }
    }
    ?>




    Nel file php lo richiamo in questo modo:

    $path='./avatar/'.$nomeFoto;
    $foto=FotoManager::getInstance();
    $foto->openImg($_FILES['avatarfile']['name']);

    $foto->creaThumb(140, 180);
    $foto->saveThumb($path, $qualityJpg = 100);
    $foto->closeImg();[list]

  4. #4
    hai provato a togliere i @?

    come sicuramente saprai sopprimono tutti i tipi di errori e warning

  5. #5
    si si,ma anche togliendo le @ non da nessun errore,e continua facendo la stessa cosa

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.