[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Прозрачность png
Берсерк
Созлаю thumb файл. И прозрачность делаю таким способом(для пнг файлов)

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);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.