AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

"MetaFile.Scanline"

Ein Thema von Bjoerk · begonnen am 5. Feb 2014 · letzter Beitrag vom 5. Feb 2014
Antwort Antwort
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#1

"MetaFile.Scanline"

  Alt 5. Feb 2014, 11:15
Weiß jemand, ob es etwas Vergleichbares wie Scanline für Metafiles gibt?
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: "MetaFile.Scanline"

  Alt 5. Feb 2014, 11:32
Ein Metafile ist eine gespeicherte Abfolge von Windows GDI Aufrufen die man später wieder abspielen kann.
Um effizient auf Pixelebene zugreifen zu können musst du es in ein Bitmap zeichen.
bitmap.Canvas.Draw(0,0, metafile);
fork me on Github
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: "MetaFile.Scanline"

  Alt 5. Feb 2014, 13:02
OK. Thanx. Dann ist das Hin und Rückspeichern in eine Bitmap wohl nicht zu umgehen.

BTW, in verschieden Threads wird darauf hingewiesen, daß die rgb bei Scanline anders rum sind als bei einer Bitmap. Bei einer 32 Bit Bitmap (also PixelFormat pf32bit) konnte ich das bis jetzt nicht feststellen. Wurde das seitens Delphi mal geändert oder mach ich was falsch?
Delphi-Quellcode:
function RGB32ToColor(Value: TRGB32): TColor;
begin
  Result := ColorToRGB(RGB(Value.R, Value.G, Value.B));
end;

function ColorToRGB32(Value: TColor): TRGB32;
begin
  Result.R := GetRValue(ColorToRGB(Value));
  Result.G := GetGValue(ColorToRGB(Value));
  Result.B := GetBValue(ColorToRGB(Value));
  Result.A := 0;
end;
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: "MetaFile.Scanline"

  Alt 5. Feb 2014, 14:49
Wenn du die Funktionen so benutzt, merkst du das gar nicht. Intern sind 32 Bit Farbwerte (zumindest in der Windows GDI) im Format $xxBBGGRR gespeichert, auch wenn man von "RGB" spricht. Die Funktionen berücksichtigen dies aber schon.

Edit: Setze mal die Color-Eigenschaft eines Formulars auf $00FF0000 -> Blau, nicht Rot.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: "MetaFile.Scanline"

  Alt 5. Feb 2014, 15:19
Als Bytes interpretiert steht da aber auch wieder RR GG BB xx im Speicher.

Zitat:
OK. Thanx. Dann ist das Hin und Rückspeichern in eine Bitmap wohl nicht zu umgehen.
Metafile in Bitmap geht ja noch,
aber bei Bitmap in Metafile wird es schwer bis nahezu unmöglich.
$2B or not $2B
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: "MetaFile.Scanline"

  Alt 5. Feb 2014, 15:23
Ja, da zerstört man sich dann die Vektorgrafik.
  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 02:27 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