2010-04-26 40 views
1

是否可以將圖像的左側,右側和底部混合爲一種顏色?
可以說,我想要圖像混合到顏色「#F0F0F0」。我希望圖像作爲背景的實際部分出現,所以我認爲它看起來很酷,如果它被混合。可能將圖像混合爲一種顏色? (左,右,底)

+0

我不明白你的意思。你能舉一個例子截圖嗎? – 2010-04-26 20:14:26

+0

有什麼特別的原因,你不能只用Photoshop/GIMP做這個? – dclowd9901 2010-04-26 20:16:35

+0

我會在一秒內截圖。 @ dclowd9901,我希望圖像是動態的。所以當url被改變時,一個不同的圖像被顯示,但是具有相同的顏色混合。對不起,如果我沒有任何意義。 – 2010-04-26 20:18:36

回答

1

編碼它你可以這樣做庫如ImageMagickGD。我發現this page作者使用漸變來使用GD執行混合。

您也可以嘗試使用Imagick::colorizeimage

根據您的截圖UPDATE

,我不明白爲什麼你不能做你想只用直HTML + CSS的東西。您可以使用使用透明的PNG 或者您可以在您的CSS(Cross-browser Transparency via CSS中使用-moz-opacity,opacityfilter:alpha

+1

透明的'png'是唯一的方法。如果他給它一個「背景色」,然後使其部分不透明,那麼它也會使內容不透明。對於OP:確保你給我們儘可能多的信息,你可以開始。可能有辦法去皮那個你甚至沒有想到過的貓。 – dclowd9901 2010-04-26 20:45:55

+0

沒錯 - 我一直在忘記! – 2010-04-26 20:46:35

+0

@ dclowd9901,Yeh對於缺乏信息感到抱歉。我會確保我的下一個問題得到進一步解釋。 +1 – 2010-04-26 21:02:33

1

你將不得不操縱圖像的像素數據來實現這一點,但一旦你有了它不是一個真正的問題。取像素的顏色值並將其與blendcolor混合。有一些非常標準的數學方法可以很好地完成這項工作,例如在執行多重紋理時經常在pixelshaders中使用此算法value1 + (value2 - value1) * amount

爲PHP正如其他人所說的圖像資料庫,如GD有助於完成圖像的數據操作,你將不必通過使用圖像處理解碼和自己

2

如果這僅僅是一個網頁,這是可能的使用基本的HTML + CSS。就像你說的,你可以在你的背景上使用PNG作爲平臺(通過精心定位的<div>)。

否則,請查看ImageMagick Libraries for PHP,因爲它們會讓您以編程方式創建像您所描述的混合圖像。 (Imagick::colorizeImage)

1

我不知道你需要什麼,但是使用半透明PNG作爲覆蓋層,你可以做很多,而無需操縱你的原始圖像。

0

我建議你使用verot's upload php類。它包含處理圖像的所有當前可用的服務器操縱函數(旋轉,色調,框架顏色,背景顏色等)。

看到這個示例代碼:

$foo->image_resize   = true; 
$foo->image_ratio_fill  = 'R'; 
$foo->image_y    = 150; 
$foo->image_x    = 100; 
$foo->image_background_color = '#FF00FF'; 
$foo->image_rotate   = '90'; 
+0

沒有任何東西可以包含所有可用的服務器端操作,因爲您可以用任何可能的方式自己解碼和操作圖像數據,但不合邏輯,無理性或不尋常:)您基本上可以重寫一個photoshop濾鏡對於PHP(減本機api函數調用photoshops API,但你也可以重寫這些算法) – 2010-04-26 21:08:17

+0

好的謝謝你的更正。不過,這門課提供了很多內置的圖像處理設施。 – pixeline 2010-04-27 09:41:52