2016-12-18 77 views
1

使用gd + php旋轉圖像時出現邊框,我不知道我做錯了什麼。使用gd + php旋轉圖像時出現邊框

<?php 
$size = 900; 
$img = imagecreate($size, $size); 

imagesavealpha($img, true); 
$color = imagecolorallocatealpha($img, 0, 0, 0, 127); 
imagefill($img, 0, 0, $color); 

$lines_color = imagecolorallocate($img, 0, 0, 0); 

imageline($img, ($size * 0.50), ($size * 0.00), ($size * 0.50), ($size * 1.00), $lines_color); 
imageline($img, ($size * 0.20), ($size * 0.00), ($size * 0.80), ($size * 1.00), $lines_color); 
imageline($img, ($size * 0.00), ($size * 0.20), ($size * 1.00), ($size * 0.80), $lines_color); 
imageline($img, ($size * 0.00), ($size * 0.50), ($size * 1.00), ($size * 0.50), $lines_color); 
imageline($img, ($size * 0.00), ($size * 0.80), ($size * 1.00), ($size * 0.20), $lines_color); 
imageline($img, ($size * 0.20), ($size * 1.00), ($size * 0.80), ($size * 0.00), $lines_color); 

$img = imagerotate($img, 45, 1); 
imagesavealpha($img, true); 
$color = imagecolorallocatealpha($img, 0, 0, 0, 127); 
imagefill($img, 0, 0, $color); 

header("Content-Type: image/png"); 
imagepng($img, 'demo.png'); 

結果:一個神奇的邊界補充: -/

Image png result

+0

你爲什麼要對你所有的背景使用黑色?你需要它是黑色的嗎?如果這樣做,那麼爲什麼你將透明度設置爲滿(127)?爲什麼旋轉圖像後再次填充背景? – EhsanT

回答

0

通作imagerotate透明背景色:

$transparent = imagecolortransparent($img, $color); 
$img = imagerotate($img, 45, $transparent);