AGB  ·  Datenschutz  ·  Impressum  







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

Abgerundete Ecken

Ein Thema von Moony · begonnen am 21. Feb 2008 · letzter Beitrag vom 5. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2      
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#1

Abgerundete Ecken

  Alt 21. Feb 2008, 10:41
Hallo zusammen,

ich lade mit einem TImage-Objekt ein Bild und stelle das auf der Oberfläche dar. Hierzu möchte ich dieses Objekt mit definierbaren abgerundeten Ecken darstellen. Es ist sowas wie das Canvas.RoundRect(). Aber wenn ich diese Funktion anschließend anwende, dann wird ein weißes Rechteck mit abgerundeten Ecken auf mein geladenes Bild gezeichnet. Ich möchte aber, dass das Bild selbst die abgerundeten Ecken hat.


Hoffe ihr könnt mir helfen.

Gruß, Moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Abgerundete Ecken

  Alt 21. Feb 2008, 10:49
ein Bitmap mit dem Bild
ein Bitmap mit einem weißen roundRect und weiß gefüllt, der Rest schwarz
beide Bitmap and verknüpfen und ausgeben
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Abgerundete Ecken

  Alt 21. Feb 2008, 11:11
Irgendwie verstehe ich nciht ganz wie ich die beiden verknüpfen soll? Könntest du mir da ein wenig Code hinschreiben?
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

Re: Abgerundete Ecken

  Alt 21. Feb 2008, 11:15
BitBlt(MaskBitmap.Canvas.Handle, 0, 0, MaskBitmap.Width, MaskBitmap.Height, DeineBitmap.Canvas.Handle, 0, 0, SRCAND); Sollte so gehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Abgerundete Ecken

  Alt 21. Feb 2008, 11:31
Die beiden TImage-Objekte werden zwar jetzt verbunden, aber die Ecken des eigentlichen Bildes sind noch da. Ich möchte auch keinen schwarzen Rand haben, sondern lediglich bei dem Bild das ich lade die Ecken rund zeichnen mit einem bestimmten Radius.
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

Re: Abgerundete Ecken

  Alt 21. Feb 2008, 11:58
http://www.ucancode.net/faq/Draw_Transparent_bitmap.htm
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Abgerundete Ecken

  Alt 28. Feb 2008, 12:35
Erst mal Sorry, dass ich hier so lange keine Antwort gegeben habe.

Also irgendwie will das bei mir nicht funktionieren mit den runden Ecken. Ich stelle mal den Code hier rein, damit ihr euch ein Bild davon machen könnt, was ich meine.

Also, ich habe ein Bild geladen, welches auf die vorgesehene Größe des Images geladen wird. In dem Eingabefeld darunter wird der Radius der runden Ecken in Pixel angegeben. Danach muß auf "Round" geklickt werden. Wie ihr seht, werden folgende Punkte gemacht:

1. Der schwarze Rand ist da. Diesen möchte ich nicht haben.
2. Das Bild wird auf seine ursprüngliche Größe in das Image geladen.
3. Die Ecken des Bildes sind nicht rund.

Ich hoffe ihr wißt eine Lösung, denn ich verzeweifle hier ein wenig.

Gruß & Danke, Moony
Angehängte Dateien
Dateityp: zip roundcorner_986.zip (3,8 KB, 35x aufgerufen)
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Abgerundete Ecken

  Alt 29. Apr 2008, 14:54
Hallo zusammen,

weißt denn keiner eine Antwort auf mein Problem???

Gruß, Moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#9

Re: Abgerundete Ecken

  Alt 29. Apr 2008, 19:18
ich habe hier mal ein bild mit einer selbstgemalten maske umgeformt..
du musst im Prizip genau das Gleiche machen nur halt mit roundRect statt ellipse

HTH Frank
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Abgerundete Ecken

  Alt 5. Mai 2008, 10:36
Hallo,

ich habe das jetzt so gemacht:

Delphi-Quellcode:
procedure DoItRound;
var bmp_mask,
      bmp_tmp : TBitmap;

const cl_trans_tmp = clWhite;
      cl_trans = clFuchsia;
begin
  bmp_mask := TBitmap.create;
  bmp_tmp := TBitmap.create;
  try
     //load bitmap
     bmp_tmp.Assign(Form1.image1.picture.bitmap);
     //resize mask
     bmp_mask.width := bmp_tmp.width;
     bmp_mask.height := bmp_tmp.height;
     //create the mask;
     bmp_mask.canvas.brush.color := cl_trans;
     bmp_mask.canvas.Pen.color := cl_trans;
     bmp_mask.Canvas.FillRect(rect(0,0,bmp_mask.width,bmp_mask.height));
     bmp_mask.canvas.brush.color := cl_trans_tmp;
     bmp_mask.canvas.Pen.color := cl_trans_tmp;
     bmp_mask.canvas.RoundRect(0,0,bmp_mask.width,bmp_mask.height, 10,10);
     bmp_mask.TransparentColor := cl_trans_tmp;
     bmp_mask.Transparent := true;

     //merging the mask with original bitmap
     bmp_tmp.Canvas.Draw(0,0,bmp_mask);
     bmp_tmp.TransparentColor := cl_trans;
     bmp_tmp.Transparent := true;

     //Draw masked bitmap
     Form1.Image2.canvas.draw(0,0,bmp_tmp);
  finally
     //free Objects
     bmp_tmp.free;
     bmp_mask.free;
  end;
end;
Leider wird hier nur das Bild reingezeichnet ohne jegliche runde Ecken.
Zeichne ich das Ganze anstatt auf das Image2 auf mein Canvas der Form1, dann funktioniert das.

In meinem Programm zeichne ich aber auf das Canvas eines Imageobjektes und nicht auf das Canvas der Form.

Gruß, Moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:34 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