Jump to content
php.lv forumi

Izveidot imagepolygon no jau gatava png faila


Bunkertor 7

Recommended Posts

Vai te ir kāds GD Library spečuks? :)

 

Visparastākais imagepolygon skripts kas zīmē trijstūri.

 

<?php
$image = imagecreatetruecolor(400, 300);
$col_poly = imagecolorallocate($image, 255, 255, 255);

imagepolygon($image, array(0, 0, 100, 200, 300, 200), 3, $col_poly);
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

 

bet lieta tāda, ka man vajag to trijstūri uztaisīt no gatava png faila un pie tam tādā veidā lai viss apkārt tam trijstūrim būtu "transparency".

 

Tātad $image vietā es neveidotu jaunu truecolur bildi definētu to gatavo png.

 

Bet ko tālāk? Kā panākt lai iekšpus trijstūrim būtu tas png gabals bet ārpus trijsūrim "transparency"?
 

Link to comment
Share on other sites


<?php

 

# Pieņemsim, ka bildes mercis.png izmērs ir zināms 400 x 300 px

$image = imagecreatefrompng('mercis.png');

 

# Šitie divi ir svarīgi, lai viņam būtu pareizais caurspīdīgums:

imagealphablending($image, false);

imagesavealpha($image, true);

 

# Caurspīdīga krāsa, ko izmantosim pildīšanai:

$col_poly = imagecolorallocatealpha($image, 0, 0, 0, 127);

 

# Zīmējam "reversu trijstūri" un pildam ar caurspīdīgo krāsu:

imagefilledpolygon($image, array(

0, 0,

0, 300,

400, 300,

400, 0,

0, 0,

300, 200,

100, 200,

0, 0,

),

8,

$col_poly);

 

header('Content-type: image/png');

 

# Drukājam png:

imagepng($image);

imagedestroy($image);

 

?>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...