AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi [GDI+]Bild wird nicht richtig geladen
Thema durchsuchen
Ansicht
Themen-Optionen

[GDI+]Bild wird nicht richtig geladen

Ein Thema von rollstuhlfahrer · begonnen am 1. Jan 2011 · letzter Beitrag vom 1. Jan 2011
Antwort Antwort
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#1

[GDI+]Bild wird nicht richtig geladen

  Alt 1. Jan 2011, 14:40
HI,

ich versuche mit Hilfe von GDI+ verschiedene Bilder zu laden. Leider klappt das nicht bei allen. So leifert Windows XP 4 Beispielbilder mit, von denen nur 3 richtig dargestellt werden. Unterbau der Lade-Funktion ist folgendes:
Delphi-Quellcode:
function LoadImage(FileName: TFileName; Image: TBitmap): boolean;
var
  graphics: TGPGraphics;
  Source: TGPImage;
begin
  // First: Load the Image from file
  Source := TGPImage.Create(FileName);

  Result := (Source.GetLastStatus = Ok);
  if Result then
  begin
    // Second: Apply changes to the destination
    Image.Width := Source.GetWidth;
    Image.Height := Source.GetHeight;

    // Third: Get Device Context to draw
    graphics := TGPGraphics.Create(Image.Canvas.Handle);

    // 4.: Draw! ( There must be some ERROR, cause on some Pictures this doesn't work in the right way! )
    graphics.DrawImage(Source, 0, 0);

    // 5.: Free objects
    graphics.Free;
  end;

  Source.Free;
end;
Wie hier bei Schritt 4 angegeben, funktioniert das Zeichnen des GDI+-Bildes in ein TBitmap nicht sonderlich gut. Zur weiteren Verwendung des Bildes brauche ich aber das Bild möglichst in einem TGraphic-kompatiblen Objekt. TBitmap eignet sich dazu am Besten (wegen .Canvas).
Wie das aussieht, wenn ein Bild nicht gut geladen wurde, sieht man im Anhang. Die Windows-Bild-und Faxanzeige schafft es aber trotzdem, das Bild richtig darzustellen. Außerdem tritt der Fehler nicht bei allen Bildern eines bestimmten Typs auf und hängt nicht mit dem Dateinamen zusammen.

Bernhard
Miniaturansicht angehängter Grafiken
zeichnenbug.png  
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: [GDI+]Bild wird nicht richtig geladen

  Alt 1. Jan 2011, 16:21
Hi Bernhard,
ich bin wahrscheinlich mit Blindheit geschlagen, was passt den nicht bei dem Beispielbild?
Und, ich bin eine Fan von GDI+, aber warum Du es hier verwendest erschließt sich mir noch nicht....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#3

AW: [GDI+]Bild wird nicht richtig geladen

  Alt 1. Jan 2011, 19:34
Ok, im Hintergrund ist ein überarbeiteter TOpenPictureDialog, welcher seine Vorschau mit Hilfe von GDI+ erledigt. Das dazugehörige Programm ist ein Tool, welches aus mehreren Bildern ein mehrseitiges TIFF-Bild machen soll. Diese Tätigkeit funktioniert auch so weit.
Nur hapert es an der Vorschau. Das Bild wird geladen, aber nicht "vollflächig". Das TBitmap bekommt jetzt hier beispielhaft die Werte 800x600 für Breite und Höhe zugewiesen. Jetzt beauftrage ich GDI+, das Bild vollflächig zu zeichnen. Ergebnis ist, dass das Bild irgendwo oben links in der Ecke klebt (0, 0) und das TBitmap nicht ausfüllt. Dass das Bild oben links in der Ecke klebt, ist gewollt, weil als Startkoordinaten ja auch (0, 0) angegeben wird. Nur ist das Bild nicht in Originalgröße auf das TBitmap gezeichnet worden.
Dieser Effekt tritt nicht bei allen Bildern auf, sondern nur bei bestimmten. Das ist das große Problem dabei. Es funktioniert zwar, aber nicht bei 100% der Möglichkeiten. Eines der Beispiele, wo das eben nicht der Fall ist, ist das Bild "Blaue Berge.jpg" von den Windows XP-eigenen Beispielbildern. Die anderen 3 mitgelieferten Bilder funktionieren wie gewollt.
Nochmal: Das Problem ist, dass bei einem Teil der Bilder nicht, wie gewünscht, vollflächig gezeichnet wird.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  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 11:42 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