1
現在、CSS3をサポートしていないすべてのブラウザで、色勾配を使用してPHPを使用して背景画像をプログラミングしています。とても簡単なことのようですが、画像が正しく表示されない理由を私は本当に知らないPHP画像の色勾配が正しく表示されない
<?php
header("Content-Type: image/png");
$from=array("R"=>255, "G"=>255, "B"=>255);
$to=array("R"=>170, "G"=>221, "B"=>255);
$width=500;
$height=1000;
$image=imagecreate($width, $height);
for($y=0; $y < $height; $y++)
{
imageline($image, 0, $y, $width, $y, imagecolorallocate($image, $from["R"]-(($from["R"]-$to["R"])/$height)*$y, $from["G"]-(($from["G"]-$to["G"])/$height)*$y, $from["B"]-(($from["B"]-$to["B"])/$height)*$y));
}
imagepng($image);
?>
:私は、次のコードを持っています。以下に示すように表示されますが、グラデーションは1000px高くなければなりません。
配列内に1000ピクセルの高さにまたがるアイテムがありません。あなたは全体を拡大縮小する必要があります。 ImageMagickを使用できますか?そこはもっと簡単だろう。 –
しかし、なぜこれはどのような役割を果たすべきですか? "($ from [" R "] - $〜[" R "])/ $ height)"という式を使用すると、 "カラーステップサイズのサイズが計算されます。 My $ yは現在のステップの番号です。 for-loop $ yの最後の繰り返しでは、$ height-1になります。私のfor-loopの条件が$ y <= $ heightの場合、$ yと$ heightを取り消すことができます。 –
私はあなたがすでにそれを考慮に入れているのを見ます。うーん、その論理には何らかの欠陥があるはずだ...今はそれを見つけることができない。多分、R値をデバッグして、どこが "壊れている"のか見てみてください。グラデーションは、どんなレートでも、255ピクセルの高さに見えますが、私は問題の根本原因と関係があると100%確信しています。 –