Avatar billede cr2000 Nybegynder
19. april 2004 - 16:06 Der er 14 kommentarer og
1 løsning

Sende billede til browser

Hej Gutter og Gutinder.

Jeg har siddet en time og kigget på internettet efter noget kode som kunne lede mig i retning af en en løsning til mit problem.

Jeg skal have lavet en lille server som kun har en opgave i livet. Nemlig et sende et billede tilbage til en browser.

F.eks skal jeg kunne sætte følgene kode på et html dokument:

<img src="127.0.0.1:1234">

og så skal dette lille program så sende det fine billedet tilbage som den har i en bitmap / jpg i hukommelsen.

Faktisk er ideen at dette er et screenshot. Altså det som den sender tilbage. Men det har jeg ikke noget problem med at lave.

Håber i kan guide mig igen.

Mvh Christian Reinholdt
Avatar billede jonat Nybegynder
19. april 2004 - 22:07 #1
Altså koden til at tage et screenshot???
Avatar billede fixxxer Nybegynder
20. april 2004 - 02:42 #2
ville det ikke være meget nemmere at tage screenshotet (skal du have koden til det?) gemme det, uploade det til den respektive server, med det respektive navn (blot overskrive sig selv hele tiden) og derefter får html dokumentet til at opdatere sig selv (det lyder lidt som en web-cam af din pc-skærm - hvilket er en fed idé :p)

Bare en løs tanke :-)
Avatar billede fixxxer Nybegynder
20. april 2004 - 02:43 #3
og html koden skal jo blot være <img src="mitscreenshot.jpg"> som programmet gemmer på serveren
Avatar billede fixxxer Nybegynder
20. april 2004 - 02:46 #4
noget andet så er det mig bekendt ikke sådan lige at streame noget til browser, men fx ASP komponentet aspUpload har en funktion til at streame et billed til en browser, i stedet for at det ligger fysik tilgængeligt på nettet, hvilket jo kunne være et af dine motiver? så kan man jo stadig bruge programmet til at ligge det blot i en beskyttet mappe på serveren, og få aspUpload til at streame billedet til brugerens browser fx hvert 10. sekundt
Avatar billede cr2000 Nybegynder
20. april 2004 - 12:08 #5
Jeg har ikke noget problem med at tage et screenshot. Problemet ligger i at sende det til browseren (DIREKTE) ligesom en webserver ville gøre det hvis den fik en request på et billede...
Avatar billede fixxxer Nybegynder
20. april 2004 - 14:22 #6
det er nok derfor aspUpload ikke er noget billigt komponent :)

tror at det kræver en del kendskab til browserens kommunkationsform og hvordan det egenligt skal streames. Alternativt kunne du jo lave et program til klienten, som modtog dette billed - det ser jeg som en klart lettere måde at løse det på, hvis altså du kan leve med det :)
Avatar billede cr2000 Nybegynder
20. april 2004 - 16:52 #7
Det kan jeg ikke leve med. Jeg ved det er forholdsvis simpelt. Har gjort det før. Det er bare længe siden.
Avatar billede jonat Nybegynder
21. april 2004 - 07:14 #8
Kode til at tage screenshot og gemme som jpg kan jeg hjælpe med:

procedure SaveScreenShotAsJpg(JpgFilename:string);
var
  Desktop: HDC;
  TempBitmap: TBitmap;
  TempJpg:TJPEGImage;      //NB 'jpeg' skal tilføjes "uses" , se længer nede ang. "uses"
begin
  TempBitmap  := TBitmap.Create;  //først oprettes et "tomt" Bitmap
  Desktop := GetDC(0);

    try
      TempBitmap.PixelFormat := pf32bit;    //Bitmap "påfyldes" skærmbilledet
      TempBitmap.Width      := Screen.Width;
      TempBitmap.Height      := Screen.Height;
      BitBlt(TempBitmap.Canvas.Handle, 0, 0, TempBitmap.Width, TempBitmap.Height, Desktop, 0, 0, SRCCOPY);
      TempBitmap.Modified := True;
    finally
      ReleaseDC(0, Desktop);
    end;

  TempJpg := TJPEGImage.Create;  // der oprettes et "tomt" jpg
  TempJpg.Assign(TempBitmap);    // jpg får indhold fra bitmap
  TempJpg.SaveToFile(JpgFilename); //jpg gemmes
  TempBitmap.Free; //der ryddes op. Dvs. hukommelse frigives
  TempJpg.Free;

end;



// Jonat...
Avatar billede cr2000 Nybegynder
21. april 2004 - 14:45 #9
Tak Jonat det var sgu fornemt :)

Så mangler jeg bare en som kan fortælle mig hvordan jeg sender det til en browser.
Avatar billede jonat Nybegynder
21. april 2004 - 16:30 #10
Ja. :-)

Det med at sende til browser kan jeg så bare ikke hjælpe med....

Men velbekom... :-D

Det er dejligt at kunne være behjælpelig...


// Jonat
Avatar billede cr2000 Nybegynder
22. april 2004 - 09:14 #11
Hmm... Det kan da umuligt være umuligt.

Ville jeg måske få noget ud af at kigge efter hvordan en webserver gør det?
Avatar billede jonat Nybegynder
22. april 2004 - 17:46 #12
Grunden til at jeg skrev jeg ikke kan hjælpe med at sende til browseren er at jeg er, ikke helt ny i delphi, men har ikke programmeret i mere end 3 år som min hobby, oh har ikke været inde under det med at sende ting via. internet. (jeg går stadig i folkeskolen... :-) ).

Hvorhenne er det den webside ligger?? Er det noget der skal uplodes via FTP? eller er den der tager screenshoot'et server for hjemmesiden, eller noget helt tredie??

// Jonat.
Avatar billede fixxxer Nybegynder
22. april 2004 - 17:57 #13
tag et kik på Indy's TIdTCPServer. Med den kan du kommunikere med et kald på en port fx. 1234, så er det bare et spørgsmål om at vide hvordan man skal håndtere det - jeg har forsøgt uden held, men det kan være du gør det rigtigt.

Det du skal sende til browseren er simpelthen JPEG-billedets bitdata fra start til slut, så skal det nok blive tolket af browseren som et billed :p
Avatar billede cr2000 Nybegynder
18. juni 2004 - 10:49 #14
Nogle som har fundet en løsning?
Avatar billede cr2000 Nybegynder
27. december 2005 - 12:47 #15
Hvor svært kan det være :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester