![]() |
Bitmap-Teil mit Positionsangaben über's Netz übertragen?
Guten Tag! :hi:
Ich schneide von einem TBitmap ein Rechteck ab und möchte dieses Stück über's Netz transportieren. An der anderen Seite muss das Stuck an die richtige Stelle wieder gezeichnet werden, es muss also auch die Positiuon mitgesendet werden. Wie mache ich das am Besten? Ich habe an ein TMemoryStream gedacht. Ich schreibe zuerst die Position in das Stream rein und dann die TBitmap-Daten. Ist das das richtige Vorgehen in meinem Fall? Ich bin ein Programmieranfänger, bin aslo auf Ihr fortgeschrittenes Wissen angewiesen. Wie würder Ihr so etwas machen? |
AW: Butmap-Teil mit Positionsangaben über's Netz übertragen?
Ich vermute, dass diese "Stücke" eine konstante Dimension haben.
So betrachtet, kannst du sie indizieren, dh. du schickst immer ne Nummer mit, Anhand der der Empfänger sie richtig positionieren kann. ~
Code:
Zuerst muss du dem Empfänger mitteilen, was für eine Dimension das ganze Bild hat und in wie viele Stücke es horizontal und vertikal unterteilt ist.
+-+-+
|1|2| +-+-+ |3|4| +-+-+ Weiters würde ich diese Stücke per JPEG komprimieren.. |
AW: Butmap-Teil mit Positionsangaben über's Netz übertragen?
Zitat:
|
AW: Butmap-Teil mit Positionsangaben über's Netz übertragen?
Hmm. dh du willst eig. nur (Pixel-) Veränderungen übertragen?
Einfach gehts, indem du die Dimension mitschickst (X, Y, Breite, Höhe) und im Anschluss der Datenstrom mit dem Bild. Kompakter gehts - glaube ich - folgendermaßen: Radiere alle gleichen Pixel im Bildausschnitt weg. Dadurch sorgst du dafür, dass die Entropie sinkt, weil dann sehr viele Zwischenräume entstehen (Nullen). Wenn du nun irgendeine (verlustfreie) Kompression anwendest, dürften die Daten richtig stark schrumpfen. Edit: Gehts dir um die Theorie oder um die Implementierung? |
AW: Butmap-Teil mit Positionsangaben über's Netz übertragen?
Bitmap via TCP verschicken - einfach mal die INDY 10 TCP DEMOS anschauen auf source forge .....
|
AW: Butmap-Teil mit Positionsangaben über's Netz übertragen?
Die zu übertragende Datenstruktur kann z.B. so aussehen
Delphi-Quellcode:
Auf der Empfängerseite musst du so lange Daten sammeln, bis die übertragene TotalLength erreicht ist.
TTransferBitmap = record
TotalLength : Integer; // Länge inklusive des Bitmaps Xpos, Ypos : Integer; // linke obere Ecke des Bitmap // Hier folgen die Nutzdaten des Bitmaps die man mit Bitmap.SateToStream() erhalten kann // Breite und Höhe sind im Bitmap selbst enthalten end;
Code:
Aber nur dann falls es sich um ein Foto aus der realen Welt handelt.
Weiters würde ich diese Stücke per JPEG komprimieren..
Für Screenshots ist die verlustbehaftete JPEG-Komprimierung nicht geeignet weil dadurch scharfe Kanten und Fonts an Schärfe verlieren. |
AW: Bitmap-Teil mit Positionsangaben über's Netz übertragen?
Dann wäre eher PNG oder TIFF geeignet
|
AW: Butmap-Teil mit Positionsangaben über's Netz übertragen?
Zitat:
@sx2008 Da fängt's schon an. Wie verschicke ist ein Record? [EDII] schon gefunden, sorry |
AW: Bitmap-Teil mit Positionsangaben über's Netz übertragen?
Vielen Dank an alle!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz