AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Problem mit RGB und Alphabild
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit RGB und Alphabild

Ein Thema von Yheeky · begonnen am 15. Jul 2007 · letzter Beitrag vom 16. Jul 2007
Antwort Antwort
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#1

Problem mit RGB und Alphabild

  Alt 15. Jul 2007, 22:07
Hi,

so, ich habe es nun hinbekommen eine vergrößerbare Form mit einem PNG zu erstellen.
Nun habe ich noch ein kleines Problem mit dem RGB und dem Alphabild. Der Rand wird in meiner Testform noch nicht 100%ig korrekt angezeigt.
Ich habe die Einzelbilder mal angehängt sowie eine Exe von der Testform.

Die Testform hat noch ein paar Fehler bei der Veränderung der Größe, aber darum werde ich mich kümmern, wenn das RGB & Alphaproblem gelöst ist

Hat jemand eine Idee, warum die Form den Rand nicht korrekt darstellt?
Miniaturansicht angehängter Grafiken
richtigerrand_776.jpg   falscherrand_208.jpg  
Angehängte Grafiken
Dateityp: bmp alpha_obenlinks_549.bmp (2,9 KB, 38x aufgerufen)
Dateityp: bmp obenlinks_210.bmp (2,9 KB, 37x aufgerufen)
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#2

Re: Problem mit RGB und Alphabild

  Alt 15. Jul 2007, 22:08
Und hier noch die Exe als Anhang (da nicht mehr als 4 in einem Posting gehen).
Angehängte Dateien
Dateityp: exe testform_315.exe (625,5 KB, 31x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

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

Re: Problem mit RGB und Alphabild

  Alt 16. Jul 2007, 06:08
Ich kann bei der Darstellung keinen Fehler erkennen. Auch das Ändern der Grösse klappt doch prima. (Oder Soll der Rand dunkel sein ?)

// Edit:

Aha, ja jetzt... den Fehler kenn ich, das liegt an dem laden der Bitmaps. Da ich deinen Quelltext nicht kenne kann ich dir so auf die schnelle nicht behilflich sein. Ich glaube da hat es bei den Image32-Dingern bei denen du den Alphachanel ausliest ein paar werte verdreht.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Problem mit RGB und Alphabild

  Alt 16. Jul 2007, 07:06
könntest du die bilder bitte als jpg anhängen damit auch unsere Modem-nutzenden User Freude beim anschauen haben?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#5

Re: Problem mit RGB und Alphabild

  Alt 16. Jul 2007, 12:08
Hi,

schonmal vorab. Bin im Moment leider nicht zuhause, also kann ich den Sourcecode erst später nachliefern. Ich kann aber schonmal erzählen, was ich gemacht habe.
Also ich habe die einzelnen Teile der Form (Titelleiste, Ränder, etc.) in 9 einzelne Bilder geladen und die mit den Bildern gefüllt. Habe jeweils die RGB und Alphabilder reingeladen. Ein Beispiel vom linken oberen Reck habe ich ja im ersten Posting angehängt. Das Alphabild ist doch aber korrekt so, oder?

Dann habe ich per Code die Bilder in ein großes TBitmap32 Bild geladen (mit DrawTo). Dann habe ich UpdateLayeredWindow aufgerufen und das Bild auf die Form gezeichnet, die das dann eben so aussehen lässt, wie es aussieht.

Welche Werte sollen sich denn da verdreht haben? Muss ich da auf was besonderes achten?

Zitat von SirThornberry:
könntest du die bilder bitte als jpg anhängen damit auch unsere Modem-nutzenden User Freude beim anschauen haben?
Ja, mach' ich, wenn ich zuhause bin...
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#6

Re: Problem mit RGB und Alphabild

  Alt 16. Jul 2007, 18:31
Okay, Bilder sind in JPEG geändert (zumindest die großen).

Hier der Code-Auszug:

Delphi-Quellcode:
[...]

private
    BlendF: TBlendFunction;
    P: TPoint;
    Size: TSize;

    FertigesBild : TBitmap32;

[...]

// Größe des Fensters festlegen
FertigesBild.SetSize(Form1.Width, Form1.Height);

// Titelleiste zeichnen
LinkeEckeOben.Bitmap.DrawTo(FertigesBild, 0, 0);

SetWindowLong(Handle, GWL_EXSTYLE,
GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED {or WS_EX_TRANSPARENT});
// WS_EX_TRANSPARENT macht das Fenster für Mausklicks transparent

BlendF.BlendOp := AC_SRC_OVER;
BlendF.BlendFlags := 0;
BlendF.SourceConstantAlpha := 255;
BlendF.AlphaFormat := AC_SRC_ALPHA;
P := Point(0, 0);
Size.cx := FertigesBild.Width;
Size.cy := FertigesBild.Height;

UpdateLayeredWindow(Handle, 0, nil, @Size, FertigesBild.Handle, @P, 0, @BlendF, ULW_ALPHA);
Die Erklärung wie ich die Bilder reinlade steht im Posting oben drüber. Weiss nun jemand woher der weisse Rand kommt und wie er schwarz wird (wie er eigentlich ist)?
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#7

Re: Problem mit RGB und Alphabild

  Alt 16. Jul 2007, 18:44
Ich verstehe nicht, weshalb du RGB- und Alphakanal einzeln lädst, wenn du doch PNG benutzt .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#8

Re: Problem mit RGB und Alphabild

  Alt 16. Jul 2007, 18:51
Oops, nee, da habe ich mich wohl schlecht ausgedrückt. Ich lade schon die beiden BMP Bilder rein, da TImage32 kein PNG liest.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#9

Re: Problem mit RGB und Alphabild

  Alt 16. Jul 2007, 19:30
Wenn es von Haus aus nicht unterstützt wird, muss man eben nachhelfen - werfe einmal einen Blick in die GR32-FAQ.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#10

Re: Problem mit RGB und Alphabild

  Alt 16. Jul 2007, 22:33
Danke, dein Tipp hat mir die Lösung gebracht! Mit LoadPNGintoBitmap32 kann ich PNG Dateien direkt reinladen und dann wird alles korrekt angezeigt

Danke schön!
  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 07:10 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