GD er en extension til PHP med funktioner til at lave billeder.
Før du kan bruge billedbehandlings funktionerne skal GD installeres.
GD er ikke installeret som standard.
Du kan installer GD extension ved at køre PHP installationen igen og tilvælge GD som her i Windows.
Hvis du er i tvivl om du har GD installeret så kør følgende kode på din egen computer og kig efter gd.
Hvis du skal bruge GD funktionerne på dit webhotel så kør koden på dit webhotel for at se om GD er installeret der.
Billede 1
Her er noget kode som laver et billede, vælger en tekstfarve, tegner noget tegn og viser billedet direkte i browseren i PNG format.
Filen "eksempel0024.php" kan så bruges som billedfil med forskellige resultater som her.
Resultatet ovenfor er skabt af følgende kode
På den måde kan man lave mange knapper og let ændre deres tekst.
Billede 4
Her er et "live" eksempel hvor jeg bruger billedet inline i HTML koden så jeg kan vise det her på hjemmesiden uden jeg behøver gemme billedet som en fil.
I PHP manualen står at man kan tage screenshots med imagegrabscreen() og imagegrabwindow().
Det virker kun i Windows står der.
Efter at have prøvet en masse har jeg endelig får det til at virke, men det er ikke så lige til.
Hvis jeg prøver med imagegrabscreen() får jeg et sort billede på 1024x768 (eller 1280x768).
Hvis jeg prøver med imagegrabwindow() får jeg et sort billede på 800x600.
Det er lidt mærkeligt fordi min skærmopløsning er 1366x768.
Hvis man vil tage et screenshot af hele skærmen skulle man kunne bruge følgende kode.
Jeg får bare et sort billede på 1280x768.
For this to work your Apache service must be set to 'Allow service to interact with desktop' otherwise you will just get a blank image. To fix this right-click My Computer, select Manage/Services and Applications/Services - find the apache service (like Apache2) and right-click, select Properties - choose the Log on tab and check the 'Allow service to interact with desktop' checkbox. Restart Apache.
Hvis man vil tage et screenshot med programvinduet (eller programmet kørende i fuldskærm) skulle koden være noget i stil med dette.
Her i Internet Explorer.
Billederne laves umiddelbart fint nok, men de er bare helt sorte og størrelsen er forkert i forhold til min skærmopløsning.
Jeg har prøvet koden på Windows 7 (64 bit) og Windows Vista (32 bit) med samme resultat (sorte billeder).
Efter at have prøvet igen med imagegrabwindow() metoden lykkedes det mig og få taget dette 800 x 600 pixels billede som godt nok viser Internet Explorer vinduet men selve området hvor hjemmesiden skulle have været er stadig sort.
...okay hvis com_message_pump() er sat for lavt kan det give sort billede.
...Okay nu har jeg rodet med det noget mere og nu lykkedes det mig og få taget et screenshot.
Det ser ud til at programmet (Internet Explorer) åbner på en anden konto kaldes SYSTEM (NT AUTHORITY/SYSTEM).
(Ser ud til når man køre "iexplore.exe -embedding" så starten explorer uden at man kan se det vindue).
Der kommer så nogen pop-op-beskeder om man vil bruge standardindstillinger og om programmet skal være standard browser og om man vil bruge intranetindstillinger.
Så længde de beskeder er der bliver indholdet vist sort, hvis man kan klikke dem væk så kommer billedet.
...
Mere info...
I Tjenester (Kør "services.msc") er der en tjeneste/service som hedder Interactive Services Detection (C:\Windows\System32\UI0Detect.exe).
Når tjenesten startes og man tager screenshot så kommer der sådan en besked her.
Ved at klikke på "Vis meddelelsen" kan man skifte til SYSTEM kontoen hvor Internet Explorer bliver startet op for at tage screenshotet.
800x600 er åbenbart den standard størrelse Internet Explorer vinduet har når det åben i ikke-maksimeret-tilstand.
1024x768 er åbenbart den standard opløsning skærmen er sat til hvis man aldrig har brugt SYSTEM brugeren.
Hvis man vil bestemme størrelsen på screenshotet kan man køre koden ovenfor uden $browser->Quit(); så lukker browseren ikke når screenshotet er taget.
Så trykker man på CTRL+O (Åbn...) og vælger Gennemse... (det kan tage noget får den kommer videre) find C:\windows og højre klikker på explorer.exe og vælger Åbn.
Så opbygges skrivebordet osv. så du kan bruge start menuen.
Nå nu skulle skærmopløsningen være den samme som din normale konto.
Hvis du vil ændre opløsningen kan du skrifte tilbage med "Returner nu" knappen, skifte opløsning på din normale konto også vælge "Vis meddelse" i Interactive Services Detection vinduet, så sætte skærmopløsning lige så snart du komme på SYSTEM kontoen. Og så kan du skifte tilbage igen og tage dit screenshot.
---
Hvis du ved mere så kontakt mig gerne da jeg gerne vil bruge det til min hjemmeside.
Browseren skulle jo gerne køre i fuldskærm når billedet blev taget og uden alle de her "Vil du gøre Internet Explorer til standardbrowseren?" osv.
Tryk på start knappen for at se hvad bruger du er logget på som.
---
Det lader til at det der skal bruges for at tage screenshots som standard er slået fra i PHP fra version 5.4.5.
Så man skal tilføje følgende i php.ini filen (ellers får man fejlen Fatal error: Class 'COM' not found):
Den fede kant på vinduer, når man er logget på som SYSTEM, skyldes mulighed at der bruges Aero eller Basic tema og at tjenesten Tema er stoppet.
Select English to navigate the website in English. Things like the navigation menu and contact form will be in English, but the main content on each page will not be translated.