
16/02/2008, 23:52
|
 | | | 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:
// add bevel border
if ($this->image_bevel > 0) {
if (empty($this->image_bevel_color1)) $this->image_bevel_color1 = '#FFFFFF';
if (empty($this->image_bevel_color2)) $this->image_bevel_color2 = '#000000';
sscanf($this->image_bevel_color1, "#%2x%2x%2x", $red1, $green1, $blue1);
sscanf($this->image_bevel_color2, "#%2x%2x%2x", $red2, $green2, $blue2);
$tmp = $this->imagecreatenew($this->image_dst_x, $this->image_dst_y);
imagecopy($tmp, $image_dst, 0, 0, 0, 0, $this->image_dst_x, $this->image_dst_y);
imagealphablending($tmp, true);
for ($i=0; $i<$this->image_bevel; $i++) {
$alpha = round(($i / $this->image_bevel) * 127);
$c1 = imagecolorallocatealpha($tmp, $red1, $green1, $blue1, $alpha);
$c2 = imagecolorallocatealpha($tmp, $red2, $green2, $blue2, $alpha);
imageline($tmp, $i, $i, $this->image_dst_x - $i -1, $i, $c1);
imageline($tmp, $this->image_dst_x - $i -1, $this->image_dst_y - $i, $this->image_dst_x - $i -1, $i, $c2);
imageline($tmp, $this->image_dst_x - $i -1, $this->image_dst_y - $i -1, $i, $this->image_dst_y - $i -1, $c2);
imageline($tmp, $i, $i, $i, $this->image_dst_y - $i -1, $c1);
}
// we transfert tmp into image_dst
$image_dst = $this->imagetransfer($tmp, $image_dst);
}
// add watermark image
if ($this->image_watermark!='' && file_exists($this->image_watermark)) {
$this->log .= '- add watermark<br />';
$this->image_watermark_position = strtolower($this->image_watermark_position);
$watermark_info = getimagesize($this->image_watermark);
$watermark_type = (array_key_exists(2, $watermark_info) ? $watermark_info[2] : null); // 1 = GIF, 2 = JPG, 3 = PNG
$watermark_checked = false;
if ($watermark_type == IMAGETYPE_GIF) {
if (!function_exists('imagecreatefromgif')) {
$this->error = $this->translate('watermark_no_create_support', array('GIF'));
} else {
$filter = @imagecreatefromgif($this->image_watermark);
if (!$filter) {
$this->error = $this->translate('watermark_create_error', array('GIF'));
} else {
$this->log .= ' watermark source image is GIF<br />';
$watermark_checked = true;
}
}
} else if ($watermark_type == IMAGETYPE_JPEG) {
if (!function_exists('imagecreatefromjpeg')) {
$this->error = $this->translate('watermark_no_create_support', array('JPEG'));
} else {
$filter = @imagecreatefromjpeg($this->image_watermark);
if (!$filter) {
$this->error = $this->translate('watermark_create_error', array('JPEG'));
} else {
$this->log .= ' watermark source image is JPEG<br />';
$watermark_checked = true;
}
}
} else if ($watermark_type == IMAGETYPE_PNG) {
if (!function_exists('imagecreatefrompng')) {
$this->error = $this->translate('watermark_no_create_support', array('PNG'));
} else {
$filter = @imagecreatefrompng($this->image_watermark);
if (!$filter) {
$this->error = $this->translate('watermark_create_error', array('PNG'));
} else {
$this->log .= ' watermark source image is PNG<br />';
$watermark_checked = true;
}
}
} else if ($watermark_type == IMAGETYPE_BMP) {
if (!method_exists($this, 'imagecreatefrombmp')) {
$this->error = $this->translate('watermark_no_create_support', array('BMP'));
} else {
$filter = @$this->imagecreatefrombmp($this->image_watermark);
if (!$filter) {
$this->error = $this->translate('watermark_create_error', array('BMP'));
} else {
$this->log .= ' watermark source image is BMP<br />';
$watermark_checked = true;
}
}
} else {
$this->error = $this->translate('watermark_invalid');
}
if ($watermark_checked) {
$watermark_width = imagesx($filter);
$watermark_height = imagesy($filter);
$watermark_x = 0;
$watermark_y = 0;
if (is_numeric($this->image_watermark_x)) {
if ($this->image_watermark_x < 0) {
$watermark_x = $this->image_dst_x - $watermark_width + $this->image_watermark_x;
} else {
$watermark_x = $this->image_watermark_x;
}
} else {
if (strpos($this->image_watermark_position, 'r') !== false) {
$watermark_x = $this->image_dst_x - $watermark_width;
} else if (strpos($this->image_watermark_position, 'l') !== false) {
$watermark_x = 0;
} else {
$watermark_x = ($this->image_dst_x - $watermark_width) / 2;
}
}
if (is_numeric($this->image_watermark_y)) {
if ($this->image_watermark_y < 0) {
$watermark_y = $this->image_dst_y - $watermark_height + $this->image_watermark_y;
} else {
$watermark_y = $this->image_watermark_y;
}
} else {
if (strpos($this->image_watermark_position, 'b') !== false) {
$watermark_y = $this->image_dst_y - $watermark_height;
} else if (strpos($this->image_watermark_position, 't') !== false) {
$watermark_y = 0;
} else {
$watermark_y = ($this->image_dst_y - $watermark_height) / 2;
}
}
imagecopyresampled ($image_dst, $filter, $watermark_x, $watermark_y, 0, 0, $watermark_width, $watermark_height, $watermark_width, $watermark_height);
} else {
$this->error = $this->translate('watermark_invalid');
}
}
// add text
if (!empty($this->image_text)) {
$this->log .= '- add text<br />';
// calculate sizes in human readable format
$src_size = $this->file_src_size / 1024;
$src_size_mb = number_format($src_size / 1024, 1, ".", " ");
$src_size_kb = number_format($src_size, 1, ".", " ");
$src_size_human = ($src_size > 1024 ? $src_size_mb . " MB" : $src_size_kb . " kb");
|