2014-07-02 50 views
0

我想僅使用像photoshop中的混合模式那樣的結果來使用php處理圖像。我希望你能幫助我。如何在不使用ImageMagick的情況下使用顏色混合模式進行顏色疊加功能

我有這段代碼,但它返回的圖像就像是一個屏幕混合模式。

<?php 
$img="text.png"; 
$to=""; 
$bool=""; 
$imres=$img; 

if(isset($_POST['submit'])){ 
    $im = imagecreatefrompng('text.png'); 
    // $from=$_POST['oldhex']; 

    $to=$_POST['newhex']; 
    //conversion of hex to rgb values 

    // Get width and height 
    // $w = imagesx($im); 
    // $h = imagesy($im); 
    // $im= imagecreatetruecolor($w,$h); 



    ![enter image description here][1]$r = hexdec(substr($to, 0, 2)); 
    $g = hexdec(substr($to, 2, 2)); 
    $b = hexdec(substr($to, 4, 2)); 
    /* R, G, B, so 0, 255, 0 is green */ 

    if($im && imagefilter($im, IMG_FILTER_COLORIZE, $r, $g, $b,30)&& imagealphablending($im, true)){// echo 'Image successfully shaded'; 


     imagepng($im, '5.png'); 
     $bool="true"; 
     $imres="5.png"; 
    } 
    else{ 
     echo 'shading failed.'; 
    } 
} 
?> 

這是輸入圖像

enter image description here

這是我得到的圖像...

failed image

這是我想有​​圖像

+0

你能張貼你得到的圖片和你想要的圖片嗎? –

+0

我希望你能幫助我 – user2356747

+0

你可以添加輸入圖像嗎? –

回答

0

我h大家試了一下,並得到了一些與你想要的相似的東西 - 也許它會給你一些進一步實驗的想法。基本上我會製作與您的圖像尺寸相同的另一張圖像,然後將其填充顏色清洗和透明度,然後將它們混合。

#!/usr/bin/php 
<?php 

    $im = imagecreatefrompng('text.png'); 

    $to='FFCC33'; 
    //conversion of hex to rgb values 

    $r = hexdec(substr($to, 0, 2)); 
    $g = hexdec(substr($to, 2, 2)); 
    $b = hexdec(substr($to, 4, 2)); 

    $wash=imagecreatetruecolor(225,225); 
    $col = imagecolorallocatealpha($wash,$r,$g,$b,70); 
    imagefill($wash,0,0,$col); 

    imagelayereffect($im,IMG_EFFECT_ALPHABLEND); 
    imagecopy($im,$wash,0,0,0,0,225,225); 
    imagepng($im,'5.png'); 
?> 
+0

它是一個偉大的改進,我已經做了。它是足夠接近。它只是比我想要的更輕,但感謝您的幫助。這將幫助我很多。 – user2356747

+0

很高興爲您服務。您可以考慮通過點擊計票旁邊的空白勾號/複選標記來考慮接受我的答案。謝謝。 –

相關問題