2016-04-24 22 views
1

私はimagickを使用して画像にこの効果を得ようとしています。フォトショップではグラデーションマップと呼ばれていますが、これに似た画像はimagickで見つけることができません。imagick |グラデーションマップ

私は最初に白黒にする必要があると思いますが、色を追加する方法はわかりません。

希望すると助かります!おかげ

--- EDIT:---

  • 私はImageMagickのない、Imagickを使用しています。
  • 画像には2色の色がありますが、色付けされているだけではありません。暗い色は濃い青色、薄い色は明るい緑色/水色です。

enter image description here

+0

私の答え、または他の人があなたの問題を整理しましたか?もしそうなら、それをあなたの答えとして受け入れることを検討してください - 投票数の横にある緑色のチェックマーク/チェックマークをクリックしてください。そうでない場合は、私が、または他の誰かがあなたをさらに助けることができるように、何がうまくいかないと言ってください。ありがとう。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 –

答えて

5

PHP Imagickバージョン今、私はあなたのニーズを理解している

、私が行っているImagick PHPのバージョン:

<?php 
    // Load input image 
    $image = new Imagick('landscape.jpg'); 

    // Desaturate image 
    $image->modulateImage(100,0,100); 

    // Make duotone CLUT 
    $clut = new Imagick(); 
    $clut->newPseudoImage(255,1,"gradient:darkblue-aqua"); 

    // Apply duotone CLUT to image 
    $image->clutImage($clut); 

    // Output result 
    $image->writeImage('result.jpg'); 
?> 

enter image description here

更新ANSWえー

ああ、私はあなたが「ダブルトーン」ではなく「色合い」をしたいと思います。基本的には、画像をモノラルにデチュレーションし、デュオトーンCLUT(カラールックアップテーブル)を作成し、それを適用する必要があります。ここで

は、CLUTを作成する方法である:

convert -size 1x256! gradient:navy-orange duotone-clut.png 

enter image description here

この1つは明らかに自分の暗いトーンのネイビーとあなたのハイライトオレンジを行いますが、あなたが望むようにあなたは色で遊んですることができます。あなたは構文で望むように、あなたはまた、のようなRGB(またはHSL)のいずれかの色合いを指定することができます。ここでは

convert -size 1x256! gradient:"rgb(255,255,0)-rgb(23,45,100)" ... 

は灰色、その後、CLUTを適用するために、あなたのイメージを不飽和化する方法である:

convert landscape.jpg -modulate 100,0 \ 
    -size 256x1! gradient:navy-orange -clut result.jpg 

-modulate色相、彩度、明度の3つのパラメータをとります。 100,0を指定することで、私は色相を100%にし、彩度をゼロにして明度を変更しません。

convert -size 1x1! xc:yellow xc:magenta xc:cyan +append -resize 256x1! -scale x20 clut.png 
:あなたは3色、ハイライトのための影のための1つ、中間色のための1と1との 「全音」をしたい場合はところで

enter image description here

、あなたはこのようなものを作ることができます これを与え

enter image description here

enter image description here

また、コントラストストレッチを使用するか、または同じ色で色分けされたCLUTの割合を大きくすることによって、クロスオーバーポイントをCLUT内で移動することもできます。ここでは、2つの黄色のブロックを持つことによって、シャドーカラーを「長く」にします。

enter image description here

は明らかにあなたもquadtone(quadtone)を作ることができます。

convert -size 1x1! xc:yellow xc:yellow xc:magenta xc:cyan +append -resize 256x1! clut.png 
"長い"影を与える

enter image description here

オリジナル回答

効果を達成するためのいくつかの方法があります。だから、このイメージで始まる:

enter image description here

あなたはPHPでtintImage()に対応する、このようなtintを使用することができ、hereを説明:

convert landscape.jpg -colorspace gray -fill "rgb(10,100,130)" -tint 100 result.png 

enter image description here

それとも、あなたのクローンを作成することができクローンを色合いの色で塗りつぶしてから、画像の上に合成します。あなたはhereを説明し、PHPでcolorizeImage()を使用します。

convert landscape.jpg -colorspace gray     \ 
    \(+clone -fill "rgb(10,100,130)" -colorize 100% \) \ 
    -compose overlay -composite result.png 

enter image description here

+0

ああ申し訳ありませんが、私はしばらくの間、StackOverflowをチェックしませんでした。あなたの答えをありがとう、それは私がaffraidと同じ効果ではない、私はあなたの例のようなimagemagickではなく、Imagickを使用しています。私の例では、濃い青とアクアグリーンの2色があります。暗い色は青に変換され、明るい色は水に変換されます。 – Ronald

+0

@Ronaldさて、私は今考えていると思います。もう一度見てください。私たちはあなたが望むことができるかのように見える場合は、後でPHP変換を行うことができます。 –

+0

本当にありがとうございます、それは確かに私が探している効果です!しかし、私はそれがimagemagickで、まだimaginの代わりに、それは別の言語であることを肯定している。 :) – Ronald

0

PHP Imagickのためのライブラリがありますpslayersと呼ばれ、それはあなたが記述されている画像の階層化と合成の正確な種類を行うことができます。

コマンドラインのバージョンと直接対話するためのコマンドラインスクリプトへのインターフェイスを作成することもできます。

関連する問題