1

画像の左側、右側、下側を色にブレンドすることは可能ですか?
たとえば、画像を「#F0F0F0」の色にブレンドしたいとします。背景の実際の部分として画像を表示したいので、ブレンドするとかっこよく見えると思いました。

4

5 に答える 5

2

これがWebページ専用の場合、これは基本的なHTML+CSSを使用して可能です。<div>あなたが言ったように、あなたはあなたの背景の乗り継ぎとして(注意深く配置された)PNGを使うことができます。

それ以外の場合は、PHP用のImageMagickライブラリを調べてください。これにより、説明したようにブレンドされた画像をプログラムで作成できます。Imagick::colorizeImage

于 2010-04-26T20:20:44.653 に答える
1

これを実現するには、画像のピクセルデータを操作する必要がありますが、一度それをカバーすれば、実際には問題にはなりません。ピクセルのカラー値を取得し、blendcolorとブレンドします。value1 + (value2 - value1) * amountマルチテクスチャリングを行うときにピクセルシェーダーでよく使用されるこのアルゴリズムなど、かなりうまく実行できるかなり標準的な数学がいくつかあります。

他の人が言っているように、GDなどのphp用の画像ライブラリは、自分でデコードしてエンコードする必要がないため、画像のデータ操作に役立ちます

于 2010-04-26T20:18:21.600 に答える
1

これは、 ImageMagickGDなどの画像操作ライブラリを使用して行うことができます。このページでは、作成者がグラデーションを使用してGDを使用してブレンドを実行していることがわかりました。

使用することもできますImagick::colorizeimage

アップデート

スクリーンショットに基づくと、単純なHTML+CSSだけではやりたいことができなかった理由がわかりません。透明なPNGを使用するか、を使用する、CSS(CSSを介したクロスブラウザの透明性)で使用できます-moz-opacityopacityfilter:alpha

于 2010-04-26T20:20:05.523 に答える
1

正確に何が必要かはわかりませんが、半透明のpngをオーバーレイとして使用すると、元の画像を操作しなくても多くのことができます。

于 2010-04-26T20:26:22.293 に答える
0

verotのuploadphpクラスを使用することをお勧めします。これには、画像を処理する現在利用可能なすべてのサーバーサイド操作機能(回転、色合い、フレームの色、背景色など)が含まれています。

次のサンプルコードを参照してください。

$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';
于 2010-04-26T20:32:13.647 に答える