重複の可能性:
GD にバイナリ文字列から画像を取得させる
foreach ループ内で、その場で画像をグレースケールに変更できる必要があります。
私は基本的にデータベースから一連の画像 URL を取得しています。それらを表示する前に、簡単に言えばグレースケールに変換する必要があります。
ファイルを処理して画像ヘッダーを出力する画像ソースとして別のファイルを実際に作成せずに実行できますか?
重複の可能性:
GD にバイナリ文字列から画像を取得させる
foreach ループ内で、その場で画像をグレースケールに変更できる必要があります。
私は基本的にデータベースから一連の画像 URL を取得しています。それらを表示する前に、簡単に言えばグレースケールに変換する必要があります。
ファイルを処理して画像ヘッダーを出力する画像ソースとして別のファイルを実際に作成せずに実行できますか?
画像を表示する前に処理し、php スクリプトを画像ソースとして呼び出さず、画像を新規保存しない場合は、base64 画像ソースを使用してそれを行うことができます。
何かのようなもの :
<img alt="Embedded Image" src="data:image/png;base64,iVBORw0KGgoABBANSUhEUgAAADIA..." />
画像で base64_encode を使用して、base64 でエンコードされたデータを取得できます。
$out = base64_encode(imagepng($im));
echo '<img src="data:image/png;base64,'.$out.'" />';
これでうまくいくはずです。
css3 が受け入れられる場合は、これを試してください。
.grayscale {
filter: grayscale(100%);
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-o-filter: grayscale(100%);
-kthml-filter: grayscale(100%);
-ms-filter: grayscale(100%);
}
class="grayscale"
あなたのimgに追加します。この方法では元の画像を引き続き使用できますが、ユーザーにはグレースケールで表示されます。追加すると
filter: gray;
上記のように、IE6-9でも動作します
iframe でクラスを使用したデモ: http://jsfiddle.net/8BDVn/