Živio!
Potreboval bi še eno pomoč, spet dela tale zadeva težave.
http://bit.ly/SiWxH0
Ko klikneš done, ti izreže kar si izbral.. Sedaj hočem temu selectionu narediti feather z ImageMagick. Problem je v tem, ker trenutno, ko premikaš elipso po sliki in klikneš done, naredim masko ki je velikosti fotografije in ima bel izrez tam kjer si postavil elipso:

Potem imam napisano funkcijo ki loči alpha channel iz slike in izreže:
function imagealphamask( &$picture, $mask ) {
// Get sizes and set up new picture
$xSize = imagesx( $picture );
$ySize = imagesy( $picture );
$newPicture = imagecreatetruecolor( $xSize, $ySize );
imagesavealpha( $newPicture, true );
imagefill( $newPicture, 0, 0, imagecolorallocatealpha( $newPicture, 0, 0, 0, 127 ) );
// Resize mask if necessary
if( $xSize != imagesx( $mask ) || $ySize != imagesy( $mask ) ) {
$tempPic = imagecreatetruecolor( $xSize, $ySize );
imagecopyresampled( $tempPic, $mask, 0, 0, 0, 0, $xSize, $ySize, imagesx( $mask ), imagesy( $mask ) );
imagedestroy( $mask );
$mask = $tempPic;
}
// Perform pixel-based alpha map application
for( $x = 0; $x < $xSize; $x++ ) {
for( $y = 0; $y < $ySize; $y++ ) {
$alpha = imagecolorsforindex( $mask, imagecolorat( $mask, $x, $y ) );
$alpha = 127 - floor( $alpha[ 'red' ] / 2 );
$color = imagecolorsforindex( $picture, imagecolorat( $picture, $x, $y ) );
imagesetpixel( $newPicture, $x, $y, imagecolorallocatealpha( $newPicture, $color[ 'red' ], $color[ 'green' ], $color[ 'blue' ], $alpha ) );
}
}
// Copy back to original picture
imagedestroy( $picture );
$picture = $newPicture;
}
Torej, kako lahko maski z imagemagick povem da bi rad delal feather na robovih.
Recimo poskusil sem tole:
exec("convert img/maska.png -channel RGBA -blur 0x8 img/maska.png");
ampak to celotno masko naredi transparentno, ne samo elipse.
exec("convert img/maska.png -alpha set \ -background none -vignette 0x4 img/maska.png");
tole pa dela ok, ampak je problem da vzame celotno masko in črno ozadje fejda in ne bele elipse (zgornja slika)
Torej, če gledamo zgornjo sliko, moram fejdat robove bele elipse za izrez.
Če je rešitev težka se lahko dogovorimo tudi za plačilo.
lp