PHP imagegrabwindow GD Kütüphanesi yalnızca siyah görüntü verir

7 Cevap php

Ben bu sorunu bana ve diğerleri yardım edebilecek biri var olduğunu umut ediyorum ...

Ben php imagegrabwindow işlevini parçası ve GD kütüphanesini kullanarak bir web sitesinin bir ekran görüntüsü oluşturmak istiyorum

Kodunu uygulama bütün gün geçirdikten sonra nihayet görüntüsünü yakalayabilir ve bir dosyaya kaydedebilir, ancak görüntü siyah ve beklediğimden değil görüntü ...

Çünkü bu bir siyah görüntü oluşturur - - sorunu bir sunucu I olarak Apache çalışan değilim daha derin bir araştırma ben apache masaüstü ile etkileşimine açık değildir, çünkü görüntü siyah nedenlerinden biri olduğunu öğrendim IIS 6 çalıştıran duyuyorum ...

Ben masaüstü ile etkileşimine izin vermelidir Hizmetleri bir ayar var mı? ve varsa biri bana doğru yönde işaret edebilir?

<?php
    $browser = new COM("InternetExplorer.Application");
    $handle = $browser->HWND;
    $browser->Visible = true;
    $browser->Fullscreen = true;
    $browser->Navigate("http://localhost/site/advertise/index.asp");

    /* Still working? */
    while ($browser->Busy) {
        com_message_pump(4000);
    }
    $im = imagegrabwindow($handle, 0);
    imagepng($im, "iesnap6.jpg");
    $browser->Quit();
    ?>

I Aşağıdaki cevaplar sayesinde imagejpeg için imagepng değişti - Ama yine siyah bir görüntü elde ...

imagejpeg($im, "iesnap7.jpg");

Herhangi bir yardım çok takdir!

Teşekkürler

Ben bu kodu ermesi adres: görüntü Siyah gösteren Sosyal Addict hala hiçbir başarı!

  <?php
 header('Content-type: image/jpeg');
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://localhost/advertise/index.asp");

/* Still working? */
while ($browser->Busy) {
    com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagejpeg($im," file2.jpg");
imagedestroy($im);
?>

Sosyal Addict - Ben başlığını ekledik - Ben de sürekli emin siyah önbelleğe alınmış görüntüleri kullanarak değil yapmak için file1.jpg adını değiştirerek ediyorum ... hayır şans hala!

7 Cevap

Ben daha önce bu sorunu yaşadım ve denemek ve yük veya yanlış tipte bir görüntü dönüştürmek sık sık neden olur

Ben bu hat ile ilgili bir şey olabilir düşünüyorum

imagepng($im, "iesnap6.jpg");

Sen png olarak kaydedip burada jpg olarak adlandırma.

Eğer jpeg istediğiniz belirtildiği gibi aşağıdakileri deneyin

imagejpeg($im, "iesnap6.jpg");

yerine

Imagejpeg aramadan önce başlık türünü ayarlamayı deneyin:

header('Content-type: image/jpeg');

sonra doğrudan tarayıcıdan komut dosyasına erişmesini ve İşe yarayıp yaramadığını görmek?

Ayrıca bu PHP.NET başka bilinen bir sorundur

This function was painfully slow when I was testing it on my machine. It took about 2 or 3 seconds for it to return an image. It also fails to work if the Apache service doesn't have access to "Interact with the desktop"

IIS ve WWW Publishingservice masaüstü ile etkileşimine izin var mı?

Benim bilgisayar -> yönetmek -> hizmetleri -> [IIS ve WWWPub ...] -> LoginTab -> masaüstü ile etkileşimine izin ver

i 32 bit renk değiştiren çözünürlüğü ve tekrar deneyin, aynı problem vardı.

I) (imagegrabwindow sorunlarınız. Sonunda, sorunu ile hiçbir yardım bulduktan sonra, ben komut mevcut bir sayfa-yakalama eklentisi veya uzantısı olabilir görmek için karar verdi. Firefox için Pearl Crescent Page Saver komut ile script olduğunu buldu.

http://pearlcrescent.com/products/pagesaver/doc/#commandline

Temel versiyon onların ücretli sürümden daha az esneklik sağlar, ancak temel sürümü benim ihtiyaçlarını bir araya geldi. Ayrıca Windows olmayan sistemlerde işe yarayabilir, ama ben denemedim.

Ben bir süre önce konuyu anladım: temel sorun, benim özel bir sunucu 32 bit Grafik Kartı Yüklü yoktu vardı. Bu görüntüler siyah görüntülemek için neden ...

Ben benim sunucu donanımı güncellenmiş ve 32 bit grafik kartı yüklü ve şimdi hiçbir sorunları ile çalışıyor.

I just found an answer that probably will help most. Taken from a commentor on PHP.net: http://www.php.net/manual/en/function.imagegrabscreen.php

  1. Masaüstünüzde sağ '[My] Bilgisayarım' tıklayın 'Yönet' seçeneğini
  2. Altında 'Hizmetler ve Uygulamalar', çift tıklama Hizmetleri
  3. Apache hizmeti (muhtemelen IIS) ve sağ tıklayın, Özellikler 'i seçin bul
  4. 'Log on' sekmesinde, etkindir 'hizmetin masaüstü ile etkileşimine izin ver' emin olun
  5. 'Tamam', kapatmak ve daha sonra Apache (veya IIS) yeniden başlatmanız tıklayın

Eğer bu yoksa, o zaman Apache bilgisayarınızın masaüstü ile iletişim ve boş bir görüntü verir olamaz.

'Content-Type' in 't' sermaye olması gerekir.

Önce:

header('Content-type: image/jpeg');

Sonra:

header('Content-Type: image/jpeg');

Şimdi benim için çalışıyor ..