Intereting Posts
Как эффективно реализовать модули в среде MVC и обрабатывать маршрутизацию на несколько контроллеров в одном модуле? Значение карты для цветовой шкалы Скопировать содержимое файла в другой файл Как объединить / интегрировать функции CodeIgniter и WordPress? PHP Fatal Ошибка Не удалось открыть файл Присоединиться к таблице в Symfony 2 Как включить данные GET & POST в журнал ошибок PHP Закрепление содержимого папок в PHP Создание безопасного входа в систему с использованием сеансов и файлов cookie в PHP в этой странице зависание не работает, я не знаю, почему, а также нижний колонтитул не принимает 100% ширины, хотя я дал ему CodeIgniter: класс / библиотека, чтобы помочь получить метатеги с веб-страницы? setcookie () не устанавливает cookie в Google Chrome php print integer в словах Передача данных на сервер с использованием JSON в Codeigniter не удалось открыть файл "" ошибка в PHP API PHP

Изменение размера PNG с прозрачностью

Я хочу изменить размер PNG изображения с помощью прозрачности. Вот код:

function resize($width,$height) { $new_image = imagecreatetruecolor($width, $height); imagealphablending($new_image, false); imagesavealpha($new_image,true); $transparent = imagecolorallocatealpha($new_image, 255, 255, 255, 127); imagefilledrectangle($new_image, 0, 0, $width, $height, $transparent); imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight()); $this->image = $new_image; } 

Попробуй это

ОБНОВЛЕНО

 function createThumb($upfile, $dstfile, $max_width, $max_height){ $size = getimagesize($upfile); $width = $size[0]; $height = $size[1]; $x_ratio = $max_width / $width; $y_ratio = $max_height / $height; if( ($width <= $max_width) && ($height <= $max_height)) { $tn_width = $width; $tn_height = $height; } elseif (($x_ratio * $height) < $max_height) { $tn_height = ceil($x_ratio * $height); $tn_width = $max_width; } else { $tn_width = ceil($y_ratio * $width); $tn_height = $max_height; } if($size['mime'] == "image/jpeg"){ $src = ImageCreateFromJpeg($upfile); $dst = ImageCreateTrueColor($tn_width, $tn_height); imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height); imageinterlace( $dst, true); ImageJpeg($dst, $dstfile, 100); } else if ($size['mime'] == "image/png"){ $src = ImageCreateFrompng($upfile); // integer representation of the color black (rgb: 0,0,0) $background = imagecolorallocate($src, 0, 0, 0); // removing the black from the placeholder imagecolortransparent($src, $background); // turning off alpha blending (to ensure alpha channel information // is preserved, rather than removed (blending with the rest of the // image in the form of black)) imagealphablending($src, false); // turning on alpha channel information saving (to ensure the full range // of transparency is preserved) imagesavealpha($src, true); $dst = ImageCreateTrueColor($tn_width, $tn_height); imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height); Imagepng($dst, $dstfile); } else { $src = ImageCreateFromGif($upfile); $dst = ImageCreateTrueColor($tn_width, $tn_height); imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height); imagegif($dst, $dstfile); } } 

Там есть простая в использовании библиотека с открытым исходным кодом под названием PHP Image Magician . Он использует GD и поддерживает прозрачность

Пример использования базы:

 $magicianObj = new imageLib('racecar.png'); $magicianObj -> resizeImage(100, 200, 'crop'); $magicianObj -> saveImage('racecar_small.png');