Мне нужна общая загрузка изображений для сайта PHP. Размеры фотографий и логотипов должны быть в определенной степени изменены, чтобы они не были слишком большими и соответствовали дизайну.
Я пытаюсь это с этим кодом:
function resize($width,$height) {
$new_image = imagecreatetruecolor($width, $height);
if($this->image_type == PNG or $this->image_type == GIF) {
imagealphablending($new_image, false);
imagesavealpha($new_image,true);
$transparent = imagecolorallocatealpha($new_image, 255, 255, 255, 127);
imagefilledrectangle($new_image, 0, 0, $nWidth, $nHeight, $transparent);
}
imagecopyresized($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
$this->image = $new_image;
}
Однако, когда я загружаю изображение, у которого есть области с альфа-значениями от 0 до 255, они заменяются полностью черным, превращая сглаженные области в черную рамку.
Полная прозрачность отлично работает для PNG и GIF, только полупрозрачные области являются проблемой.
Я прошу прощения, если я не использую правильные термины, чтобы объяснить мою проблему, может быть, поэтому я едва нашел что-то на этом.