0

img_filter_colorize()私はPHPについて少し学びました。画像の色を選択するオプションをユーザーに提供したいと考えています。例はこちら

私のコードは次のとおりです。

<?php
header('Content-type: image/png');
$im = imagecreatefrompng('flower.png');
imagefilter($im, IMG_FILTER_GRAYSCALE);
imagefilter($im, IMG_FILTER_CONTRAST, 255);
imagefilter($im, IMG_FILTER_NEGATE);
imagefilter($im, IMG_FILTER_NEGATE);
imagefilter($im, IMG_FILTER_COLORIZE, 255, 0, 0);
imagepng($im, 'flower1.png');
?>

このコードは赤い色の新しい画像を作成していますが、ここでは画像を作成せず、画面に表示するだけです。

たとえば、ユーザーが赤いボタンの画像を選択すると、画像が赤に変わります。

これは達成可能ですか?それを行う他の方法はありますか(javascript、キャンバス、またはその他)?

4

3 に答える 3

0

imagepngfilename次のようなパラメーターを使用しない場合、pngファイルのコンテンツを直接出力します。

imagepng($im);

それよりも、次のような画像をリクエストできます

<img src="http://your-shost/yourimagescript.php" />
于 2013-04-07T10:39:36.133 に答える
0

呼び出しの 2 番目のファイル名パラメーターを省略するimagepng()と、画像のバイトが出力されるだけで、ファイルに保存されないため、このスクリプトの URL を 内で使用でき、<img src="">正常にレンダリングされるはずです。

ただし、画像がダウンロードされるたびに計算を再度実行する必要があるため、サーバー リソースが無駄になります。修正パレットがある場合は、画像を事前に生成するか、少なくとも生成されたバージョンをキャッシュすることをお勧めします。

ユーザー向けの部分については、ユーザーが「赤い」ボタンをクリックしたときに、JavaScript を使用してブラウザー内の DOM を変更することをお勧めします。これに沿った何か:

<img src="the_default_color.png" id="image">
<button id="make_it_red">Make it red</button>
<script>
document.getElementById('make_it_red').onclick = function(){
    document.getElementById('image').src = 'path_to_your_image_generator_php_script.php';
};
</script>

php スクリプトを RGB 値でパラメータ化して、すべての色に使用できるようにしたい場合があります。

于 2013-04-07T10:41:38.477 に答える
0

写真のビューのみを作成します (新しい flower1.jpg を作成せずに)

<?php
echo '<img src="photo.php" height="42" width="42">';
?>

そして新しいファイル内:photo.php

<?php
header('Content-type: image/png');
$im = imagecreatefrompng('flower.png');
imagefilter($im, IMG_FILTER_GRAYSCALE);
imagefilter($im, IMG_FILTER_CONTRAST, 255);
imagefilter($im, IMG_FILTER_NEGATE);
imagefilter($im, IMG_FILTER_NEGATE);
imagefilter($im, IMG_FILTER_COLORIZE, 255,0, 0);
imagejpeg($im);
imagedestroy($im);
?>
于 2013-04-07T10:42:34.157 に答える