各社携帯電話用のブラウザに対応する画像に変換したいのですが、自動的にサーバー内でアップロードしたときに変換するということは出来るのでしょうか?
サーバーはUNIXです。

i-mode はgif j-skyはpng ezwebはpng or bmp

よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こんにちわ。


私は今、PHPで同じような事をやっています。
PCのブラウザから、input type=fileでアップしたとき
ですよね?

それでしたら、GDライブラリをperlから使えば
画像の縮小なり拡大なり、元画像から、jpeg、pngなどの
生成を自由に行えますよ。
ただ、gif画像の生成は、gifライセンス問題により、
プログラムからの生成も禁じられてしまいましたが・・。

私の環境は、RedHat7.2+PHP4+Apache+GD-1.8.4 です。
私は、PCからではなく、携帯端末からのアップロード
がわからなく、困ってるんですけどね。。。
    • good
    • 0

結論だけ先に言えば可能です。

頑張れば、ですが、

画像フォーマットの相互変換はCGIで実現するのは(処理が重くなるので)困難ではないかと思います。
確か実現していたサイトもあったと思いますが、そこは商売でやっているので...。
ちなみにそのサイトはアップロード時に行うのではなく、(そのサイトを経由しての)呼び出し時に変換していたと思います。

アップロード時に変換、CGIを使って、と言うことであれば、
まずCGIが画像を受け取り、それぞれの形式に変換した後、サーバに載せる事になるでしょう。
まずは各画像の形式を勉強しませう。

Gifへの変換は特許使用料などの問題もあってフリーソフトでの実現は望めないと思います。
    • good
    • 0

gooのホームページでのチャンネルのダウンロードの、ダウンロードランキングを開くと、たしかマックのランキングに「携帯画銘菓」というのがあります。

これが欲しいものか、はたまたarlieさんのパソコンで使えるかわかりませんが、これは携帯用に画像を縮小したり、変換して編集したりできるフリーソフトです。おもしろいんで御試しあれ!

この回答への補足

一応インターネットのサーバー上でCGIを使って制御できたらと思っています。
何かフリーソフトがあるのでしょうかね?

補足日時:2001/03/19 08:55
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QGerberデータからBmpデータへの変換方法

教えて下さい。
Gerberデータ(ベクターデータ)をBmpデータ(ラスターデータ)へ変換したいのですが、市販の物を使わずに、自力でソフトを作成したいと考えています。(任意で解像度を決定したいため。)
ベタで書くと非常に大変そうな気がしています。
どなたか良い方法かもしくはサンプルコードなどありましたら、紹介して下さい。ソフト言語は何でも結構です。(Windows環境下で実行できる物)
宜しくお願いします。

Aベストアンサー

 以前は、以下のURLからガーバ関係のソフトがソース込みでダウンロード出来ていましたが、いまは?
 

参考URL:http://prdownloads.sourceforge.net/gerbv/

Q画像データ(png)をcsvファイルに変換する。

画像データ(png)をcsvファイルに変換するにはどうしたらよいでしょうか。csv→pngのソフトはあったのですが。

Aベストアンサー

>pngからjpegへの展開はどのように

例えば下記
http://www.vector.co.jp/soft/win95/art/se200307.html

しかしjpgにすると、多少なりとも画質が低下するのでbmpに変換して下記など使用すると良いのかもしれませんhttp://www.vector.co.jp/soft/win95/art/se108144.html

Qpython : unix epoch への変換に関する不明な挙動

フォーマットが異なる二つの日時、 "Tue Aug 4 11:10:14 PDT 2015” と "Tue, 04 Aug 2015 11:10:14 -0700” を Unix Epoch に変換する必要があります。以下のテストプログラムではどちらの時刻フォーマットからも同じ Epoch を得ることができました。

# cat time.py
# -*- coding: utf-8 -*-
import time
import datetime
import dateutil.parser
d = "Tue Aug 4 11:10:14 PDT 2015"
d = dateutil.parser.parse(d)
print int(time.mktime(d.timetuple()))
e = "Tue, 04 Aug 2015 11:10:14 -0700"
e = dateutil.parser.parse(e)
print int(time.mktime(d.timetuple()))

# python time.py
1438683014
1438683014

同テストプログラムをメインのプログラムに組み込んで、後者のフォーマットの時刻を Epoch に変換すると、異なる Epoch が返ってきます。

def datetime_to_epoch(self, d):
d = dateutil.parser.parse(d)
return int(time.mktime(d.timetuple()))

ihTime = xmlRoot.find(".//g_date").text
logger.debug("g_date:'%s'", ihTime)
# Convert this format "Tue, 04 Aug 2015 11:10:14 -0700" to Unix epoch
ihTime = self.datetime_to_epoch(ihTime)
self.qDate.append(ihTime)
logger.debug("Appending generated time: %s", ihTime)

実行結果
# python test.py
...
generation_date:'Tue, 04 Aug 2015 11:10:14 -0700'
Appending generated time: 1438686614

xml から取得している文字列が想定と異なっているのかと疑い、下記のように
ihTime に直接後者の時刻を入れてみたのですが結果は変わりませんでした。
ihTime に想定外の値が入っているという事では無いようです。

ihTime = xmlRoot.find(".//g_date").text
logger.debug("g_date:'%s'", ihTime)
# Convert this format "Tue, 04 Aug 2015 11:10:14 -0700" to Unix epoch
ihTime = "Tue, 04 Aug 2015 11:10:14 -0700”
ihTime = self.datetime_to_epoch(ihTime)
self.qDate.append(ihTime)
logger.debug("Appending generated time: %s", ihTime)

得られた Epoch
1438686614

同様の方法で前者のフォーマットデータを直接 ihTime に入れて実行すると、
最初の time.py と同じ結果が得られます。

ihTime = xmlRoot.find(".//g_date").text
logger.debug("g_date:'%s'", ihTime)
# Convert this format "Tue, 04 Aug 2015 11:10:14 -0700" to Unix epoch
ihTime = "Tue Aug 4 11:10:14 PDT 2015”
ihTime = self.datetime_to_epoch(ihTime)
self.qDate.append(ihTime)
logger.debug("Appending generated time: %s", ihTime)

得られた Epoch
1438683014


二つの Epoch を再変換してみると、後者のメインプログラム&フォーマットで得られる Epoch は1時間時刻が進んでいるようです。

~# date --date "@1438683014"
Tue Aug 4 11:10:14 BST 2015
~# date --date "@1438686614"
Tue Aug 4 12:10:14 BST 2015


メインプログラムで後者のフォーマットの時刻を与えた場合のみ結果が異なる点について、
確認すべきことがありましたらご指摘いただけないでしょうか。
もし dateutil の使い方自体が間違っている様でしたら適切な Epoch への変換方法を教えていただけると嬉しいです。

宜しくお願いします。

フォーマットが異なる二つの日時、 "Tue Aug 4 11:10:14 PDT 2015” と "Tue, 04 Aug 2015 11:10:14 -0700” を Unix Epoch に変換する必要があります。以下のテストプログラムではどちらの時刻フォーマットからも同じ Epoch を得ることができました。

# cat time.py
# -*- coding: utf-8 -*-
import time
import datetime
import dateutil.parser
d = "Tue Aug 4 11:10:14 PDT 2015"
d = dateutil.parser.parse(d)
print int(time.mktime(d.timetuple()))
e = "Tue, 04 Aug 2015 11:10:14 -0700"
e =...続きを読む

Aベストアンサー

e = "Tue, 04 Aug 2015 11:10:14 -0700"
e = dateutil.parser.parse(e)
print int(time.mktime(d.timetuple()))

本当にこの通りなら、2つ目は e のepochにはなっていません。

QGIFファイルをハードウェアで変換するLSIは無いかな?

JPEGファイルを変換するLSIはDecoderやEncoderが半導体各社から製品化されていますが、GIFファイルの変換用LSIはどこのメーカーを探しても見つかりません。
どなたか情報をお持ちの方はいませんか。
それとも、GIFファイルをハード的に変換することに何か無理があるのでしょうか?
GIFファイル形式(LZW圧縮解凍法も含めて)のアルゴリズムを調べて見ましたが技術的に困難な問題は無いように思われました。但し、大変な労力を必要とする感じです。
市販のものがあれば使いたいと思います。
無ければ、FPGAで作成するしかないかなと思っていますが何か困難なことが隠されているのでしょうか?
ご意見、情報をお願い致します。m(__)m jeweb

Aベストアンサー

>1/100秒単位の時間で変化する(GIFの仕様上では)可能性の有るファイルをリアルタイムで処理
何を作るつもりかわかりませんが、本当にこのレベルの処理が必要ですか?
GIFはそもそもせいぜい9600bpsでのパソコン通信時代にそのために制定したフォーマットですが。
(89aは1989年版の仕様)
また、TVでさえ実質30Hz程度の更新レートです。

GIFフォーマット
http://tohoho.wakusei.ne.jp/wwwgif.htm
http://www.st.rim.or.jp/~syamaura/gifanime/gifabout/gifabout.html

1/100秒というとGraphic Control ExtensionのDelay Timeのことを指していると思いますが、
画像表示が終わり、次の画像表示を始めるまでの時間です。
また、おそらく、100Hz更新を要求されれば通常のWindows系マシンでは全滅でしょう。
だいたい画面のリフレッシュレートですら60Hz程度でしょうし。

ほんとうに1/100秒更新が必要ならこの回答は忘れてください。


>数千円レベルのCPUボードについて特定できる情報
1/100Hzでの使用は想定してませんが、前回の回答時に頭にあったのはこのへんのH8,ARMを使ったものです。
処理能力としては、gifが決まった当時のパソコン能力をはるかに上回ってますから、充分と考えました。
http://akizukidenshi.com/catalog/items2.php?c=micon
他にも、雑誌、トランジスタ技術の広告を見ればいくらでもあります。

あと、gifを作るのが面倒ならいろいろあるjpegの高画質でも使えないのかと思いますが。

なんにしろ、何のためのどんなシステム作りたいかがわからないので、そちらで判断してもらうしかありませんが。

参考URL:http://www.st.rim.or.jp/~syamaura/gifanime/gifabout/gifabout.html

>1/100秒単位の時間で変化する(GIFの仕様上では)可能性の有るファイルをリアルタイムで処理
何を作るつもりかわかりませんが、本当にこのレベルの処理が必要ですか?
GIFはそもそもせいぜい9600bpsでのパソコン通信時代にそのために制定したフォーマットですが。
(89aは1989年版の仕様)
また、TVでさえ実質30Hz程度の更新レートです。

GIFフォーマット
http://tohoho.wakusei.ne.jp/wwwgif.htm
http://www.st.rim.or.jp/~syamaura/gifanime/gifabout/gifabout.html

1/100秒というとGraphic Control E...続きを読む

QUNIX:テキストファイルのNULLを空白に変換したい。

お世話になります。
現在テキストファイルをOracleデータベースに取り込む処理を開発しております。SQL*Loaderを用いて、テスト.datを取り込もうとしたのですが、
ORA-01722: 数値が無効です。エラーが出てデータを取り込めません。

テスト.datの中身を見たところ、該当個所に下記のようにNULLが入っていました。
数値型のテーブル項目に、NULLを取り込もうとしてエラーになっています。
Oracleの場合、数値型では空白は取り込めるようですが、NULLは取り込めないようです。

ですので、テスト.datのNULLの個所を空白に変換する方法を調査しています。

sedや、awk、perlを使えばできるのでしょうが、私は詳しくないため
方法が思いつきません。
どなたか、sed、awk、perlに詳しい方がいれば、方向性のヒントだけでも
お教えねがいますでしょうか。

環境: Solaris 9

■テスト.dat

od -c テスト.dat > テスト.txt

※ \t = タブ、\0= NULL

$ head -10 テスト.txt
0000000 0 0 1 \t 0 1 0 1 \t 1 \t 0 1 0 1 \t
0000020 0 0 0 0 0 0 \t 0 3 7 \t 1 0 0 1 0
0000040 2 8 \t \0 \0 \0 \t \0 \0 \0 \0 \0 \0 \0 \0 \0
0000060 \0 \t \0 \t 0 0 \t 6 3 \t 0 0 \t 1 \t

■編集後のイメージ
\0(NULL)の個所を、そのままスペース(空白)で置き換えたい。

0000000 0 0 1 \t 0 1 0 1 \t 1 \t 0 1 0 1 \t
0000020 0 0 0 0 0 0 \t 0 3 7 \t 1 0 0 1 0
0000040 2 8 \t   \t
0000060 \t \t 0 0 \t 6 3 \t 0 0 \t 1 \t

よろしくお願いします。

お世話になります。
現在テキストファイルをOracleデータベースに取り込む処理を開発しております。SQL*Loaderを用いて、テスト.datを取り込もうとしたのですが、
ORA-01722: 数値が無効です。エラーが出てデータを取り込めません。

テスト.datの中身を見たところ、該当個所に下記のようにNULLが入っていました。
数値型のテーブル項目に、NULLを取り込もうとしてエラーになっています。
Oracleの場合、数値型では空白は取り込めるようですが、NULLは取り込めないようです。

ですので、テスト.datのNULL...続きを読む

Aベストアンサー

以下のようなperlのスクリプトを作ってください。
-----------------------------------
open FH, $ARGV[0] or die "open error $!";
while(read FH,$data,1){
$data =~ tr/\x00/\x20/;
print $data;
}
close FH;
---------------------------------
上記のスクリプトのファイル名を conv.pl とします
perl conv.pl テスト.dat > テスト.dat2
とすると
テスト.dat2が作成されます。(NULLをスペースに変換したファイル)


人気Q&Aランキング

おすすめ情報