1

imagegrabscreenApache / Vista PCで(GD関数)を動作させようとしています。

私は次のコードを使用しています:

<?php
$im = imagegrabscreen();

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

現時点では、セカンダリモニターのサイズ(1024 * 768)の黒一色の画像が表示されます。サービスとして実行しているApache2.2、UACをオフにしたVista SP1、PHP 5.2.8、およびGDを使用しています(以下の情報)。imagegrabscreenデスクトップへのApacheアクセスの許可に関するページのメモに従いました。また、サービスとApacheサーバーを再起動しました。で同じ結果が得られimagegrabwindowます。

これはバグですか(他の人がこのメソッドを実行するのに問題がありますか?)、または私が間違っていることがありますか?

Array
(
    [GD Version] => bundled (2.0.34 compatible)
    [FreeType Support] => 1
    [FreeType Linkage] => with freetype
    [T1Lib Support] => 1
    [GIF Read Support] => 1
    [GIF Create Support] => 1
    [JPG Support] => 1
    [PNG Support] => 1
    [WBMP Support] => 1
    [XPM Support] => 
    [XBM Support] => 1
    [JIS-mapped Japanese Font Support] => 
)

Apacheサービスログオンの詳細:

http://www.kalleload.net/uploads/maogfnfnczfh.png http://www.kalleload.net/uploads/maogfnfnczfh.png

4

2 に答える 2

1

imagegrabscreen();のソースを調べました。

現時点では、両方ともマルチモニターが設定されているため、失敗していると思います。

現在のコードはGetDC(0)を呼び出します。これは、http://msdn.microsoft.com/en-us/library/dd144871(VS.85).aspxによると、 画面全体」のデバイスコンテキストを返す必要がありますが、「特定のディスプレイモニターのDCを取得するには、EnumDisplayMonitors関数とCreateDC関数を使用します。」

これについてもう少しテストを行い、マルチモニターに適したコードを考え出すことができるかどうかを確認します。

于 2009-03-11T17:17:13.337 に答える
0

imagegrabscreen()VistaではなくWindowsXPでのみ動作すると思います。
このリンクを確認する必要があります

于 2012-01-28T22:15:53.917 に答える