
16/02/2008, 23:54
|
 | | | Fecha de Ingreso: junio-2006
Mensajes: 550
Antigüedad: 18 años, 9 meses Puntos: 7 | |
Re: Subir Imagen Continuación class.upload.php
Código:
$transparency = imagecolorallocate($image_dst, $red, $green, $blue);
// make the transaparent areas transparent
for ($x = 0; $x < $this->image_dst_x; $x++) {
for ($y = 0; $y < $this->image_dst_y; $y++) {
// we test wether we have some transparency, in which case we will merge the colors
$pixel = imagecolorsforindex($image_dst, imagecolorat($image_dst, $x, $y));
if ($pixel['alpha'] == 127) {
// we have full transparency. we make the pixel transparent
imagesetpixel($image_dst, $x, $y, $transparency);
} else if ($pixel['alpha'] > 0) {
// we have some transparency. we combine the color with the default color
$alpha = ($pixel['alpha'] / 127);
$pixel['red'] = round(($pixel['red'] * (1 -$alpha) + $red * ($alpha)));
$pixel['green'] = round(($pixel['green'] * (1 -$alpha) + $green * ($alpha)));
$pixel['blue'] = round(($pixel['blue'] * (1 -$alpha) + $blue * ($alpha)));
$color = imagecolorclosest($image_dst, $pixel['red'], $pixel['green'], $pixel['blue']);
imagesetpixel($image_dst, $x, $y, $color);
}
}
}
break;
default:
break;
}
// outputs image
$this->log .= '- saving image...<br />';
switch($this->image_convert) {
case 'jpeg':
case 'jpg':
if (!$return_mode) {
$result = @imagejpeg($image_dst, $this->file_dst_pathname, $this->jpeg_quality);
} else {
ob_start();
$result = @imagejpeg($image_dst, '', $this->jpeg_quality);
$return_content = ob_get_contents();
ob_end_clean();
}
if (!$result) {
$this->processed = false;
$this->error = $this->translate('file_create', array('JPEG'));
} else {
$this->log .= ' JPEG image created<br />';
}
break;
case 'png':
imagealphablending( $image_dst, false );
imagesavealpha( $image_dst, true );
if (!$return_mode) {
$result = @imagepng($image_dst, $this->file_dst_pathname);
} else {
ob_start();
$result = @imagepng($image_dst);
$return_content = ob_get_contents();
ob_end_clean();
}
if (!$result) {
$this->processed = false;
$this->error = $this->translate('file_create', array('PNG'));
} else {
$this->log .= ' PNG image created<br />';
}
break;
case 'gif':
if (!$return_mode) {
$result = @imagegif($image_dst, $this->file_dst_pathname);
} else {
ob_start();
$result = @imagegif($image_dst);
$return_content = ob_get_contents();
ob_end_clean();
}
if (!$result) {
$this->processed = false;
$this->error = $this->translate('file_create', array('GIF'));
} else {
$this->log .= ' GIF image created<br />';
}
break;
case 'bmp':
if (!$return_mode) {
$result = $this->imagebmp($image_dst, $this->file_dst_pathname);
} else {
ob_start();
$result = $this->imagebmp($image_dst);
$return_content = ob_get_contents();
ob_end_clean();
}
if (!$result) {
$this->processed = false;
$this->error = $this->translate('file_create', array('BMP'));
} else {
$this->log .= ' BMP image created<br />';
}
break;
|