AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bitmap32 auf ZielBitmap32 malen

Bitmap32 auf ZielBitmap32 malen

Ein Thema von stOrM · begonnen am 29. Jul 2008 · letzter Beitrag vom 1. Aug 2008
Antwort Antwort
Seite 2 von 6     12 34     Letzte » 
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#11

Re: Bitmap32 auf ZielBitmap32 malen

  Alt 30. Jul 2008, 10:19
Zitat von DeddyH:
Ich weiß jetzt nicht, wie das bei TBitmap32 aussieht, aber es sollte doch im Prinzip so gehen:
- Setze Breite der Zielbitmap auf Gesamtbreite der 3 Quellbitmaps und Höhe auf die der höchsten Quellbitmap
- Zeichne an Position 0,0 die linke Quellbitmap
- Zeichne an Position linke Quellbitmap.Breite, 0 die mittlere
- Zeichne an Position Gesamtbreite(linke und mittlere) die rechte
- Speichere die Zielbitmap
Ja das dachte ich auch, dass was mich durcheinander bringt hier mit Bitmap32 ist,

// Thebar??? also Zielbitmap? und SourceBitmap ist was in welchem Fall? ich hab ja 3!
TheBar.Draw(0,0, SourceBitmap)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.383 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Bitmap32 auf ZielBitmap32 malen

  Alt 30. Jul 2008, 10:24
Wenn das Ergebnis anschließend in TheBar sein soll, musst Du auch auf TheBar zeichnen.
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
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#13

Re: Bitmap32 auf ZielBitmap32 malen

  Alt 30. Jul 2008, 10:50
Zitat von DeddyH:
Wenn das Ergebnis anschließend in TheBar sein soll, musst Du auch auf TheBar zeichnen.
Ja das dachte ich auch also hab ichs so gemacht:

Delphi-Quellcode:
  TheBar.Draw(0, 0, OutLeft);
  TheBar.Draw(outleft.Width + Outmiddle.Width, 0, OutRight);
  TheBar.Draw(0, 0, OutMiddle);
Geht nich
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.383 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Bitmap32 auf ZielBitmap32 malen

  Alt 30. Jul 2008, 11:02
Was heißt geht nich? Kommt nix oder an der falschen Stelle? Wird bei TBitmap32 Draw direkt aufgerufen oder über Canvas? Anbei mal ein Beispiel mit "normalen" Bitmaps (achte mal auf die Koordinaten beim Zeichnen auf Ziel):
Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject);
var qb1, qb2, qb3, ziel: TBitmap;
begin
  //Erzeugen und Zeichnen der 3 Quellbitmaps
  qb1 := TBitmap.Create;
  try
    qb1.Width := 20;
    qb1.Height := 40;
    qb1.Canvas.Brush.Color := clRed;
    qb1.Canvas.FillRect(Rect(0,0,20,40));

    qb2 := TBitmap.Create;
    try
      qb2.Width := 20;
      qb2.Height := 40;
      qb2.Canvas.Brush.Color := clYellow;
      qb2.Canvas.FillRect(Rect(0,0,20,40));

      qb3 := TBitmap.Create;
      try
        qb3.Width := 20;
        qb3.Height := 40;
        qb3.Canvas.Brush.Color := clBlue;
        qb3.Canvas.FillRect(Rect(0,0,20,40));

        //Erzeugen und Zeichnen der Zielbitmap
        ziel := TBitmap.Create;
        try
          ziel.Width := 60;
          ziel.Height := 40;
          //linke Quellbitmap
          ziel.Canvas.Draw(0,0,qb1);
          //mittlere Quellbitmap
          ziel.Canvas.Draw(qb1.Width,0,qb2);
          //rechte Quellbitmap
          ziel.Canvas.Draw((qb1.Width + qb2.Width),0,qb3);
          self.Canvas.Draw(10,10,ziel);
        finally
          ziel.Free;
        end;
      finally
        qb3.Free;
      end;
    finally
      qb2.Free;
    end;
  finally
    qb1.Free;
  end;
end;
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
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#15

Re: Bitmap32 auf ZielBitmap32 malen

  Alt 30. Jul 2008, 11:16
Zitat von DeddyH:
Was heißt geht nich? Kommt nix oder an der falschen Stelle? Wird bei TBitmap32 Draw direkt aufgerufen oder über Canvas? Anbei mal ein Beispiel mit "normalen" Bitmaps (achte mal auf die Koordinaten beim Zeichnen auf Ziel):
Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject);
var qb1, qb2, qb3, ziel: TBitmap;
begin
  //Erzeugen und Zeichnen der 3 Quellbitmaps
  qb1 := TBitmap.Create;
  try
    qb1.Width := 20;
    qb1.Height := 40;
    qb1.Canvas.Brush.Color := clRed;
    qb1.Canvas.FillRect(Rect(0,0,20,40));

    qb2 := TBitmap.Create;
    try
      qb2.Width := 20;
      qb2.Height := 40;
      qb2.Canvas.Brush.Color := clYellow;
      qb2.Canvas.FillRect(Rect(0,0,20,40));

      qb3 := TBitmap.Create;
      try
        qb3.Width := 20;
        qb3.Height := 40;
        qb3.Canvas.Brush.Color := clBlue;
        qb3.Canvas.FillRect(Rect(0,0,20,40));

        //Erzeugen und Zeichnen der Zielbitmap
        ziel := TBitmap.Create;
        try
          ziel.Width := 60;
          ziel.Height := 40;
          //linke Quellbitmap
          ziel.Canvas.Draw(0,0,qb1);
          //mittlere Quellbitmap
          ziel.Canvas.Draw(qb1.Width,0,qb2);
          //rechte Quellbitmap
          ziel.Canvas.Draw((qb1.Width + qb2.Width),0,qb3);
          self.Canvas.Draw(10,10,ziel);
        finally
          ziel.Free;
        end;
      finally
        qb3.Free;
      end;
    finally
      qb2.Free;
    end;
  finally
    qb1.Free;
  end;
end;
Wird nur der mittlere Teil angezeigt wie gehabt. Wenn ich am Code rumschraub bezüglich der Koordinaten Left sagen wir +2 dann kommt links nen schwarzer Rand ohne Bitmap, rechts kommt nie was an...
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.984 Beiträge
 
Delphi 7 Professional
 
#16

Re: Bitmap32 auf ZielBitmap32 malen

  Alt 30. Jul 2008, 11:28
Moin, Moin.
Ist vielleicht BitBlt() eine Alternative? Damit können doch die 3 einzelnen Bitmaps ruck-zuck in das Zielbitmap kopiert werden...
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.383 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: Bitmap32 auf ZielBitmap32 malen

  Alt 30. Jul 2008, 11:31
Delphi-Quellcode:
TheBar.Width := OutLeft.Width + OutMiddle.Width + OutRight.Width;
TheBar.Draw(0, 0, OutLeft);
TheBar.Draw(OutLeft.Width, 0, OutMiddle);
TheBar.Draw(outleft.Width + Outmiddle.Width, 0, OutRight);
Und so?
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
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#18

Re: Bitmap32 auf ZielBitmap32 malen

  Alt 30. Jul 2008, 12:05
Zitat von DeddyH:
Delphi-Quellcode:
TheBar.Width := OutLeft.Width + OutMiddle.Width + OutRight.Width;
TheBar.Draw(0, 0, OutLeft);
TheBar.Draw(OutLeft.Width, 0, OutMiddle);
TheBar.Draw(outleft.Width + Outmiddle.Width, 0, OutRight);
Und so?
Ne du jetzt kommt nur der rechte und der mittlere Teil der linke iss nich da
Ich würd dir ja gerne das gesamte Project senden zum testen nur du hast kein Graphics32???
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.383 Beiträge
 
Delphi 11 Alexandria
 
#19

Re: Bitmap32 auf ZielBitmap32 malen

  Alt 30. Jul 2008, 12:09
Zitat von stOrM:
Ich würd dir ja gerne das gesamte Project senden zum testen nur du hast kein Graphics32???
Nee, leider nicht. Was passiert, wenn Du die 3 Bitmaps in eine TBitmap zeichnest und diese dann nach TBitmap32 konvertierst?
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
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#20

Re: Bitmap32 auf ZielBitmap32 malen

  Alt 30. Jul 2008, 12:17
Zitat von DeddyH:
Zitat von stOrM:
Ich würd dir ja gerne das gesamte Project senden zum testen nur du hast kein Graphics32???
Nee, leider nicht. Was passiert, wenn Du die 3 Bitmaps in eine TBitmap zeichnest und diese dann nach TBitmap32 konvertierst?
Öhzm das geht in sofern nicht, weil ich dann meine transparenz verlieren würde, sonst hätte ich direkt einfach Bitmaps anstelle von PNG's bzw Bitmap32 genommen...

Kannste dir die Graphics32 nicht bei SourceForge holen? ich mein Einbindung dauert ja grad mal 10 - 15 Sekunden, sind ja nur units
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf