2

この質問は既に尋ねられています (以下のリンクを参照) が、どの回答も機能しません。だから私はこの ImageMagick スクリプトを使用して PNG に色合いを付けていますが、うまく機能しますが、問題はサーバー上で実際にファイルを生成することです。私が代わりに欲しいのは、GDが画像操作を行い、実際に画像を保存せずにそれを表示する場所です。

これは、画像に色を付けるために使用する ImageMagick コードです。このコードは変換を行い、最終的なイメージである追加のファイルをサーバー上に生成します。

<?php

$source = "src.png";
$final = "FINAL.png";
$color = "#00FF00";

exec("convert $source  -threshold 100% +level-colors '$color',   $final");

?>

以下は、画像操作を行い、追加の画像をサーバーに保存せずに最終画像を直接表示する GD のサンプル コードです。

<?php
header('Content-Type: image/png');

$source = "src.png";

$im = imagecreatefrompng($source);
imagefilter($im, IMG_FILTER_GRAYSCALE);
imagepng($im);
imagedestroy($im);

?>

したがって、基本的には、最初の例で行った画像操作が必要ですが、余分な画像を保存したり、ブラウザーに出力を表示したりしません。

検索されたリンク:

ファイルに保存せずにImageMagick で画像を生成しますが、それでも Web サイトに表示します

ImageMagick コードを iMagick に変換するにはどうすればよいですか? PHP-Imagemagick 画像表示

4

1 に答える 1

1

他の人が学ぶためのコードを使用した直接的な例。Godaddy の共有 Linux サーバーでも同じ方法を使用しています。

<?php
    $source = "src.png";
    $color = "#00FF00";

    $cmd = "convert $source -threshold 100% +level-colors '$color',".
    " -unsharp 0.2x0.6+1.0 -quality 50 JPG:-";

    header("Content-type: image/jpeg");
    passthru($cmd, $retval); 
    exit();
?>
  • : - 「-threshold 100% +level-colors '$color',」を正しく使用していますか? しきい値を 100% にすると、画像が黒くなります。次に+level-colors '#00FF00' を指定すると、単色の緑色のイメージが作成されます。このデモンストレーションのコードを単純化したと仮定しています。

  • 注意: - " +level-colors '$color' " は Godaddy のサーバーでは動作しません。しかし、私のホームサーバーでは問題なく動作します。Godaddy のサーバーに古いバージョンの ImageMagick がインストールされている可能性があります。

于 2014-03-12T03:04:49.300 に答える