![]() |
AW: Programm auf Windows Server 2016 (Citrix) langsam
Erst mal vielen Dank an alle, die mich hier mit ihren Kenntnissen unterstützt haben.
Ich habe mit verschiedenen Grafikformaten getestet und speichere die Kopfbögen jetzt als Bitmap. Ich hätte dieses Ergebnis so nicht erwartet. Die neuen Grafiken sind jetzt, da Bitmap statt 1 MB 26 MG groß. Jetzt dauert das Laden des Reports keine 3 Sekunden mehr. Ich weiß jetzt zwar nicht, was letztendlich passiert ist, dass es plötzlich langsam wurde, aber das Problem ist gelöst. Frank |
AW: Programm auf Windows Server 2016 (Citrix) langsam
Das ist krass, hätte ich auch nicht erwartet.
Kommt drauf an wieviele Farben du im Bitmap hast. Sonst könntest Du versuchen das Bild mit weniger Farbtiefe zu speichern. Dann wird es kleiner. |
AW: Programm auf Windows Server 2016 (Citrix) langsam
Zitat:
Um ein Bild nach Gif zu konvertieren kannst Du beispielsweise
Code:
verwendenprocedure ConvertBMP2GIF; var bmp: TBitmap; gif: TGIFImage; begin gif := TGifImage.Create; try bmp := TBitmap.Create; try bmp.LoadFromFile('MyBitmap.BMP'); gif.Assign(bmp); finally bmp.Free; end; gif.SaveToFile('MyBitmap.GIF'); finally gif.Free; end; end; hth Ha Joe |
AW: Programm auf Windows Server 2016 (Citrix) langsam
eine andere Methode wäre,
- TCP Server auf Client starten, der auf Port lauscht (Indy 10) - Bild aufnehmen / im Hintergrund zeichnen (interne Canvas) - Bild optimieren (kleinere Farbtiefen) - Bild in kleine Quadrate zerlegen (erfordert ggf. größere Width und Height - je nach Anwendungsfall) - Bild Stückchen für Stückchen per zLib verkelinern und mit ID versehen - Bild einen Protokoll vergeben - Header (Größe, Farben, Teile-ID, ...) - Bild einen Protokoll vergeben - Body (raw-Bytes für die Daten) - Puffer für Bild vorab berechnen (max. 4.096 Bytes - je nach Qualität der Leitung) - TCP Verbindung aufbauen (Indy 10 - die unterstützen SSL, kein Indy 9 !) - Bild-Daten senden - ggf. Prüfsumme mit dazu - Bilddaten zusammen führen - zLib Daten wieder de-packen - Daten in Hintergrund Canvas speichern - mit BitBlt auf TPainter / TPaintBox kopieren (so würd ich das machen) |
AW: Programm auf Windows Server 2016 (Citrix) langsam
Wie groß ist denn das Bitmap? Ich hab hier eines rumliegen mit ca. 14 MiB, das 2560x1920 Pixel hat. 26 MB ist ja fast doppelt so groß und muss demnach noch wesentlich mehr Pixel haben. Alles absurde Abmessungen für einen simplen Kopfbogen IMO, wenn es um Papier bis A3 oder so geht.
Grüße Dalai |
AW: Programm auf Windows Server 2016 (Citrix) langsam
Nja, bei 32 Bit wären das auch nur so etwas 2500*2500 Pixel, also ein halbes A4 mit 600 DPI :stupid:
|
AW: Programm auf Windows Server 2016 (Citrix) langsam
Zitat:
Apropos Bitmap 1: Das verwenden von nur 256 Farben bringt nichts wenn du im RGB Format speicherst Apropos Bitmap 2: Du kannst eine Lauflängenkodierung zum speichern verwenden, das ist ein einfaches verlustfreies Kompressionsverfahren welches überwiegend große Bereiche von gleichen Pixeln (meistens Hintergrund) gut verarbeiten kann. Außerdem könntest Du die Bilder in Vektorgrafiken umwandeln, dass wäre für die meisten Hintergrundbilder naturlich die speicherplatzsparendste Möglichkeit und wäre eher in Bruchteilen von Sekunden geladen. Helfen kann Dir dabei Autotrace [1]. cu Ha-Joe [1] ![]() |
AW: Programm auf Windows Server 2016 (Citrix) langsam
JPEG ist ja ausschließlich für Fotos geeignet. Ich bezweifle, dass der Briefbogen aus Fotos besteht. Für alles, was kein Foto ist, nimmt man Vektorgrafiken, also normalerweise SVG. Da Reportgeneratoren in der Regel keine verlustfreie Einbindung von SVG unterstützen sondern diese rastern, habe ich mir selbst eine Konvertierung in EMF geschrieben. Häufig in Reports verwendete Vektorgrafiken liegen als Performancegründen direkt als EMF in den Stammdaten vor. Im Repository eines Projekts ist im Normalfall das Icon die einzige Binärdatei.
:duck: |
AW: Programm auf Windows Server 2016 (Citrix) langsam
OK, da noch weitere Hinweise gekommen sind, versuche ich mal eine Zusammenfassung...
Die Bildgröße ist 2480 x 3508 (A4 300 dpi). Reduziere ich die Farbe auf 256, ist die BMP noch ca. 8,5 MB groß. Dabei ist die Qualität immer noch sehr gut, also vom Basisbild eigentlich nicht zu unterscheiden. Gestaunt habe ich bei Umwandlung in GIF (wie von hanvas empfohlen). Bei GIF erhalte ich die kleinsten Dateien (280 kB) mit der besten Qualität. Ich habe allerdings noch nicht probiert, wie schnell ReportBuilder dies dann unter Windows Server 2016 zeichnet. Ich habe mich auch mit unserem Netzwerk und Citrix Guru beraten, was überhaupt passiert ist. Die Zeichenroutinen in Delphi auf ein Canvas sind ja Bitmap bezogen. Dafür braucht es keine Dekomprimierung oder sonstige Berechnungen. Und deshalb ist wohl Bitmap am schnellsten. Da es bei Start der Anwendung unter Windows 11 keine Probleme gibt, sondern nur bei Start unter Windows Server 2016, liegt es nicht an Citrix, nicht am Netzwerk etc. sondern an den Zeichenroutinen im Zusammenhang mit dem Betriebssystem. Wir vermuten, dass irgendein Windows Update hier ursächlich verantwortlich ist. Da es momentan schön schnell läuft, will ich nicht mehr so viel Zeit investieren. Ich probiere das noch mit GIF - Dateien. Dann probiere ich noch, die Bilder selbst im Code in BMP umzuwandeln (geht wohl im DataSet mit OnGetData). Für mehr habe ich momentan keine Zeit ;) Also - noch mal vielen Dank an Alle! Frank |
AW: Programm auf Windows Server 2016 (Citrix) langsam
was spricht denn dagegen, sich die Druckerrei seines Vertrauens zu beauftragen,
eine Vorlage in Print zu geben, die dann auf 500 A4 Blatt in den Drucker eingesetzt werden kann ? man braucht sich dann um Schlieren im Bild, die durch den mehrmaligen (Eigenen) Druck ergibt, nicht mehr sorgen, und nur noch den eigentlichen Text, den, so nehme ich mal an, unter einen Laserdrucker (was das Economischte wäre) gedruckt wird. Dann kann man sich ja auch noch überlegen, ob am Rand Brieffalz-Marken gedruckt werden sollen (also schon schon von der Druckerrei kommend - da ja Hauseigene Drucker selten über einen Rand von 5mm hinaus kommen). Falls denn das Saison bedingt ist, kann man ja einfach die Blätter tauschen. Bei modernen Druckern hat man ja mehrere Einschub-Möglichkeiten. ... Zumal man dann auch die weiteren Druckkosten für die Rückseite des Briefbogens sparrt, wo dann meinst die AGB's zu finden sind. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 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-2025 by Thomas Breitkreuz