AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi http server & stream...
Thema durchsuchen
Ansicht
Themen-Optionen

http server & stream...

Ein Thema von seppi.tm · begonnen am 21. Nov 2008 · letzter Beitrag vom 23. Nov 2008
Antwort Antwort
seppi.tm

Registriert seit: 3. Jul 2007
44 Beiträge
 
#1

http server & stream...

  Alt 21. Nov 2008, 14:00
hallo habe mal ne frage zu meinem Programm code ich habe auf on command.get bei meinem idhttp folgendes:

Delphi-Quellcode:
...
var
pic:tbitmap;
picj:tjpegimage

...

 pic:=pic.Create;

 imagelist1.GetBitmap(strtoint(jvlistview1.Items.Item[strtoint(Arequestinfo.Params.Text)].SubItems[1])-1,pic);
 picj.Assign(pic);
 picj.SaveToFile('c:\tmp'+Arequestinfo.Params.Text);
 AResponseInfo.ContentType:='image/jpeg';
 AResponseInfo.ContentStream:=TfileStream.Create('c:\tmp'+Arequestinfo.Params.Text, fmOpenRead + fmShareDenyWrite);
 try
 deletefile('tmp'+Arequestinfo.Params.Text);
 except
 end;
das document auf das man zugreift ist picture.jpg?1

aber im Browser stehen immer nur Fehler oder halt das Dokument (also nen text mit: "http://localhost/picture.jpg?1") was mache ich hier falsch wie mache ich es das er das bild anzeigt?
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: http server & stream...

  Alt 21. Nov 2008, 14:31
Hast du mal versucht, das Bild nicht sofort wieder zu löschen?

Alternativ: Nicht als Datei speiochern, sondern als MemoryStream, und den dann irgendwann später freigeben ...
  Mit Zitat antworten Zitat
seppi.tm

Registriert seit: 3. Jul 2007
44 Beiträge
 
#3

Re: http server & stream...

  Alt 23. Nov 2008, 09:08
Ja als memorystream wäre mir eh lieber aber naja dann macht er auch nichts ... das geht halt auch nicht ^^ woran kann das liegen?
  Mit Zitat antworten Zitat
seppi.tm

Registriert seit: 3. Jul 2007
44 Beiträge
 
#4

Re: http server & stream...

  Alt 23. Nov 2008, 09:40
Danke für eure hilfe die idee mit dem memorystream war gut hier meine lösung:

Delphi-Quellcode:
...
var
  pic:Tbitmap;
  picj:Tjpegimage;
  str:Tmemorystream;
...

    //Objekte erstellen
    pic:=tbitmap.Create;
    str:=tmemorystream.Create;
    picj:=TJPEGImage.Create;
    picj.CompressionQuality:=100;

try
      //Bild auslesen und in jpg umwandeln
      imagelist1.GetBitmap(strtoint(jvlistview1.Items.Item[strtoint(trim(Arequestinfo.Params.Text))].SubItems[1])-1,pic);
      picj.Assign(pic);
      picj.SaveToStream(str);

        //ImageHeader und bild übergeben
        AResponseInfo.ContentType:='image/jpeg';
        AResponseInfo.ContentStream:=str;

finally
        //FREEEEE!!!einself
        pic.Free
        str.Free
        picj.Free
end;
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: http server & stream...

  Alt 23. Nov 2008, 10:34
Und das funktioniert? Kann ich mir gar nicht vorstellen da du den Stream ja wieder frei gibst und somit nach zurückkehren der Methode der Stream gar nicht mehr verfügbar ist und somit auch nichts versendet werden kann.
Du solltest den Stream in der Methode anlegen (kann auch eine lokale Variable sein) aber NICHT freigeben. Darum kümmert sich die http-Komponenten wenn der Stream vollständig versendet wurde.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
seppi.tm

Registriert seit: 3. Jul 2007
44 Beiträge
 
#6

Re: http server & stream...

  Alt 23. Nov 2008, 13:16
Ja ^^ das habe ich auch wieder rausgenommen ^^ habe ich auch gemerkt^^
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: http server & stream...

  Alt 23. Nov 2008, 14:20
Ich glaube du brauchst noch nichtmal ein (jpeg)-Bild. Es reicht das Bild einfach in einen Filestream zu laden und den zu übergeben.
Was das für eine Art von Bild ist, interessiert den Server wenig.

Edit: Ich sehe gerade, du holst die aus einer ImageList. Vielleicht sollte man das dann eher in einer ObjectList in Streams speichern.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz