Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/07/2010, 14:12
Avatar de djcandido
djcandido
 
Fecha de Ingreso: junio-2009
Ubicación: San Salvador
Mensajes: 50
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Error de header();

Esta es la clase thumbnail con la cual hago el upload de fotos.:

Código PHP:
<?php

    
/**
     * Thumbnail
     * 
     * Crea una miniatura de una imagen y la guarda en un formato especifico
     * 
     * @package 
     * @author Snd234
     * @copyright 2008
     * @version 1.0
     * @access public
     */
    
class Thumbnail {
        
// informacion de la miniatura
        
private $thumbnail;
        private 
$thumbnail_width;
        private 
$thumbnail_height;
        
        
// informacion de la imagen original
        
private $image;
        private 
$image_width;
        private 
$image_height;
        private 
$image_type;
        
        public 
$error;
        
        
/**
         * Thumbnail::__construct()
         * 
         * @param mixed $source
         * @return
         */
        
public function __construct($source) {
            
$image_info = getimagesize($source);
            
            if(
$image_info) {
                
$this->image_width = $image_info[0];
                
$this->image_height = $image_info[1];
                
$this->image_type = $image_info[2];
                
                switch(
$this->image_type) {
                    case 
IMAGETYPE_JPEG: {
                        
$this->image = imagecreatefromjpeg($source);
                        break;
                    }
                    
                    case 
IMAGETYPE_GIF: {
                        
$this->image = imagecreatefromgif($source);
                        break;
                    }
                    
                    case 
IMAGETYPE_PNG: {
                        
$this->image = imagecreatefrompng($source);
                        break;
                    }
                    
                    default: {
                        
$this->error = "Formato no soportado";
                        break;
                    }
                }
            } 
            else {
                
$this->error = "Formato invalido";
            }
        }
        
        
/**
         * Thumbnail::resize()
         * 
         * @param mixed $width
         * @param integer $height
         * @return void
         */
        
public function resize($width,$height = 0) {
            
$this->thumbnail_width = $width;
            
$this->thumbnail_height = $height;
            
$proporcion = (($width*$this->image_height)/$this->image_width);
            if(
$height == 0) {
                
$this->thumbnail_height = $proporcion;
            } else {
                
$this->thumbnail_height = $width;
            }
            
/*if($height == 0) {
                $this->thumbnail_height = $width;
            } else {
                $this->thumbnail_height = $height;
            }*/
            
            
$this->thumbnail = imagecreatetruecolor($this->thumbnail_width, $this->thumbnail_height);
            
            
imagecopyresampled(
                
$this->thumbnail, $this->image, 0, 0, 0, 0,
                
$this->thumbnail_width, $this->thumbnail_height,
                
$this->image_width, $this->image_height
            
);
        }
        
        
/**
         * Thumbnail::save_jpg()
         * 
         * @param mixed $dir
         * @param mixed $name
         * @param integer $quality
         * @return
         */
        
public function save_jpg($dir, $name, $quality = 95) {
            
$path = $dir . $name . image_type_to_extension(IMAGETYPE_JPEG);
            
imagejpeg($this->thumbnail, $path, $quality);
            
            
imagedestroy($this->thumbnail);
            return 
$path;
        }
        
        
/**
         * Thumbnail::save_gif()
         * 
         * @param mixed $dir
         * @param mixed $name
         * @return
         */
        
public function save_gif($dir, $name) {
            
$path = $dir . $name . image_type_to_extension(IMAGETYPE_GIF);
            
imagegif($this->thumbnail, $path);
            
            
imagedestroy($this->thumbnail);
        }
        
        
/**
         * Thumbnail::save_png()
         * 
         * @param mixed $dir
         * @param mixed $name
         * @return
         */
        
public function save_png($dir, $name) {
            
$path = $dir . $name . image_type_to_extension(IMAGETYPE_PNG);
            
imagegif($this->thumbnail, $path);
            
            
imagedestroy($this->thumbnail);
        }
    }
    
?>