Directory Contents Search << >>


Die Delphi TImage-Komponente

Achtung! Diese Seite ist Teil der noch unvollständigen Dokumentation der Alpha-Version von DaVinci 4.

Die von Borland mit Delphi 1.0 eingeführte Komponente TImage hat leider schwerwiegende Qualitätsmängel und eignet sich daher nur begrenzt zur Anzeige von Grafiken.

Falls Sie eine neue Anwendung entwickeln, sollten Sie über den Einsatz der mit DaVinci lizenzierten Komponente TDavinci nachdenken. Für eine bestehende Anwendung basierend auf TImage prüfen Sie bitte die folgende Checkliste, ob die Probleme auf Ihre Anwendung zutreffen:

Fehler der Delphi TImage-Komponente

Nur Delphi 1.0: Die Steuerung der Farbpalette zur Anzeige von Grafiken mit 256 Farben auf Bildschirmen mit 256 Farben funktioniert nicht korrekt. Daher wird das Bild in einem TImage-Objekt häufig mit völlig verzerrten Farben angezeigt.

Delphi 1.0 und 2.0: Beim Drucken von Bitmaps mit 256 Farben auf Rechnern mit Bildschirmen mit 256 Farben mittels der Methode TForm.Print werden Farbpaletten falsch gehandhabt, so daß das Bild auch auf einem Schwarzweißdrucker bis zur Unkenntlichkeit verzerrt wird. Lösungsansatz: Bitmap mit DitherTo4 oder ConvertDIB auf weniger als 256 Farben reduzieren.

Delphi 1.0 und 2.0: TBitmap ignoriert beim Einlesen von BMP-Dateien die Elemente biXPelsPerMeter und biYPelsPerMeter. Dadurch gehen die Auflösungsangaben (Dot Per Inch...) der Bitmap verloren.

Qualitativ minderwertige Ergebnisse

Die Methode TForm.Print druckt basierend auf einer Art Screenshot, d.h. die Auflösung von hochauflösenden Bitmaps und MetaFiles wird auf die Auflösung des Bildschirms (üblicherweise 96 dpi) verringert und das Bildschirmfoto dann auf die Druckergröße (üblicherweise 600 dpi) gebracht. Dies führt sowohl bei MetaFiles als auch bei Bitmaps zu sehr geringer Druckqualität. Lösungsansatz: Anstelle von TForm.Print das Printer-Objekt mit Printer.StartDoc erzeugen und mit TImage.Picture.StretchDraw auf Printer.Canvas ausgeben.

Nur Delphi 1.0: TImage wandelt zur Anzeige von Bitmaps diese ins Device Dependend Format um. Dadurch wird neben Speicher für die Originaldaten Speicher für die Kopie im Device Dependend Format belegt. Bei einer DIB mit 1 Bit je Pixel (z.B. ein Telefax) und einem TrueColor Grafikkartentreiber steigt der Speicherbedarf auf das 25-fache, für ein gewöhnliches DIN A4 Telefax somit ca. 24 MByte. Lösungsansatz: Für monochrome Bitmaps (biBitCount=1) die Umwandlung in eine DDB mit der Funktion BitmapFromDIB durchführen, wie im DAVDELPH Beispielprogramm vorgeführt.

Häufig vermisste Funktionen

Die Ausgabe von Bitmaps mit mehr als 256 Farben Farbtiefe auf Bildschirmen mit 256 oder weniger Farben erfolgt sehr langsam und in mangelhafter Qualität, da kein Diffusionsverfahren benutzt wird, selbst wenn die Windows-Version eine solche mit dem Betriebssystem zur Verfügung stellt. Lösungsansatz: Die Bitmap mit DitherTo8 auf weniger Farben reduzieren wie im DAVDELPH Beispielprogramm vorgeführt.

TImage stellt keine Schiebeleisten zur Verfügung mit der sich der Anwender einen Ausschnitt des Bildes vergrößert ansehen könnte. Beim Aktivieren der Stretch-Funktion geht das Seitenverhältnis zwischen Höhe und Breite der Grafik verloren.

In der 32-Bit-Version unterstützt TImage nur noch die Verwendung von Enhanced Metafiles. Windows 3.1 Metafiles werden nicht mehr unterstützt. Es ist daher kaum möglich, einen Quellcode sowohl für 16-Bit als auch für 32-Bit Programme zu benutzen.

Das mit DaVinci mitgeliefertem Beispiel DAVDELPH zeigen Ihnen, wie Sie einige dieser Probleme durch geschickte Programmierung umgehen können.

Schnelleinstieg mit Borland TImage-Komponente

-


Valid HTML 4.01!