2014-01-09 19 views
2

尋找2周的答案。我有一個工具可以直接在網頁瀏覽器中調整圖像的對比度和亮度,並使用CSS3屬性顯示結果。但我也應該將這些修改應用於服務器端的原始JPG並將其輸出回給用戶。服務器端的CSS亮度/對比度

我該怎麼辦?我正在使用PHP + Imagemagick,但無法找到執行此轉換的方法。請幫幫我。

+2

服務器操作和瀏覽器操縱的圖像將永遠不會相同,這對我來說會殺死有用的東西。 – 2014-01-09 19:15:05

+0

@Dagon你很不對,請閱讀我的回答。我希望這可以幫助改變你的意見。 – Epsiloncool

回答

0

我發現了ImageMagick的一個很棒的功能,它可以讓我們對亮度和對比度做任何事情。這是「級」。

但它不允許直接應用CSS3亮度和對比度值。因此,我做了一個很好的調查並計算了特殊公式,將CSS亮度和對比度值轉換爲「-level」選項的「黑點」和「白點」參數。請檢查this page(抱歉,俄語,但您可以使用谷歌翻譯)。如果您不想閱讀所有這些公式,請滾動到頁面底部。

-1

你需要將它們與

bool Imagick::modulateImage (float $brightness , float $saturation , float $hue) 

功能將您的客戶端的亮度設置,然後將原來的JPG。更多this

0

的CSS3 brightness濾波器簡單地乘以給定的常量。[1] [2爲了實現相同的跟ImageMagick的效果的顏色值,可使用-evaluate Multiply [3]。或者,-function Polynomial [4]可用於相同的效果。其他特徵如-level [5] [6]和-brightness-contrast [7] [8]不太合適,因爲它們將給定常數的顏色乘以的逆

CSS屬性filter: brightness(80%)對應於Imagemagick選項-evaluate Multiply .8

CSS屬性filter: brightness(120%)對應於Imagemagick選項-evaluate Multiply 1.2

在PHP中設置Imagemagick的選項(或從PHP遷移到更好的東西)是讀者的練習。