imagealphablending($dst_img, false);
$color = imagecolorallocatealpha($dst_img, 0, 0, 0, 127);
imagefill($dst_img, 0, 0, $color);
imagesavealpha($dst_img, true);
Но картинка хоть и выходит прозрачной, но на некоторых границах она как бы покоцанная получается
____________________________________________________________________
Web-программирование
Спустя 10 часов, 35 минут, 4 секунды (20.04.2012 - 21:19) walerus написал(а):
Берсерк - Не хотелось переписывать, скопировал пример, я думаю будет понятно то куда.
Свернутый текст
<?php
/**
Небольшой скрипт для уменьшения изображения
*/
// Создаём ресурс из исходного изображения - в формает png 24
$res = imageCreateFromPng('file_name.png');
// Узнаём информацию об изображении
$prop = getimagesize('file_name.png');
// Задаём в переменных новую ширину и высоту
$newWidth = 200;
$newHeight = 200;
/**
* Создаём новый ресурс с нужной шириной и высотой,
* в который запишем исходный ресурс,
* заметим, что изображение полноцветное - imageCreateTrueColor
*/
$tmp = imageCreateTrueColor($newWidth, $newHeight);
/**
Перед тем как произодить опрерации с новым ресурсом,
установим некоторые опции
imageAlphaBlending - устанавливает режим смешивания(режим
смешивания недоступен для изображений с палитрой)
по умолчанию для truecolor изображений - true, для изображений
с палитрой - false
true/false - включен/выключен
true - при накладывании одного изображения на другое
цвета пикселей нижележащего и накладываемого изображения смешиваются,
параметры смешивания определяются прозрачностью пикселя.
false - накладываемый пиксель заменяет исходный
*/
imageAlphaBlending($tmp, false);
/*
ImageSaveAlpha
Сохранять или не сохранять информацию о прозрачности
по умолчанию - false, а надо true
*/
imageSaveAlpha($tmp, true);
/*
Всё, теперь прозрачность должна сохранятся
*/
/*
копируем исходное изображение с новое, в новый ресурс
*/
imageCopyResampled($tmp, $res, 0, 0, 0, 0, $newWidth,
$newHeight, $prop[0], $prop[1]);
// Говорим браузеру о типе изображения. Тип - PNG
header("Content-Type: image/png");
// Выводим изображение в буффер
imagePng($tmp);
?>
Спустя 11 часов, 55 минут, 2 секунды (21.04.2012 - 09:14) ИНСИ написал(а):
Взял кусок со своего класса. ( http://phpforum.ru/index.php?showtopic=56128&hl= )
imagesavealpha($this->tmpImg['idest'], true);
$trueColour = imagecolorallocatealpha($this->tmpImg['idest'], 0, 0, 0, 127);
imagefill($this->tmpImg['idest'], 0, 0, $trueColour);