Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ресайз прозрачной пнгшки

7.6K
23 июля 2006 года
split
11 / / 21.10.2004
Возникла проблема с сабжем...
Есть пнгшка с альфаканалом, ее нужно ресайзить без потери прозрачности...

Делаю так:
 
Код:
$this->DstImage=ImageCreateTrueColor($distW, $distH);
if($this->OriginalType == "png"){
 imagesavealpha($this->DstImage,TRUE);
}
ImageCopyResampled($this->DstImage, $this->SrcImage, 0, 0, 0, 0, $distW, $distH, $this->OriginalWidth, $this->OriginalHeight);
ImagePNG($this->DstImage, $path);


Пробовал и так:
 
Код:
$this->DstImage=ImageCreateTrueColor($distW, $distH);
ImageCopyResampled($this->DstImage, $this->SrcImage, 0, 0, 0, 0, $distW, $distH, $this->OriginalWidth, $this->OriginalHeight);
if($this->OriginalType == "png"){
 imagesavealpha($this->DstImage,TRUE);
}
ImagePNG($this->DstImage, $path);


Но невыходит никак :(
Причем если не делать ресайз - все работает нормално...
352
24 июля 2006 года
skywalker
694 / / 10.02.2006
Прозрачную png нельзя растягивать, дело в том, что осел, прозрачность понимает с использованием хаков (а другие браузеры png "кушают" нормально), так вот даже если ты заставишь осла понимать png, ты не сможешь сделать эту картинку больше и меньше по размеру, чем она создана в фотошопе. Вывести можно лишь реальный размер картинки.
7.6K
24 июля 2006 года
split
11 / / 21.10.2004
Дело не в браузере! Я ее может даже и выводить не собираюсь... Мне нужно изменить реальные размеры пнгшки... Можно конечно перебрать ее попиксельно и сделать ее ресайз под нужный размер, но это слишком грузово получится...
8
24 июля 2006 года
mfender
3.5K / / 15.06.2005
Удивительное рядом - у меня всё растягивается и прозрачность сохраняется.
Объясни, а зачем imagesavealpha()?
7.6K
24 июля 2006 года
split
11 / / 21.10.2004
[QUOTE=mfender]Удивительное рядом - у меня всё растягивается и прозрачность сохраняется.[/QUOTE]

Это у тебя с моим кодом все получается?! :eek: :confused:

[QUOTE=mfender]Объясни, а зачем imagesavealpha()?[/QUOTE]
Эта функция включает альфаканал в изображении...
7.6K
24 июля 2006 года
split
11 / / 21.10.2004
Ура! Ура! Ура!
:) :) :)

Заработало!

Вот код, немного странный, но почемуто надо заливать фон прозрачным белым цветом...
Код:
<html>
 <head>
  <title>Sex with PNG</title>
 </head>
 <body bgcolor="#ff00ff">
  <?php
     $png=ImageCreateFromPNG("test.png");
     $dst=ImageCreateTrueColor(150, 150);
     imagesavealpha($dst, TRUE);
     $cc=imagecolorallocatealpha($dst, 255, 255, 255, 127);
     imagefill($dst, 0, 0, $cc);
     imagecopyresampled($dst, $png, 0, 0, 0, 0, 150, 150, ImageSX($png), ImageSY($png));
     ImagePNG($dst, "tt.png");
  ?>
  <img src="test.png"/>   <img src="tt.png"/>
 </body>
</html>
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог