スレッド表示 | フラット表示〕 全トピック 920 件中 520 番目 次≫ ≪前

PHPの画像表示形式

created: 2004-11-17 18:45 | modified: 2004-11-30 10:52 | reply: 7

[1903] PHPの画像表示形式

user: ぺこ | created: 2004-11-17 18:45
こんにちわ
PHPlotを使い、グラフを作成しているのですが、PHPlotを使うとそのグラフの拡張子が.phpとなってしまいます。
.jpg .gifなどのようにJPGやGIFなどの表示形式に変更したいんですが、やり方がわかりません。
どなたかご指導ください。
windows上でApacheとPHP5を動かしています。
reply: 1907 返信 編集 削除

[1907] もともとJPEG等の画像形式になっているはずです

user: ごいんきょ。 ホームページ | created: 2004-11-18 02:13
PHPlotというのが何なのかは知りませんが、グラフは画像(イメージ)として打ち出されるんですよね。
ということは、変更する必要もなく、JPEG(ジェイペグ)やPNGなどの表示形式になっているはずです。
ただ、GIFは特許問題が関わってくるので、GDモジュール標準では、使えるようになっていません。

また、作成したイメージの拡張子を、.phpから.jpgなどに変えて保存したいという意味なのでしたら、保存するイメージをブラウザで表示し、"右クリック→名前をつけて画像を保存"、「image.jpg」などと名前をつけて実行、のような作業をおこなえば可能です。
上記「」内"image"の部分はファイル名なので任意、".jpg"の部分は、作成したイメージ形式に相当する拡張子に変更する必要があります。

グラフが表示された瞬間、つまりブラウザで表示された時点での拡張子を、.jpgや.pngに変更したいというのなら、基本的に不可能です。
これはPHPlotを使わずに、素からソースコードを書いていったときも同じです。
PHPプログラムを利用してイメージを作成すするためには、拡張子を".php"としてPHPスクリプトを実行させなければならないからです。
Parent: 1903  reply: 1909 返信 編集 削除

[1909] 画像形式

user: ぺこ | created: 2004-11-18 12:41
返信ありがとうございます。
グラフが生成された瞬間に拡張子を変更することはできないということですね。
生成したグラフは.phpのままファイルに一時的に保管して、拡張子を自動的に変換するようなプログラムを連携させて変換することはできないでしょうか?そのようなプログラムはつくれないのでしょうか?
なにぶんPHP初心者なもので技術的にも乏しいのでよかったらご指導お願いします。
Parent: 1907  reply: 1910 返信 編集 削除

[1910] PHPLotの機能で実現

user: シロウ ホームページ | created: 2004-11-18 19:30
<?php
//Include the code
include("../phplot.php");
 
//Define the object
$graph = new PHPlot;
 
// 画像の種類を設定
$graph->SetFileFormat('png');
// 作成するファイル名
$graph->SetOutputFile('test.png');
// ファイル出力設定
$graph->SetIsInline(true);
 
//Set some data
include("./data.php");
$graph->SetDataValues($example_data);
 
//Draw it
$graph->DrawGraph();
 
// 生成されたファイルにジャンプ
header('Location: test.png');
?>

上記のものは一緒についてくるexample1.phpに手を加えたものです。

PHPlotはデフォルトでグラフをそのまま出力する様に設定されています。
上記の様にファイル出力するように変更すればサーバー上にファイルが保存されます。

問題は「一時的に保管」のところかと思います。
(※拡張子は上記の様に.jpg .pngなどです)
tmpへ保存する場合、Locationで飛ばした時点で既に削除されていると思います。
http://jp2.php.net/manual/ja/function.tmpfile.php

「一時的に保管」の部分を独自にシステム化する必要があるはずです。

Locationで飛ばす事自体が邪道のような気もします。
Parent: 1909  reply: 1911 返信 編集 削除

[1911] PHPlot

user: ぺこ | created: 2004-11-18 19:50
シロウさん返答ありがとうございます。
PHPlotの機能で変更が可能なのですね。
PHPlotの使い方についても把握できてないので大変参考になりました。
さっそくやってみます。
Parent: 1910  reply: 1929 返信 編集 削除

[1929] グラフの連続生成

user: ぺこ | created: 2004-11-25 13:52
PHPlotでグラフを描きそれをjpg形式で保存することはできました。
しかし、プロットデータの条件を変え、ファイル名も変えて連続的に画像ファイルを生成したいのですが、なにかよい案はないでしょうか?
どなたかアドバイスお願いします。
Parent: 1911  reply: 1932 返信 編集 削除

[1932] 乗りかかった船?

user: シロウ | created: 2004-11-25 17:44
<?php
// PHPlot外部読み込み
require_once("phplot.php");
 
// PHPlotオブジェクトの生成
$graph = new PHPlot();
 
// ファイルの種類設定
$graph->SetFileFormat('jpg');
// ファイル出力設定
$graph->SetIsInline(true);
 
foreach ($_POST['values'] as $value) {
// 出力ファイル名
$graph->SetOutputFile($value['name']);
// データのインポート
$graph->SetDataValues($value['data']);
// 描画処理
$graph->DrawGraph();

// 画像リソースの破棄
$graph->_PHPlot();
 
// 画像リソース・PHPlot初期化
$graph->PHPlot();
}
?>

グラフデータをPOSTから受けています。
$_POST['values'] = array (
array(
'name'=> 'ファイル名',
'data'=> array(グラフデータ)
)
);
グラフデータはセッションやデータベース・ファイルなどに
予め格納しておくと使いやすいと思います。

http://jp2.php.net/manual/ja/ref.session.php
http://www.rakuto.net/study/htdocs/pdo/?page=setup
http://jp2.php.net/manual/ja/function.serialize.php
  ※PHP5なのでSQLiteをお勧めします。


ループの最後にPHPlot::PHPlot()がきてしまいますが、
PHPlot::_PHPlot()が最後に呼ばれて破棄してくれます。

ファイルの種類、出力設定はPHPlot::PHPlot()を行っても変更されません。

PHPlot::_PHPlot()は使うべきではないので
PHPlotの処理をfunctionへ全部入れて最後にPHPlot::DrawGraph()
がくる様にし、ループの中でfunctionを呼ぶのが良いと思います。


連続的に画像ファイルを生成の意味を履き違えていますか?
「プロットデータの条件を変え」の部分を組み込んで頑張って下さい。
Parent: 1929  reply: 1940 返信 編集 削除

[1940] グラフ生成

user: ぺこ | created: 2004-11-30 10:52
ご指導ありがとうございます。
なかなか苦労したのですが、ようやくグラフの連続生成、保存ができるようになりました!プロットデータは複数用意してやって、それに対応させて、グラフの名前も変更して保存するようにして、ポコポコとグラフができるようになりました。
Parent: 1932  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 520 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑