AGB  ·  Datenschutz  ·  Impressum  







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

Runde Images für CD Label

Ein Thema von bundy · begonnen am 2. Jun 2006 · letzter Beitrag vom 3. Jun 2006
Antwort Antwort
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#1

Runde Images für CD Label

  Alt 2. Jun 2006, 09:18
Hi !

Ich hab mir folgendes Project votgenommen.
Ein Programm zum Beschriften & Drucken von CD + DVD Labels.

Meine Frage ist nun folgende :

Wie kann ich ein Images rund darstellen, oder besser gesagt eine Schablone die rund ist und in welche man ein Image laden könnte.
Hat von euch jemand ne Idee oder einen Ansatz wie ich so etwas anfangen könnte ?

lg
Bundy
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#2

Re: Runde Images für CD Label

  Alt 2. Jun 2006, 09:24
Hallo,

es gibt leider keine runden Bitmaps (zumindest nicht im Speicher). Aber was hälst du davon alles ausserhalb der CD-Region weiss zu lassen. Dann sollte es dein Drucker dir gleich tun.
Ein viereckiges Bild rund zu bekommen, gibt es mehrere möglichkeiten, entweder malst du alles ausserhalb des Kreises weiss oder du setzt eine Clipping-Region. Ich denke weiss malen ist erstmal einfacher, schaue dir mal TCanvas an.
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#3

Re: Runde Images für CD Label

  Alt 2. Jun 2006, 09:28
Meinst du ich sollte das Label Picture in ein Image laden, und dann im Canvas darüber einen weissen Kreis malen ?
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Runde Images für CD Label

  Alt 2. Jun 2006, 09:35
Du könntest dir eine Art Maske im Speicher hinterlegen, ähnlichem der Alpha-Kanal bei geblendetem Images. Das wäre ein zweidimensionales Array von Boolean-werten die angeben, ob das Pixel gezeichnet werden soll oder nicht. In diesem Array setzt du dann durch eine "ausgefüllten Kreis malen"-Funktion alles relevanten Werte auf true, und den Rest auf False.
Dann brauchst du dein Bild, das die gleichen Maße hat wie dein Array. Das legst du sinnbildlich unter die Maske und malst nur die Pixel, deren passender Wert in dem Array true ist.
Auf diese Weise hast du in etwa das nachgebildet, was die Windows GDI unter dem Thema Clipping versteht (was wiederum bedeutet, das du auch das Clipping nutzen könntest. )
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#5

Re: Runde Images für CD Label

  Alt 2. Jun 2006, 09:44
das klingt prima, jetzt schau ich mal wie das mit der Umsetzung hin bekomme

Das heist:

Delphi-Quellcode:
var
maske : array [1..2] of boolean;
wobei ich die X und Y Koordinaten eintrage und der Booleanwert die Sichbarkeit definiert ?
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Runde Images für CD Label

  Alt 3. Jun 2006, 00:35
Hallo Bundy,

Vjay hat es bereits angedeutet, eine Clipping-Region könnte das Mittel der Wahl sein. Hier eine kleine Hilfe:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
  var lRgn : HRGN;
begin
  // runde Region erzeugen
  lRgn := CreateEllipticRgn(0, 0, Image1.Width, Image1.Height);
  // als Clipping-Bereich setzen
  SelectClipRgn(Image1.Canvas.Handle, lRgn);
  // Region freigeben
  DeleteObject(lRgn);
  // alle folgenden Zeichenbefehle wirken nur auf den Kreis
  Image1.Canvas.Brush.Color := clRed;
  Image1.Canvas.FillRect (Image1.ClientRect);
end;
Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Runde Images für CD Label

  Alt 3. Jun 2006, 21:58
@bundy:

Da hat Hawkeye recht. Und mit 98%iger Wahrscheinlichkeit, ist die Clipping-Methode schneller als unser Array. Aber vielleicht hat hat dir die Geschichte mit dem Array die Sache mit dem Clipping ein wenig verständlicher gemacht.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
noch_ein_hannes

Registriert seit: 18. Sep 2003
130 Beiträge
 
#8

Re: Runde Images für CD Label

  Alt 3. Jun 2006, 22:24
hi,

wenn Du den Kreis richtig rund bekommen möchtest (also keine Treppchen) dann würde ich eine Alpha-Maske drüberlegen. Es gibt eine Komponente die png mit alpha unterstützt. Damit könntest Du das "Loch mit weiss drumherum" drüberlegen ...

Ich glaube die Komponente hiess Hier im Forum suchenGR32_PNG bzw. Bei Google suchenGR32_PNG

grüsse,
hannes
- everything is possible -
  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 05:37 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