68user's page 掲示板

Prev< No. 2441〜2480> Next  [最新発言に戻る] [過去ログ一覧]
No. 2441 # ぶぶ 2002/01/23 (水) 20:21:38
たびたびお世話になります。

おかげさまで、この前使えるようになったPPMで、ImageMagickモジュ
ールをinstallして、使おうと思ったら、何にも反応なしで困っていま
す。いろいろサイトを見て回りましたが、類似問題は見あたらず・・・。

環境は、Perl5.6.1(build631) Windows98です。

この環境に、PPMで、install Image-Magick してImageMagickを入れ
ました。

C:\>ppm
PPM>install Image-Magick
です。

その結果、c:\perl\site\libにはimageディレクトリができていて、
その中にはちゃんとMagick.pmというのもあるようです。

それで、下のを実行してみたのです。

use Image::Magick;

$i = Image::Magick->new;
$i->Read('test.jpg');
$i2 = $i->Clone();

$i->Scale(width=>100, height=>100);
$i->Write('test2.jpg');

すると、Perlそのものは正常に終了する(エラーは出ない)のですが、
test2.jpgはできてないのです。


ちなみに下のようなのも実行してみました。

use Image::Magick;

$img = Image::Magick->new;
$img->Read('test.jpg');
($w,$h) = $img->Get('width','height');

print "Content-type: text/html\n\n";
print "<html><head><title>TEST</title></head>\n";
print "<body bgcolor=\"\#ffffff\">\n";
print "$w / $h\n";
print "<br></body></html>\n";
exit 0;

こちらも、$wも$hも空でした。

test.jpgは存在しているし、どうしてうまく行かないのか、まった
く見当もつかないので、これだけの情報では不足かもしれませんが、
何か分かる方おられましたら、ご指導ください。どうかよろしくお
願いします。

No. 2442 # ふくし [E-mail] 2002/01/23 (水) 20:27:36
>>2439 68user
さん、どうも。

たしかに両方化けずに見えています。
FreeBSD 版では片方化けるんですね。

なるほど、Windows 版 NC はファイルの一部も自動変換、、
しかもブラウザーが渡す URL の文字列は必ず sjis。
これがわかんなくてホボ一日ハマりました。
パラメタはあらかじめ変換しておくのを原則にすればよかったのですが、
表示を見て正しく EUC で入ってくるものと思い込んでいたのです。

No. 2443 # ふくし [E-mail] 2002/01/23 (水) 22:44:03
>>2441 ぶぶ
さん:

1本目のプログラムですけど動きましたよ、、;;;
test.jpg がなくてもちゃんと動きますね。
その場合はおっしゃるような症状になります。
ということで、test.jpg があるディレクトリが
カレント ディレクトリな状態で実行してないとか、、。
test.jpg を C:\test.jpg とかフルパスで指定するとどうなります?

#これ便利だなー^^

No. 2444 # ぶぶ 2002/01/23 (水) 23:34:16
ふくしさん、お返事ありがとうございます。

C:\〜\test.jpg のように、フルパス指定したら動きました。
あと、DOS窓では./test.jpgでもうまくいきました。

でも、CGIとしてAN-HTTPD(ver1.37c/PerlISを利用)を通して
動作させると、CGI(test.cgi)と同じディレクトリにtest.jpg
がある時に、フルパスならうまくいくのに./test.jpgでは、やっ
ぱりうまくいきませんでした。

で、いろいろやっていると、PerlIS.dllを使うとうまくいかず、
Perl.exeを使うとうまくいくことが分かりました。
PerlISの問題だったようです。

でも、とりあえず動作させることができたので、解決です。
ありがとうございました。

#ちなみに同じような処理(画像の縮小拡大)はGDでもできますが、
#jpeg画像を縮小したときの画質はGDよりImageMagickの方が、
#なめらかできれいでした。

No. 2445 # 68user 2002/01/23 (水) 23:40:09
>>2444 ぶぶ
解決したようですが、ふつーは
    $i = Image::Magick->new or die "$!";
    $i->Read('test.jpg') or die "$!";
    $i2 = $i->Clone() or die "$!";
などと、エラーチェックをするものです。

と書こうと思ったら、Read は存在しないファイルを開いても
0 を返さないから、die じゃあダメなんですね。
    $ret = $i->Read('a.gifs');
とかして、$ret を調べて、
    Warning 330: Unable to open file (a.gifs) [No such file or directory]
とかを解析しないといけないらしいです。Image::Magick、ダメすぎ。

>>2443 ふくし
> しかもブラウザーが渡す URL の文字列は必ず sjis。
    http: //host/dir/hoge.cgi?ほげ
とかですか?

No. 2446 # ふくし 2002/01/24 (木) 01:22:45
>>2445 68user
            さん:

>> しかもブラウザーが渡す URL の文字列は必ず sjis。
> http: //host/dir/hoge.cgi?ほげ
> とかですか?

http://host/dir/hoge.cgi?hoge=ほげ
とかです。
CGI には sjis で渡るのに、表示は正常に行なわれます。

No. 2447 # yuji 2002/01/24 (木) 19:12:18
どうも、ご無沙汰しております。yujiです。^^
お世話になっております。

現在、windows2000+apache+activeperlの環境において、
CGI(perl)からapacheの再起動等を行いたいのですが、
apacheのパスにスペースが入っているためか、
コマンドを実行できず、困っております。^^;

具体的には、
パスが、
d:\Program Files\Apache Group\Apache\Apache.exe
のような形です。
実行部分は、
$cmd="d:\\Program Files\\Apache Group\\Apache\\Apache.exe -w -n \"Apache\" -k restart";
system($cmd);
のような形です。
パスのスペース部分をアンダースコアに変更して試してみたりも
したのですが、うまくいかないようでして。^^;

それぞれのフォルダ名にスペースを含めないようにすれば、
解決できるのかもしれませんが、スペースがあった場合に
対応できないものか、と思いまして。

みなさんなら、どうされますか?
もしよかったら、アドバイスを、
どうぞよろしくお願いいたします。

No. 2448 # 68user 2002/01/24 (木) 19:54:35
>>2447 yuji
Windows で perl スクリプトを作ったことがないのでアレですが、
    $cmd="\"d:\\Program Files\\Apache Group\\Apache\\Apache.exe\" -w -n \"Apache\" -k restart";
はどうですか?

>>2448 68user
> http://host/dir/hoge.cgi?hoge=ほげ
まぁ、規格で定まっていない部分ですから仕方ないですね。
IE だと (設定次第ですが) UTF-8 で送ることもありますし。

No. 2449 # 68user 2002/01/24 (木) 19:59:20
>>2448 68user
初めて ActivePerl といふものでプログラムを組んでみました。
やはり "" で囲めばよろしいようで。

DOS 窓から
    C:\> d:\\Program Files\\Apache Group\\Apache\\Apache.exe
とするとダメだけど、
    C:\> "d:\\Program Files\\Apache Group\\Apache\\Apache.exe"
なら OK、というのと同じですね。

No. 2450 # ふくし [E-mail] 2002/01/24 (木) 20:39:18
>>2448 68user
            さん:

>> http://host/dir/hoge.cgi?hoge=ほげ
>まぁ、規格で定まっていない部分ですから仕方ないですね。
>IE だと (設定次第ですが) UTF-8 で送ることもありますし。

えーそうなんだ、、それは困るな。
やっぱり世間の検索エンジンみたいに
hoge=%A4%BD%A4%B2 とかすべきですね。
日本語キーにするなって話もありますが。

No. 2451 # yuji 2002/01/24 (木) 23:10:53
68userさん、アドバイスありがとうございます。^^
おかげさまで、無事コマンドを実行することができました。

DOS窓でもスペースがある場合、実行できなかったため、^^;
スペースを、区切りではなく文字列の一部と認識させるために、
"で括る方法、とても勉強になりました。^^

No. 2452 # 68user 2002/01/28 (月) 05:54:06
>>2451 yuji
Windows 2000 とかだと、エクスプローラーでフォルダをドラッグし、
コマンドプロンプトにドロップすれば、
    "c:\WINNT\program files\"
などと "" 付きでフルパスが展開されます。エクスプローラーで
ファイルのフルパスを簡単に取得する方法はないのかなぁ。

>>2450 ふくし
> hoge=%A4%BD%A4%B2 とかすべきですね。
そうですね。ただ、詳しくは知らないんですが、遷移先にどんな文字
コードを使っているかを伝えられるような送信方法もあったはずです。
RFC になってたかなぁ。


今日の大発見:
    cd - で一つ前にいたディレクトリに戻れる! (sh, csh, tcsh で確認)
    これは知らんかったなぁ。

No. 2453 # 宮村 2002/01/28 (月) 18:40:51
file.1 file.2 ... file.9を一括で
file-1 file-2 ... file-9に変換したいのですがどうすればよいでしょう?
稚拙な質問で申し訳ありません
使ってるのは tera term です。

No. 2454 # 2002/01/28 (月) 21:59:57
>>2453 宮村
TeraTermにそんな機能はないだろ。

No. 2455 # CZ 2002/01/28 (月) 23:25:59
No. 2453 # 宮村
ここなど参考にしてみては。
http://www.nurs.or.jp/~asada/FAQ/UNIX/section2.6.html

No. 2456 # 68user 2002/01/29 (火) 07:06:40
>>2454
そういう物言いをしたいなら、2ch へどうぞ。

No. 2457 # 宮村 2002/01/29 (火) 14:56:23
できました。教えてくれた方、ならびにカキコ有無にかかわらず少しでも考えてくれた人とてもありがとうございました。これで単位がもらえます。

No. 2458 # とっしー 2002/01/29 (火) 19:21:26
はじめまして、とっしーです。
知っている人がいたら、何かいいお知恵をお願いします。

CGI上でソケット通信をして、他のサーバからデータを取り込み
ブラウザ上にてデータ表示をしているのですが。
ソケット通信をするサーバが2個あり1番目のサーバタイムアウト後
2番目のサーバに対してソケット通信をしたいのですが、
sub aaa{
    $SIG{ALARM} = sub{exit 1;};
    alarm($timeover);

    $socket = IO::Socket::INET->new();
            〜
}
上記のようなタイマでタイムアウトを検出しても、このサブルーチンの
起動元までリターンしません。(T_T)
起動元までリターンするような、プログラム方法等があればお教えください。

No. 2459 # 68user 2002/01/29 (火) 21:02:34
>>2458 とっしー
うーん、まずは exit してプロセスが終了してるんだから、
どこにも戻りようがない、というところから始めましょうか。

で、どう書くのが正しいのかなぁ。

No. 2460 # かいと [E-mail] 2002/01/29 (火) 21:25:35
はじめまして。かいとです。
こちらのサイトにある「HTTPクライアントを作ろう(C言語版)」を利用させていただきました。
ありがとうございます。そこで、1つ質問なのです・・・・
connect()でタイムアウト時間を指定したいのですが、できるのでしょうか?
ちなみにOSはSolaris2.7、コンパイラはWorkshopのccを使ってます。
どうぞよろしくお願いします。

No. 2461 # 68user 2002/01/29 (火) 21:42:36
>>2460 かいと
ノンブロッキングソケットを使うと、connect を呼ぶとすぐに
制御が帰ってきます。僕はノンブロッキングソケットを使った
ことがないので、これをキーに検索してみて下さい。

No. 2462 # snow 2002/01/29 (火) 23:14:02
初めまして。snowと申します。
今、8ビットJISで作成されたファイルをSJISのファイルに変換しようと思っているのですが、中々上手く行きません。どなたか教えて下さい。お願いします。
因みに今までは、Pro*Cのプログラム上で、単語毎にjis8touj関数を使用していました。

No. 2463 # 68user 2002/01/30 (水) 00:29:20
>>2462 snow
jis8touj って何かと思ったら
    http://ecip01.cc.kurume-it.ac.jp:8888/ab2/coll.141.9/JFPDEV/@Ab2PageView/2444?
これですか?

Solaris only の、しかもあまり利用者が多そうでない
ライブラリの話なのですから、何がどううまくいかないか
書かないと回答はもらえないでしょう。

No. 2464 # Bourbon 2002/01/30 (水) 09:38:42
基本的なことで、ほんとにすいません。どなたか、solaris8のGUIで
Windowsのような[Print]、[Alt]+[Print]のようなハードコピーを
するやり方をご存知の方は教えてください。よろしく

No. 2465 # CZ 2002/01/30 (水) 12:52:07
>>2464 # Bourbon
まったく知らない領域のことなのですが、恥を忍んで。

「Solaris ハードコピー」で検索をかけた限りでは
http://www.advac.co.jp/download/gpr_dl.htmlのような
プリントサーバソフトウェアにはそういった機能が
付いていることが多いようです。

こんなのも見つかりましたが、参考になるでしょうか。
http://www.aitech.ac.jp/ie/~milabo/unixmanual/man0.html#19

No. 2466 # ふくし [E-mail] 2002/01/30 (水) 14:06:07
>>2464 Bourbon
            さん:

solaris じゃなくって Linux でしたけど、
やはりハードコピーが必要になって gimp というペイントソフトの
機能を使ったらできました。
solaris で gimp は走ったかなー?

No. 2467 # ふくし [E-mail] 2002/01/30 (水) 14:09:50
Perl の質問です。
わけあって、プログラムの終端に goto で飛んでいます。
(CGI なので、exit だと、mod_perl に移植したときに
    mod_perl ごと死んでしまうと聞いたので)

で、

goto FIN if(事情);
...
FIN:

sub サブルーチン {
...
}

と書くと、サブルーチン定義のところで syntax error になるんですが、

goto FIN if(事情);
...

sub サブルーチン {
...
}

FIN:

だと大丈夫です。なぜでしょうか〜?

No. 2468 # 68user 2002/01/30 (水) 21:17:14
>>2464 Bourbon
xwd とかじゃあダメですか? あるいは Solaris と Windows
両方に VNC を入れて、Windows 側から Solaris の画面を
キャプチャ、とか。Solaris 標準の CDE でキャプチャする
方法は知りません。

>>2467 ふくし
perl の構文解析のバグなんでしょうね。

    FIN:
    ;
    sub サブルーチン {

なら OK のようです。

No. 2469 # へにか [URL] 2002/01/30 (水) 23:23:29
ちょっと脱線A^^;
>>2466 ふくし
会社のSolaris(多分8)では、gimpが立ち上がりました(親切な方がコンパイルしてくれたっぽい)。
とはいえ、
>>2467 ふくし
CDEは嫌いなので使ってないので、CDEの標準な方法は知りません・・・

No. 2470 # へにか [URL] 2002/01/30 (水) 23:25:44
>>2469 の、
>>2467 ふくし
は、
>>2468 68user
の間違いです。汚してしまって、すみません。

No. 2471 # ふくし 2002/01/31 (木) 02:07:24
>>2468 68user
                    さん:
お、バグですか!^^
最新バージョンで試してレポートしちゃる!^^

>>2469 へにか
                    さん:
gimp 走りますか! 最近 solaris が増えてきたので、
役に立つかも。Alt+ScreenShot 系のキャプチャーは
gimp に限ります。そぅとぅ〜便利です。
そのまま流れるように編集できるし。
最近なんか solaris の仕事多いんだけど気のせいかな?
ココの問い合わせも増えてますよね。

No. 2472 # 2002/02/02 (土) 21:40:44
>>2467 ふくし
http://www.din.or.jp/~bigstone/cgilab/cgitips/mod_perl1.html
ここの・・・


8. exit()は使用できない

exit()は使用できません。代わりに Apache::exit()関数が用意されています。 以下の判定でexit関数を他の関数にオーバライドできます。

use subs qw(exit);

*exit = $ENV{MOD_PERL} ? \&Apache::exit : sub { CORE::exit };

No. 2473 # ふくし 2002/02/04 (月) 05:47:44
>>2472
                さん:
ありがとうございます! それは使えそうですね。
use Apache するのかな。(あ、調べますしらべます ^^)

No. 2474 # fairytale 2002/02/04 (月) 11:52:21
いつもお世話になります。
solarisでマシンにSICIカードを取り付けテープデバイスに装着させる場合、マウントするにはどのようにすればよいでしょう?
簡単でよいので教えてください。

No. 2475 # 68user 2002/02/04 (月) 12:38:10
>>2474 fairytale
テープって mount できるんでしたっけ。

僕はいつも mount せずに
    % tar cf /dev/rmt/0 .
とかやってますが。

No. 2476 # tarbo 2002/02/04 (月) 19:00:04
tar cvf - . | ...と書いてある‘-‘の意味を教えて下さい。

No. 2477 # 68user 2002/02/04 (月) 19:08:09
>>2476 tarbo
標準入力 or 標準出力です。

大抵、man tar の -f オプションのところに書いてあります。

No. 2478 # まい 2002/02/06 (水) 19:43:27
始めまして。ツバサと申します。
さっそくですが、質問させて下さい。
こちらのネットワークプログラミングの基礎知識を元にFTP送信処理をC言語で作成しています。
あるマシンへの送信が上手く行かないのです。
PORTコマンドのレスを読み込む時にread関数でエラーになってしまいます。
レスが返って来ないという事があるのでしょうか?
ユーザーの認証などでは問題なくレスを取得できているようなのです。
それも、そのエラーが出るのはある特定のマシンへの時だけです。
何かお分かりになる事がありましたら、お願いします。
あいまいな質問で申し訳ありません。

No. 2479 # ツバサ 2002/02/06 (水) 19:46:28
すみません。
No.2478の書き込み時に遊び用のHNで送信してしまいました。
なので、内容で名乗っている名前と表題に出ている名前とが
違っています。
こんな理由なので、ご容赦下さい。

No. 2480 # ui 2002/02/07 (木) 11:51:20
質問があります。
solaris2.6で例えば自マシンの/dev以下に、他マシンの/etc以下を
mountする時の、書式を教えてもらえないでしょうか?すみません

Prev< No. 2441〜2480> Next  [最新発言に戻る] [過去ログ一覧]