Квартиры, дома, земельные участки Краснодарского края без посредников. Объявления собственников недвижимости.
Реклама здесь
Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Создание картинки с неровными краями и прозрачным фоном

Понадобилось сделать картинку с неровными краями, причем картинка должна быть именно прозрачной, вариант сделать белый фон не прокатывает. Самым логичным было бы использовать наложение маски как это можно сделать скажем во флеше... но...

Почему то в GD нет функций для работы с масками. Пришлось изобретать самим, и вот что получилось:

Так выглядит код маскирования:


<?php
$image 
imagecreatefromgif('image.gif');
$mask imagecreatefromgif('mask.gif');

$dest imagecreatetruecolor(imagesx($image),imagesy($image));

imagemask($dest,$image,$mask);

header('Content-type: image/jpeg');
imagepng($dest);
?>
Скопировать в буфер

Код самой функции маскирования:


<?php
function imagemask($dest,$image,$mask){
    
$width =  imagesx($image);
    
$height imagesy($image);
    
    
$tc imagecolorallocate($dest,0,0,0);
    
imagecolortransparent($dest,$tc);
    
    for(
$i=0;$i&lt;$width;$i++){
        for(
$j=0;$j&lt;$height;$j++){
            
$c imagecolorat($image,$i,$j);
            
$color imagecolorsforindex($image,$c);
            
            
$c imagecolorat($mask,$i,$j);
            
$mcolor imagecolorsforindex($mask,$c);
            
            if (!(
$mcolor['red']==255 &amp;&amp$mcolor['green']==255 &amp;&amp$mcolor['blue']==255)){
                
$c imagecolorallocate($dest,$color['red'],$color['green'],$color['blue']);
                
imagesetpixel($dest,$i,$j,$c);
            } 
        }
    }
}
?>
Скопировать в буфер

Источник: http://www.maxistar.ru/blog/key/PHP/.

Вам по душе такое меню: строительный интернет магазин. Строительный рынок.
авто аэрография

© Copyright 2008-2012 by KDG