GDlib и полная поддержка альфаканала

ltolean

Guest
GDlib и полная поддержка альфаканала

Максимум чего я добился от сабжа:
http://sqlserver.imoldova.md/weather/w_prepare.php
Код такой:
PHP:
    header ("Content-type: image/png"); 
    $sun=imagecreatefrompng($Sun->src);
    ImageAlphaBlending($sun, true);

    $im = @imagecreatetruecolor (58, 58); 
    ImageAlphaBlending($im, true);
    $col2=ImageColorAllocate($im,255,255,255);
    ImageFilledRectangle($im,0,0,58,58,$col2);

    imagecopy ($im, $sun, 0,0,0,0, imagesx($sun), imagesy($sun) );

    if (strlen($Cloud->src)>0) {
        $cloud=imagecreatefrompng($Cloud->src);
        ImageAlphaBlending($cloud, true);
        ImageSaveAlpha($cloud,true);
        $im1 = @imagecreatetruecolor (58, 58); 
        ImageAlphaBlending($im1, true);
        ImageSaveAlpha($im1,true);
        $c=ImageColorAllocateAlpha($im1,0,0,0,0);
        imagecolortransparent($im1, $c);
        imagecopy ($im1, $cloud, $Cloud->hOffset, $Ccloud->vOffset, 0, 0, imagesx($cloud), imagesy($cloud));
        imagecopymerge ($im, $im1, $Cloud->hOffset, $Ccloud->vOffset, 0, 0, imagesx($im), imagesy($im),50 );

    }
Не устраивает черная кайма вогруг полупрозрачного объекта (облака).
Если напрямую копировать объект на фон:
PHP:
        $cloud=imagecreatefrompng($Cloud->src);
        ImageAlphaBlending($cloud, true);
        ImageSaveAlpha($cloud,true);
        imagecopy($im, $cloud, $Cloud->hOffset, $Ccloud->vOffset, 0, 0, imagesx($cloud), imagesy($cloud) );
никаких артефактов не появляется, но теряю полупрозрачность. http://sqlserver.imoldova.md/weather/w_prepare1.php

Как же можно установить полупрозрачность и при копировании объекта на фон избавиться от каймы?
 

ltolean

Guest
Originally posted by MiRacLe
[m]imagecopymerge[/m] ?
вообще-то я им и пользовался... в первом куске исходника есть команда:
imagecopymerge ($im, $im1, $Cloud->hOffset, $Ccloud->vOffset, 0, 0, imagesx($im), imagesy($im),50 );

В любом случае с этой ерундой разобрался. Не стал мучать ГДЛиб а просто сделал еще одно изображение с полупрозрачностью, им я и оперирую когда надо... Програмным путем результат никаой :(
 
Сверху