Laden...

Grafik spiegeln wie z.b. iTunes

Erstellt von hamlet vor 16 Jahren Letzter Beitrag vor 16 Jahren 3.727 Views
hamlet Themenstarter:in
12 Beiträge seit 2006
vor 16 Jahren
Grafik spiegeln wie z.b. iTunes

Hi,

gibt es schon fertige codezeilen um eine Grafik zu spiegeln, wie es z.b. iTunes in der CD Cover Ansicht macht, oder es überall im Netz rumfleucht und kreucht.
z.b.:

Will nicht unbedingt das Rad neu erfinden und mich in GDI+ einarbeiten.
Vielleicht hat ja wer sowas schon gebraucht oder gefunden. Wäre für alle Hinweise dankbar.

danke,

hamlet

B
1.529 Beiträge seit 2006
vor 16 Jahren

Als statisches Bild: Raytracing beispielsweise povray
Als "echtes" Spiegelbild: DirectX

230 Beiträge seit 2007
vor 16 Jahren

_Original von hamlet_Will nicht unbedingt das Rad neu erfinden und mich in GDI+ einarbeiten.

Im SDK des Net3.0 gibt es ein Beispiel zu Spiegelungen - siehe Verzeichnis ..\UsingVisualBrush.

T
219 Beiträge seit 2007
vor 16 Jahren

Photoshop wäre da auch eine Lösung, nicht in Echtzeit versteht sich 😉

Mfg, Christian

I
1.739 Beiträge seit 2005
vor 16 Jahren

Irgendwie war von GDI+ die Rede. Also Spiegeln geht so:

  1. Bild Laden
  2. Image.RotateFlip(RotateFlipType.(gewünschten EnumMember zb: RotateNoneFlipX für spiegeln um X-Achse)).
  3. ein gepflegtes DrawImage oder Image.Save.

Zum einfachen Spiegeln brauchts kein 3d. oder Photoshop(2D). Das ist alles schon da unter GDI+. Wenn nicht wärs auch nur ein bedingtes Swap zum Positionstausch irgenwelcher Werte.

B
1.529 Beiträge seit 2006
vor 16 Jahren

Bekommt man mit GDI+ auch den schrägen Verlauf vom Bild ins Schwarz hin?

I
1.739 Beiträge seit 2005
vor 16 Jahren

Erkläre deinen Verlaufswunsch näher. Ansonsten kann ich nur sagen: ja.

B
1.529 Beiträge seit 2006
vor 16 Jahren

Kurz gefragt: Schafft man es nur mit GDI+ eine Grafik wie die im Erstpost zu erzeugen?

1.271 Beiträge seit 2005
vor 16 Jahren

Original von Borg
Kurz gefragt: Schafft man es nur mit GDI+ eine Grafik wie die im Erstpost zu erzeugen?

Also ich geh davon aus und bin überzeugt, dass das möglich ist. Wie kompliziert es ist, steht aber auf einem anderen Blatt.

Gruß,
Thomas

A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.

hamlet Themenstarter:in
12 Beiträge seit 2006
vor 16 Jahren

also es geht doch recht einfach. bzw. einfacher als ich gedacht habe. zwar nur die spiegelung in der mitte, aber die außen die spiegelungen, die hebe ich mir für später auf ... 🙂

ich hab oben eine picturebox, die ich wo anders in echtzeit fülle.
drunter hab ich ein panel gesetzt.

dann:


Bitmap bmp = (Bitmap)pictureBox1.Image;
bmp.RotateFlip(RotateFlipType.RotateNoneFlipY);
Bitmap shadowBitmap = new Bitmap(256, 100);
Graphics g = Graphics.FromImage(shadowBitmap);
g.DrawImage(bmp, 0, 0);
g.Dispose();

Graphics g2 = panel1.CreateGraphics();
g2.Clear(Color.Black);
g2.DrawImage(shadowBitmap, 0, 0);
LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, 256, 100), Color.FromArgb(80,0,0,0), Color.Black, 90.0F, false);
g2.FillRectangle(brush, 0, 0, panel1.Width, panel1.Height);

fragt mich nicht was das ding wirklich alles macht, aber es funktioniert perfekt.

wenn wer noch zum vereinfachen findet, oder gleich sagt, dass ich mir 5 zeilen code sparen kann.. bitte!

danke trotzdem für die hilfe.

lg

hamlet

ps.: das ganze wird ein bildschirmschoner für den albumplayer, wen's interessiert.

pps: geholfen hat ein c# buch und http://www.codeproject.com/useritems/iTunes_Bar.asp

I
1.739 Beiträge seit 2005
vor 16 Jahren

@Borg:
Bei genauer Betrachtung war dein Ur-Posting schon etwas missverständlich.
Du sprachst von spiegeln, das verlinkte Bild(hab ich damals voll ignoriert), kann auf den Wunsch nach perspektivische Verzerrung hindeuten(muss aber nicht), vermutlich daher die Hinweise nach und Photoshop, geht auch per "Hand" oder Gdi+ -lib(ohne direkte Filterbeeinflussung allerdings).
Ich vemute jetzt das meinst du mit schrägen Verlauf in Schwarz(Zweifel).
Andererseits kann man natürlich ein Bild "schräg" darstellen(Shearing).
So genau kann ich es aus dem Bild nicht erkennen(ohne nachzumessen).
Reicht eine Schräge Darstellung(wie gesagt(ok:angedeuted) Shearingmatrix verwenden) oder soll es auch in die Tiefe gehen?
Falls es Fall 2 ist gibt es natürlich auch eine Lösung in GDI+(ist eine 2D-Lib deshalb wär die Lösung etwas schräg) oder man nutzt die Lösung der freien Pixelmanipulation(würde heissen selbst die Ansprüche festlegen, und selbst ist der Implementierer) zu viele mögliche Filter halt(mindestens einer ist notwendig gegen den Augenkrebs).

Abgeshen zum selber pixeln liefer ich gern Bsp. zum Shearing oder zur "grazy" - Verzerrung mit GDI+.
Mein Irrtum war wohl, das ich annahm es ging um simples Spiegeln.

Edit: Auwei, hab ich das geschrieben? Bei Dechiffrierungsbedarf bitte melden, das Posting seh ich sogar selbst als schwer lesbar an(ein).