AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

BitBlt und Transparenz

Ein Thema von EWeiss · begonnen am 4. Mai 2015 · letzter Beitrag vom 11. Mai 2015
Antwort Antwort
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#1

AW: BitBlt und Transparenz

  Alt 4. Mai 2015, 17:24
Was heißt Pixelweise Zeichnen? Im Sinne von selber? Da wird sowieso standartmässig immer ein Alphawert von 255 verwendet.
BitBlt wird mit SRCCOPY benutzt, was die PerPixel-Werte überträgt. Ein Rendertarget in Windows ist IIRC standartmässig 32Bit.
Du könntest (wenn du unbedingt von Fenster zu fenster kopieren musst) auch MaskBlt mit einer komplett nicht transparenten Maske verwenden.
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: BitBlt und Transparenz

  Alt 4. Mai 2015, 17:31
Zitat:
Was heißt Pixelweise Zeichnen? Im Sinne von selber?
Seht euch doch die Bilder an die sagen doch alles..
Transparent und mit
Delphi-Quellcode:
GDIP_DrawLine(Graphics, 0, n64 + 1, rc.Right, n64 + 1, 1, SKAERO_ColorARGB
  (255, RGB(255, 255, 0)));
kein Problem das Child Window bleibt undurchsichtig.

Mit Bitblt halt nicht.

Was ist da nicht zu verstehen.

gruss

Geändert von EWeiss ( 4. Mai 2015 um 18:03 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: BitBlt und Transparenz

  Alt 4. Mai 2015, 18:07
Ich bin ja auch so was von bescheuert.
Rede selbst davon das ich die Pixel zeichnen will und verwende anstelle von Paint -> Copy

So funktioniert es jetzt.

Zitat:
Das Parent-Window darf an der Stelle, an der das Spektogramm darstellt wird, einfach nicht transparent sein.
Wurde also wiederlegt geht auch dann wenn das HauptFenster transparent ist.
War mir vorher schon klar, nur wie das war der Knackspunkt.

  BitBlt(PaintDC, 0, 0, Width, Height, BuffBMP.Canvas.Handle, 0, 0, SrcPaint);
Zitat:
BitBlt wird mit SRCCOPY benutzt, was die PerPixel-Werte überträgt.
NÖ es kopiert von einem Device Contex zum andern das komplette Bild.

Das trifft dann wohl eher für SRCPAINT zu.
Hier werden die PerPixel-Werte gezeichnet.

Zitat:
Ein Rendertarget in Windows ist IIRC standartmässig 32Bit.
Aber nicht mehr wenn ich es mit 8Bit austausche. (Was ich in dem Fall tue.)

gruss

Geändert von EWeiss (11. Jul 2019 um 15:43 Uhr)
  Mit Zitat antworten Zitat
Medium

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

AW: BitBlt und Transparenz

  Alt 5. Mai 2015, 01:01
Ei ei ei, du hast letztlich ja wieder einen Ton am Hals, Mamma mia. Eine Zeit lang warst du ja relativ angenehm zu lesen, aber diese unterschweligen Angriffe und knappen Infos mit anschließendem Lächerlichmachen von Klärungsfragen sind kein sehr hilfsförderndes Klima. Ich dachte echt, du hättest die "kollegiale Kurve" gekriegt.
"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
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: BitBlt und Transparenz

  Alt 5. Mai 2015, 02:30
Ei ei ei, du hast letztlich ja wieder einen Ton am Hals, Mamma mia. Eine Zeit lang warst du ja relativ angenehm zu lesen, aber diese unterschweligen Angriffe und knappen Infos mit anschließendem Lächerlichmachen von Klärungsfragen sind kein sehr hilfsförderndes Klima. Ich dachte echt, du hättest die "kollegiale Kurve" gekriegt.
Du solltest mal besser lesen..
Ich gebe nur das zurück was man mir zukommen lässt.

Bei solchen Fragen und Feststellungen die so einfach nicht stimmen!
Zitat:
Was heißt Pixelweise Zeichnen? Im Sinne von selber?
Zitat:
Das Parent-Window darf an der Stelle, an der das Spektogramm darstellt wird, einfach nicht transparent sein.
Kommt man sich einfach verarscht vor.

Ich könnte viele dieser Beispiele nennen die nichts mit mir direkt zu tun haben sondern hier gang und gäbe sind.
Es scheint aber so das ihr das schon gar nicht mehr bemerkt.
Die Leute werden auf die Schüppe genommen und wenn man sich wehrt ist man der Dumme.
Ist hier Alltag. Aber sei's drum.

OK das ich so dumm war und anstelle von Zeichnen Kopiert habe ist mein Problem.
Kann aber damit Leben.

Aber egal.
Hast mir deine Meinung gesagt und gut ist. (Gebe ich nichts drum)
Spüre ich da einen gewissen Frust das ich mein Problem selbst gelöst habe?

Man kann nicht jedem genehm sein.

gruss

Geändert von EWeiss ( 5. Mai 2015 um 04:01 Uhr)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

AW: BitBlt und Transparenz

  Alt 5. Mai 2015, 05:38
Kann mich Medium nur anschließen, mir ist es bei deinen Threads in letzter Zeit auch aufgefallen. Ich verstehe auch nicht, wovon du dich angegriffen fühlst. Ich sehe da nur normale, sachliche Fragen. Du scheinst irgendwie Schwierigkeiten zu haben, dich in andere Menschen hineinzuversetzen. Das Problem ist: Deine Eingangsposts enthalten im Schnitt 10 % der Informationen, die nötig wären, um dir zu helfen, aber du merkst es nicht mal, weil für dich ja klar ist, was du willst, und du deshalb meinst, dass es für alle anderen auch klar ist. Aber die anderen können – im Gegensatz zu dir – nicht in deinen Kopf hineinschauen, sie können nur von den Informationen ausgehen, die im Text stehen, und die reichen einfach objektiv nicht. Da kann man als Leser nur entweder nachfragen oder die Frage ignorieren. Und wenn einer dann nachfragt, reagierst du genervt. Da ist es kein Wunder, dass du deine Probleme am Ende doch fast immer alleine löst.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: BitBlt und Transparenz

  Alt 5. Mai 2015, 07:39
@Emil: Du hast Post.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#8

AW: BitBlt und Transparenz

  Alt 5. Mai 2015, 08:24
Zitat:
BitBlt wird mit SRCCOPY benutzt, was die PerPixel-Werte überträgt.
NÖ es kopiert von einem Device Contex zum andern das komplette Bild.
Mit Pixelwerten mein ich RGBA

Zitat:
Ein Rendertarget in Windows ist IIRC standartmässig 32Bit.
Aber nicht mehr wenn ich es mit 8Bit austausche. (Was ich in dem Fall tue.)
IIRC muss alles vorm zeichnen in die Bittiefe des Targetrenders konvertiert werden. Da Windows 7 aber IIRC nur noch ein großes 32bit Target hat(im gegensatz zu Vista) nudelt es alles vorher um. Maltretiert das System mehr. Ich würds einfach alles auf 32bit lassen. Oder gab es dafür einen sehr speziellen grund?


PS: Und bezüglich der Frage nach dem selber zeichnen: Ich wollte eigentlich wissen ob ich das alles(samt source) richtig verstanden habe, und nicht irgendwas fehlt oder von mir übersehen wurde. Für mich ist es halt selbstverständlich, dass beim manuellen Zeichnen Alpha auf 255 steht bzw damit überschrieben wird, sofern nichts explizit am Brush geändert wurde.
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.494 Beiträge
 
Delphi 12 Athens
 
#9

AW: BitBlt und Transparenz

  Alt 11. Mai 2015, 16:25
Auf Grund der vorhandenen Informationen bin ich anfangs davon ausgegangen, dass im Child-Window nur das Spektogramm dargestellt wird.
Es wäre sinnvoll diese Region von der Transparenz gänzlich auszunehmen.
Das Spektogramm ändert sich schließlich ständig.
Warum sollte man Windows anweisen Halbtransparenz und Blur zu berechnen, wenn in diesem Rechteck alle Pixel undurchsichtig sind.
Natürlich geht es auch so, wenn CPU und GPU sonst nix zu tun haben...
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: BitBlt und Transparenz

  Alt 11. Mai 2015, 16:38
Auf Grund der vorhandenen Informationen bin ich anfangs davon ausgegangen, dass im Child-Window nur das Spektogramm dargestellt wird.
Das ist auch so.
Zitat:
Es wäre sinnvoll diese Region von der Transparenz gänzlich auszunehmen.
Die ist ausgeschlossen..

Aber bedingt durch das Bliten wenn die Bilder auf das Window kopiert werden wird der Hintergrund Transparent.
bzw. Das Fenster durchsichtig.

Das passiert jedoch beim zeichnen nicht.

Zitat:
Natürlich geht es auch so, wenn CPU und GPU sonst nix zu tun haben...
Meine Anwendung hat maximal 2% CPU Auslastung. (eigentlich fast immer 0)

gruss

Geändert von EWeiss (11. Jul 2019 um 15:43 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:50 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