diff --git a/inc/functions.php b/inc/functions.php index 7882b73..33ec6fc 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -362,8 +362,19 @@ function createThumbnail($name, $filename, $new_w, $new_h) { $thumb_w = round($old_x * $percent); $thumb_h = round($old_y * $percent); - $dst_img = ImageCreateTrueColor($thumb_w, $thumb_h); - fastImageCopyResampled($dst_img, $src_img, 0, 0, 0, 0, $thumb_w, $thumb_h, $old_x, $old_y); + $dst_img = imagecreatetruecolor($thumb_w, $thumb_h); + if (preg_match("/png/", $system[0]) && imagepng($src_img, $filename)) { + imagealphablending($dst_img, false); + imagesavealpha($dst_img, true); + + $color = imagecolorallocatealpha($dst_img, 0, 0, 0, 0); + imagefilledrectangle($dst_img, 0, 0, $thumb_w, $thumb_h, $color); + imagecolortransparent($dst_img, $color); + + imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $thumb_w, $thumb_h, $old_x, $old_y); + } else { + fastimagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $thumb_w, $thumb_h, $old_x, $old_y); + } if (preg_match("/png/", $system[0])) { if (!imagepng($dst_img, $filename)) { @@ -385,7 +396,7 @@ function createThumbnail($name, $filename, $new_w, $new_h) { return true; } -function fastImageCopyResampled(&$dst_image, &$src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h, $quality = 3) { +function fastimagecopyresampled(&$dst_image, &$src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h, $quality = 3) { // Author: Tim Eckel - Date: 12/17/04 - Project: FreeRingers.net - Freely distributable. if (empty($src_image) || empty($dst_image)) { return false;