AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi [GR32] EInvalidGraphic "Bitmap ist ungültig", warum?
Thema durchsuchen
Ansicht
Themen-Optionen

[GR32] EInvalidGraphic "Bitmap ist ungültig", warum?

Ein Thema von OG Karotte · begonnen am 25. Jan 2010 · letzter Beitrag vom 25. Jan 2010
Antwort Antwort
OG Karotte
(Gast)

n/a Beiträge
 
#1

[GR32] EInvalidGraphic "Bitmap ist ungültig", waru

  Alt 25. Jan 2010, 20:25
Hallo zusammen,

ich lese ein JPEG-Bild aus einer Datei ein und möchte es mittels TImageView32 aus der Graphics32-Bibliothek anzeigen (und später mal weiter bearbeiten).

Das Einlesen funktioniert problemlos nur das Zuweisen klappt nicht.

Für das Zuweisen nutze ich folgenden Code:

Delphi-Quellcode:
jp := TMemoryStream.Create;
fs.Seek(ANodeData.JPEGOffset, soFromBeginning);
jp.CopyFrom(fs, ANodeData.JPEGLength);
jp.Seek(0, soFromBeginning);
imgSource.Bitmap.LoadFromStream(jp); //<-- hier erscheint der Fehler EInvalidGraphic 'Bitmap ist ungültig'
Ergänze ich folgende Zeile (nach dem 'seek')
jp.SaveToFile('test1.jpg'); und lade das Bild dann so:
imgSource.Bitmap.LoadFromFile('Test.jpg'); wird die letzte Zeile problemlos abgearbeitet und das Bild korrekt angezeigt.

Was mach' ich falsch ?
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: [GR32] EInvalidGraphic "Bitmap ist ungültig",

  Alt 25. Jan 2010, 22:54
Du lädst eine Jpeg-Datei in ein Bitmap ?
Klar dass das dann kracht. Wandele erst das Jpeg in ein Bitmap, wie das geht solltest du im Forum finden können.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
OG Karotte
(Gast)

n/a Beiträge
 
#3

Re: [GR32] EInvalidGraphic "Bitmap ist ungültig",

  Alt 25. Jan 2010, 22:59
Ok, hab es selbst gefunden:

In den Streamroutinen von TBitmap32 wird ein TBitmap-Objekt genutzt, während in den Fileroutinen ein TPicture-Objekt genutzt wird.
Da das TBitmap auch eine Bitmap und nicht ein JPEG erwartet kam es wohl zu dem Fehler. Dumm nur das in der Doku von TPicture gesprochen wird

Ich hab' nun noch ein Jpeg hinzugefügt und dies dann an das ImageView32 übergeben:

Delphi-Quellcode:
fs.Seek(ANodeData.JPEGOffset, soFromBeginning); // Daten aus Datei lesen
ms := TMemoryStream.Create; // Memorystream erzeugen
ms.CopyFrom(fs, ANodeData.JPEGLength); // Mit den Daten aus der Datei füllen
ms.Seek(0, soFromBeginning); // Zeiger auf erste Position zurücksetzen
jp := TJPEGImage.Create; // JPEG erzeugen
jp.LoadFromStream(ms); // Mit Daten aus Stream füllen
imgSource.Bitmap.Assign(jp); // an ImageView32 übergeben
  Mit Zitat antworten Zitat
OG Karotte
(Gast)

n/a Beiträge
 
#4

Re: [GR32] EInvalidGraphic "Bitmap ist ungültig",

  Alt 25. Jan 2010, 23:02
@turboPASCAL: Das direkte Laden des jpg als Datei funzte ja, nur nicht das Laden aus dem Stream (s.o.)
  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 23:34 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