Re: Screenshot über Sockets als JPEG versenden
Zitat:
Delphi-Quellcode:
gehen.
TImage.Picture.Graphic.SaveToStream
|
Re: Screenshot über Sockets als JPEG versenden
Mein Problem ist erstmal nur:
Wie bekomm ich das JPEG Bild in den stream und da auch erfolgreich wieder raus, sodas ich das dann auf dem Imahe auf dem anderen Computer sehe? |
Re: Screenshot über Sockets als JPEG versenden
Liste der Anhänge anzeigen (Anzahl: 1)
hi neuni!
schau dir mal das projekt im anhang an. und ins jpg konvertierst du bitmaps so: uses jpeg;
Delphi-Quellcode:
procedure TForm1.Saveasjpg1Click(Sender: TObject);
var jpg: TJpegImage; begin //init jpg := nil; if savedialog1.Execute then begin try jpg := TJpegImage.Create; jpg.Assign(image1.Picture.Bitmap); //Hier können JPG-Eigenschaften wie Kompression, Größe usw. gesetzt werden jpg.SaveToFile(SaveDialog1.filename); finally jpg.Free; end; end; end; |
Re: Screenshot über Sockets als JPEG versenden
Danke, das is gut...aber ich wollte das ganze mit den sockets programmieren (Frag bitte nicht warum :-D )
Also die ausgabe vom "JPEG-Umwandler" könnte ich ja per
Delphi-Quellcode:
in nen Stream packen, oder?
jpg.SaveToStream(stream);
So, nun kann ich ja diesen Stream verschicken.
Delphi-Quellcode:
müsste gehen oder?
clientsocket1.Socket.SendStream(stream)
PS: Müsste der stream dann nen TStream sein, oder nen TFileStream? |
Re: Screenshot über Sockets als JPEG versenden
das muesste doch aehnlich funken wie bei den indy sockets
und stream ist da das richtige. |
Re: Screenshot über Sockets als JPEG versenden
Jetzt hab ich dat einfach so gemacht, aber dann kommt nen "ABstrakter Fehler":
Delphi-Quellcode:
:wall: :wall: :wall:
procedure TForm1.Button1Click(Sender: TObject);
var jpg: TJpegImage; begin //init jpg := nil; try jpg := TJpegImage.Create; jpg.Assign(image1.Picture.Bitmap); //Hier können JPG-Eigenschaften wie Kompression, Größe usw. gesetzt werden jpg.SaveToStream(stream); finally jpg.Free; end; end; |
Re: Screenshot über Sockets als JPEG versenden
Keiner ne idee? :cat:
|
Re: Screenshot über Sockets als JPEG versenden
Hi Neuni,
wenn ich mich nicht irre dann musst du den Stream auch erzeugen. Außerdem würde es uns helfen zu wissen WO der abstrakte Fehler auftritt (beim Start, beim jpg.Assign, ...) Greetz alcaeus |
Re: Screenshot über Sockets als JPEG versenden
Hallo,
abstrakter Fehler heißt du nimmst eine Methode eines Objektes für die keine Implementierung existiert. Ich vermute einfach mal dein "stream" ist ein TSream - das geht natürlich nicht da die ganze Klasse Abstract ist. Nimm doch einfach z.B. TMemoryStream oder wie das Ding hies! |
Re: Screenshot über Sockets als JPEG versenden
Also erstellt hab ich den stream ja jetzt eigendlich mit Tmemorystream.create, und dat speichern in den stream geht nun auch, ohne dass er was sagt, aber wie bekomm ich das bild nun wieder aus dem stream raus?
Delphi-Quellcode:
Wenn ich
procedure TForm1.Button1Click(Sender: TObject);
begin stream := Tmemorystream.Create; end; procedure TForm1.Button2Click(Sender: TObject); var jpg: TJpegImage; begin //init jpg := nil; try jpg := TJpegImage.Create; jpg.Assign(image1.Picture.Bitmap); //Hier können JPG-Eigenschaften wie Kompression, Größe usw. gesetzt werden jpg.SaveToStream(stream); finally jpg.Free; end; end;
Delphi-Quellcode:
nehme, dann kann ich dat bild speichern, das geht auch, aber wie bekomm ichs ins image ohne zwischenspeichern?
stream.SaveToFile('C:\lolka.jpg');
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:04 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