![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
22/06/2008, 11:02
|
| | Fecha de Ingreso: agosto-2003 Ubicación: Zaragoza
Mensajes: 25
Antigüedad: 21 años, 6 meses Puntos: 0 | |
Problema con Codigo Hola
Soy novato en esto de PHP y estoy atascasdo con un modulo para el sistema CMS Pligg. El modulo en cuestion es Image Uploader.
Este modulo lo que hace es subir imagenes al servidor y convertirlas automaticamente a JPEG, analizando un poco este modulo he visto que el archivo "class.imageconverter.inc.php" es el que se "debe" de encargar de convertir el archivo a jpeg.
Siendo el codigo de este archivo:
Código:
## 15th January 2005
#######
## Author: Huda M Elmatsani
## Email : justhuda ## netscape ## net
#######
## Copyright (c) 2005 Huda M Elmatsani All rights reserved.
## This program is free for any purpose use.
########
## Description:
## Casting image type from one type to another is useful for
## web experience, because each type has advantage and disadvantage.
## With JPEG you can reduce the quality to get affordable filesize,
## with GIF you can make it transparent or make an animation,
## with PNG you can avoid from GIF restriction,
## with SWF you can protect your image or make a movie.
## This class helps you doing this various conversion within a single line.
##
## Requirements:
## - GD Library
## - Ming Library
##
## Sintax:
## new ImageConverter( original_file, converted_file_type [, output]);
##
## note: output = 1 means the image is displayed to browser
## output = 0 or no argument means the image is saved
##
## new ImageConverter('jakarta.png','jpg') => convert to JPEG
## new ImageConverter('jakarta.jpg','gif') => convert to GIF
## new ImageConverter('jakarta.gif','png') => convert to PNG
## new ImageConverter('jakarta.gif','swf') => convert to SWF
##
##
## Example:
## new ImageConverter('jakarta.gif','jpg',1)
## the result is showed to the browser.
##
## new ImageConverter('aceh.png','swf');
## the result is saved to the disk with name 'aceh.swf'
##
## Limitation:
## Can not convert SWF file to other type :(
##
##########
class ImageConverter {
var $imtype;
var $im;
var $imname;
var $imconvertedtype;
var $output;
var $finalFilePath;
function imageConverter() {
/* parse arguments */
$numargs = func_num_args();
$imagefile = func_get_arg(0);
$convertedtype = func_get_arg(1);
$this->finalFilePath = func_get_arg(2);
$output = 0;
if($numargs > 3) $this->output = func_get_arg(3);
/* ask the type of original file */
$fileinfo = pathinfo($imagefile);
$imtype = $fileinfo["extension"];
$this->imname = basename($fileinfo["basename"],".".$imtype);
$this->imtype = $imtype;
/* create the image variable of original file */
switch ($imtype) {
case "gif":
$this->im = imageCreateFromGIF($imagefile);
break;
case "jpg":
$this->im = imageCreateFromJPEG($imagefile);
break;
case "png":
$this->im = imageCreateFromPNG($imagefile);
break;
case "wbmp":
$this->im = imageCreateFromWBMP($imagefile);
break;
/*
mail me if you have/find this functionality bellow */
/*
case "swf":
$this->im = $this->imageCreateFromSWF($imagefile);
break;
*/
}
/* convert to intended type */
$this->convertImage($convertedtype);
}
function convertImage($type) {
/* check the converted image type availability,
if it is not available, it will be casted to jpeg :) */
$validtype = $this->validateType($type);
if($this->output) {
/* show the image */
switch($validtype){
case 'jpeg' :
case 'jpg' :
header("Content-type: image/jpeg");
if($this->imtype == 'gif' or $this->imtype == 'png') {
$image = $this->replaceTransparentWhite($this->im);
imageJPEG($image);
} else
imageJPEG($this->im);
break;
case 'gif' :
header("Content-type: image/gif");
imageGIF($this->im);
break;
case 'png' :
header("Content-type: image/png");
imagePNG($this->im);
break;
case 'wbmp' :
header("Content-type: image/vnd.wap.wbmp");
imageWBMP($this->im);
break;
case 'swf' :
header("Content-type: application/x-shockwave-flash");
$this->imageSWF($this->im);
break;
}
// Memory cleanup
@imagedestroy($this->im);
} else {
/* save the image */
switch($validtype){
case 'jpeg' :
case 'jpg' :
if($this->imtype == 'gif' or $this->imtype == 'png') {
/* replace transparent with white */
$image = $this->replaceTransparentWhite($this->im);
imageJPEG($image,$this->finalFilePath.$this->imname.".jpg");
} else
imageJPEG($this->im,$this->finalFilePath.$this->imname.".jpg");
break;
case 'gif' :
imageGIF($this->im,$this->finalFilePath.$this->imname.".gif");
break;
case 'png' :
imagePNG($this->im,$this->finalFilePath.$this->imname.".png");
break;
case 'wbmp' :
imageWBMP($this->im,$this->finalFilePath.$this->imname.".wbmp");
break;
case 'swf' :
$this->imageSWF($this->im,$this->finalFilePath.$this->imname.".swf");
break;
}
// Memory cleanup
@imagedestroy($this->im);
}
}
/* convert image to SWF */
function imageSWF() {
/* parse arguments */
$numargs = func_num_args();
$image = func_get_arg(0);
$swfname = "";
if($numargs > 1) $swfname = func_get_arg(1);
/* image must be in jpeg and
convert jpeg to SWFBitmap
can be done by buffering it */
ob_start();
imagejpeg($image);
$buffimg = ob_get_contents();
ob_end_clean();
$img = new SWFBitmap($buffimg);
$w = $img->getWidth();
$h = $img->getHeight();
$movie = new SWFMovie();
$movie->setDimension($w, $h);
$movie->add($img);
if($swfname)
$movie->save($swfname);
else
$movie->output;
}
/* convert SWF to image */
function imageCreateFromSWF($swffile) {
die("No SWF converter in this library");
}
function validateType($type) {
/* check image type availability*/
$is_available = FALSE;
switch($type){
case 'jpeg' :
case 'jpg' :
if(function_exists("imagejpeg"))
$is_available = TRUE;
break;
case 'gif' :
if(function_exists("imagegif"))
$is_available = TRUE;
break;
case 'png' :
if(function_exists("imagepng"))
$is_available = TRUE;
break;
case 'wbmp' :
if(function_exists("imagewbmp"))
$is_available = TRUE;
break;
case 'swf' :
if(class_exists("swfmovie"))
$is_available = TRUE;
break;
}
if(!$is_available && function_exists("imagejpeg")){
/* if not available, cast image type to jpeg*/
return "jpeg";
}
else if(!$is_available && !function_exists("imagejpeg")){
die("No image support in this PHP server");
}
else
return $type;
}
function replaceTransparentWhite($im){
$src_w = ImageSX($im);
$src_h = ImageSY($im);
$backgroundimage = imagecreatetruecolor($src_w, $src_h);
$white = ImageColorAllocate ($backgroundimage, 255, 255, 255);
ImageFill($backgroundimage,0,0,$white);
ImageAlphaBlending($backgroundimage, TRUE);
imagecopy($backgroundimage, $im, 0,0,0,0, $src_w, $src_h);
return $backgroundimage;
}
}
?>
¿como puedo hacer para que los convierta a GIF? |