2016-05-04 17 views
0

PNGファイルを50%透明にしたいと思います。 PHPでどうすればいいですか?私は透かしとしてそれを使用したいと私はすでに画像上に得ることができますが、今私は透かしを透明にする必要があります。PHPはPNGを50%透明にします

+2

あなたはCSSを操作するか、実際には50%透明なファイルを作成したいと思っていましたか? gd関数を使用すると、透明なファイルを作成できます。http://php.net/manual/en/function.imagesavealpha.php – mtrueblood

+0

実際に透明にします。 – lemoney

答えて

1

にクラスを適用するには、マスクを作成することによって、このImagickを使用して行うことができます。下の例はthis tutorialです。

<?php 
// Create objects 
$image = new Imagick('image.png'); 
$watermark = new Imagick(); 
$mask = new Imagick(); 
$draw = new ImagickDraw(); 

// Define dimensions 
$width = $image->getImageWidth(); 
$height = $image->getImageHeight(); 

// Create some palettes 
$watermark->newImage($width, $height, new ImagickPixel('grey30')); 
$mask->newImage($width, $height, new ImagickPixel('black')); 

// Watermark text 
$text = 'Copyright'; 

// Set font properties 
$draw->setFont('Arial'); 
$draw->setFontSize(20); 
$draw->setFillColor('grey70'); 

// Position text at the bottom right of the image 
$draw->setGravity(Imagick::GRAVITY_SOUTHEAST); 

// Draw text on the watermark palette 
$watermark->annotateImage($draw, 10, 12, 0, $text); 

// Draw text on the mask palette 
$draw->setFillColor('white'); 
$mask->annotateImage($draw, 11, 13, 0, $text); 
$mask->annotateImage($draw, 10, 12, 0, $text); 
$draw->setFillColor('black'); 
$mask->annotateImage($draw, 9, 11, 0, $text); 

// This is needed for the mask to work 
$mask->setImageMatte(false); 

// Apply mask to watermark 
$watermark->compositeImage($mask, Imagick::COMPOSITE_COPYOPACITY, 0, 0); 

// Overlay watermark on image 
$image->compositeImage($watermark, Imagick::COMPOSITE_DISSOLVE, 0, 0); 

// Set output image format 
$image->setImageFormat('png'); 

// Output the new image 
header('Content-type: image/png'); 
echo $image; 
1

はPHPで画像

<style> 
.opacity-50 { 
    opacity: 0.5; 
    filter: alpha(opacity=50); 
} 
</style> 

<img class="opacity-50" src="filename.png"> 
+1

CSSをありがとう。私はそれを使うことができたらいいのに、実際の透明性が必要です。私は何とかあなたに報いることができたらいいなあ。 – lemoney

関連する問題