![]() |
Re: Schwarzes Bild nach Größenänderung mit GR32
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,
versteh ich nich ganz, aber das Problem ist, das ja das bmpact in das PT.srcrect hineinprojeziert wird. das bmpact wird dan verzerrt und korrekt wiedergegeben.nur ist eben der hintergrund von dem srcrect schwarz....(siehe anhang) Und davor war es nicht schwarz sondern transparent. Kann es sein, dass früher noch kein Alpha Wert vorhanden war, der jetzt existiert??? wie soll ich das dann ändern?? danke... |
Re: Schwarzes Bild nach Größenänderung mit GR32
also am unterschied D2006<>D7 kanns nicht liegen, eher am unterschied >=GR32-1.8/<Gr32-1.8.
Und ansonsten gilt das, was ich oben gesagt habe. Ob die Transformation da echtes schwarz hinterlässt oder eben nur Alpha=0 und der TImage32-Container das eben als schwarz anzeigt, weiß ich nicht. Ich werds gleich mal ausprobieren. |
Re: Schwarzes Bild nach Größenänderung mit GR32
hab gerade was geschafft:
mit
Delphi-Quellcode:
wird der hintergrund weiss, aber noch nicht durchsichtig....aber ich probiers weiter
PT:=TProjectiveTransformation.create;
//SetBorderTransparent(bmpact,Rect(0, 0, bmpact.Width - 1, bmpact.Height - 1)); PT.X0:=CalcMousePosfromX(TransformPoint(TM,CADPoint(0,1)).X); PT.Y0:=CalcMousePosfromY(TransformPoint(TM,CADPoint(0,1)).Y); PT.X1:=CalcMousePosfromX(TransformPoint(TM,CADPoint(1,1)).X); PT.Y1:=CalcMousePosfromY(TransformPoint(TM,CADPoint(1,1)).Y); PT.X2:=CalcMousePosfromX(TransformPoint(TM,CADPoint(1,0)).X); PT.Y2:=CalcMousePosfromY(TransformPoint(TM,CADPoint(1,0)).Y); PT.X3:=CalcMousePosfromX(TransformPoint(TM,CADPoint(0,0)).X); PT.Y3:=CalcMousePosfromY(TransformPoint(TM,CADPoint(0,0)).Y); PT.Srcrect:=Floatrect(0,0,(bmpact.width-1),(bmpact.height-1)); //transparentColor : TColor32; TColor32Entry(transparentColor).A := 255; TColor32Entry(transparentColor).R := 255; TColor32Entry(transparentColor).G := 255; TColor32Entry(transparentColor).B := 255; bmpact.OuterColor := transparentColor; GR32_Transforms.Transform(ABitmap,bmpact,PT); PT.free; end; |
Re: Schwarzes Bild nach Größenänderung mit GR32
Zitat:
Delphi-Quellcode:
TColor32Entry(transparentColor).A := 0; so besser? PS: auf outercolor bin ich auch nicht gekommen.... |
Re: Schwarzes Bild nach Größenänderung mit GR32
auch 0 bringt gar nix, kann es irgendwie sein,
dass der rechner das alpha einfach ignoriert bei der farbdarstellung? |
Re: Schwarzes Bild nach Größenänderung mit GR32
ich hab das vorher selber probiert, das TImage32 ignoriert das offenbar. Kannst es ja mal mit TImgView32 versuchen, ka obs mit dem geht.
|
Re: Schwarzes Bild nach Größenänderung mit GR32
klappt auch leider nicht :-(
im moment hab ich keine plan ob das überhaupt geht. schade, dass sie das in der neuen version herausgenommen haben... hast du noch ne idee, wie ich die outercolor (jetzt weiss ich wenigstens wie die eigenschaft heisst:-) transparent bekommen könnte? gruß und danke für deine hilfe, winx |
Re: Schwarzes Bild nach Größenänderung mit GR32
Nur nochmal zum Mitschreiben: Du willst es transparent anzeigen lassen.
Dann kannst du auch das Bild durchgehen, alle Pixel, die Alpha=0 haben, auf eine beliebige Transparenzfarbe schalten (z.B. clFuchsia), das Bild in einen Stream speichern, ein TBitmap erzeugen, dieses aus dem Stream laden, ins ein TImage laden, und in dem Transparent:=true und TransparentColor := clFuchsia stellen. Es ist zwar idiotisch, dass TImage32 das nicht kann, aber so müsste es funktionieren. EDIT: Eventuell reicht es schon, OuterColor auf die Transparenzfarbe zu stellen und dann zu speichern, vielleicht wird das dann automatisch ersetzt. EDIT: :wall: Es reicht, beim Bitmap den Drawmode auf dmBlend zu stellen :wall: |
Re: Schwarzes Bild nach Größenänderung mit GR32
jawohl so gehts, der drawmode hat mir gefehlt :-)
Delphi-Quellcode:
Danke euch beiden für Eure Hilfe !!!
PT:=TProjectiveTransformation.create;
PT.Srcrect:=Floatrect(0,0,(bmpact.width-1),(bmpact.height-1)); PT.X0:=CalcMousePosfromX(TransformPoint(TM,CADPoint(0,1)).X); PT.Y0:=CalcMousePosfromY(TransformPoint(TM,CADPoint(0,1)).Y); PT.X1:=CalcMousePosfromX(TransformPoint(TM,CADPoint(1,1)).X); PT.Y1:=CalcMousePosfromY(TransformPoint(TM,CADPoint(1,1)).Y); PT.X2:=CalcMousePosfromX(TransformPoint(TM,CADPoint(1,0)).X); PT.Y2:=CalcMousePosfromY(TransformPoint(TM,CADPoint(1,0)).Y); PT.X3:=CalcMousePosfromX(TransformPoint(TM,CADPoint(0,0)).X); PT.Y3:=CalcMousePosfromY(TransformPoint(TM,CADPoint(0,0)).Y); TColor32Entry(transparentColor).A := 0; TColor32Entry(transparentColor).R := 255; TColor32Entry(transparentColor).G := 255; TColor32Entry(transparentColor).B := 255; bmpact.OuterColor := transparentColor; bmpact.DrawMode := dmBlend; SetBorderTransparent(bmpact,Rect(0, 0, bmpact.Width - 1, bmpact.Height - 1)); GR32_Transforms.Transform(ABitmap,bmpact,PT); PT.free; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:24 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