AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Bitmap nach Assign leer. Warum?
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmap nach Assign leer. Warum?

Ein Thema von freejay · begonnen am 9. Nov 2020 · letzter Beitrag vom 9. Nov 2020
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.192 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Bitmap nach Assign leer. Warum?

  Alt 9. Nov 2020, 11:49
Hi zusammen
Graphic ist immer gefüllt und egal welches Bildformat geladen ist, die Konvertierung zu BMP sollte ohne Probleme funktionieren.
Image1.Picture.Bitmap ist wirklich nur gefüllt wenns ein Bitmap ist. Picture.Graphic ist quasi die Verallgemeinerung und ist immer gefüllt wenn ein Bild geladen ist.
Fast hätte ich dir jetzt widersprochen, denn was ich zuerst gelesen habe:
Graphic ist immer gefüllt
Und das stimmt so nicht - TImage.Picture.Graphic ist nur dann gefüllt, wenn da auch eine Grafik (in den möglichen Formaten) enthalten ist. Der Vorteil des Programmierers: er kann auf die Grafik zugreifen, ohne deren Format zu kennen (zumindest vorerst).

Am Ende hab ich dann doch noch deinen Schlussatz gesehen:
Image1.Picture.Bitmap ist wirklich nur gefüllt wenns ein Bitmap ist. Picture.Graphic ist quasi die Verallgemeinerung und ist immer gefüllt wenn ein Bild geladen ist.
Im vorliegenden Fall könnte er Image1.Picture.Bitmap auf NIL abfragen:
Delphi-Quellcode:
if not (Image1.Picture.Bitmap = NIL) then
begin
// hier etwas mit der Bitmap anstellen.
end;
Wenn der Ausdruck False ist (if Not, also False, ist nicht der Fall) ist eine Grafik im Bitmapformat vorhanden. Andernfalls ist keine Bitmap vorhanden, aber eventuell eine Metagraphik.

Du kannst aber bei TPicture auch eigene Grafikformate regisrieren:

Delphi-Quellcode:
TPicture.RegisterFileFormat('NEF','NEF Format',TWICImage);
TPicture.RegisterFileFormat('TIFF','TIFF Format',TTiffGraphic);

Alle Klarheiten beseitigt?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
273 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Bitmap nach Assign leer. Warum?

  Alt 9. Nov 2020, 12:54
Mein lieber Herr Gesangsverein! Da hab' ich ja wieder mal ordentlich was gelernt. Trotz über 20 Jahren Delphi bin ich im Bereich Grafik nämlich ziemlich blank...

Danke an alle!
[Delphi 11.3.1 Enterprise; Win10/11; MySQL; VCL]
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#3

AW: Bitmap nach Assign leer. Warum?

  Alt 9. Nov 2020, 13:08
Im vorliegenden Fall könnte er Image1.Picture.Bitmap auf NIL abfragen:
Das wird nicht viel nützen, denn allein der Aufruf von Bitmap löscht eine eventuell vorhandene Graphic-Instanz, wenn sie kein TBitmap ist. Bitmap wird also niemals nil sein.

Übrigens genau das passiert im Originalcode. In der Zeile BmpTmp.Assign(Image1.Picture.Bitmap); wird ein eventuell vorhandenes (non-Bitmap-)Image gelöscht und eine leere TBitmap zurückgegeben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 20:00 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