AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi mit BitBlt Ausschnitt aus einem hBitmap in ein hDC bringen
Thema durchsuchen
Ansicht
Themen-Optionen

mit BitBlt Ausschnitt aus einem hBitmap in ein hDC bringen

Ein Thema von Wusel · begonnen am 17. Jan 2005 · letzter Beitrag vom 20. Jan 2005
Antwort Antwort
Benutzerbild von Wusel
Wusel

Registriert seit: 27. Sep 2003
Ort: Riesa
54 Beiträge
 
Delphi 6 Personal
 
#1

mit BitBlt Ausschnitt aus einem hBitmap in ein hDC bringen

  Alt 17. Jan 2005, 23:18
Guten Abend =)
Also wie im Titel bereits angekündigt, funktioniert es bei mir nicht richtig aus einem hBitmap einen bestimmten Ausschnitt in ein hDC zu bringen.
Das hBitmap stammt aus der Zwischenablage und wurde einfach mit
hBmp := GetClipboardData(CF_BITMAP); soweit, sogut

Ich hab jetzt schon so viel probiert und geschrieben und auskommentiert, das ich garnichtmehr weiß, was nun eigentlich richtig hätte sein sollen.
Von der Theorie her, müsste ich ja dann nur 2 HDC's erstellen, eins, was die Größe dieses einen Ausschnitts hat und eins, was so groß ist, wie das hBitmap aus der Zwischenablage. Dann hab ich 2 HDC's und könnte theoretisch bequem mit BitBlt den Ausschnitt aus dem großen HDC in das kleine vorbereitete HDC kopieren.

Könnte mir jemand kurz per Code-Schnippsel weiterhelfen? Ich seh vor lauter SelectObjects und so nimmer durch


Schonmal riesen Danke an euch
  Mit Zitat antworten Zitat
Benutzerbild von Wusel
Wusel

Registriert seit: 27. Sep 2003
Ort: Riesa
54 Beiträge
 
Delphi 6 Personal
 
#2

Re: mit BitBlt Ausschnitt aus einem hBitmap in ein hDC bring

  Alt 18. Jan 2005, 20:54
Weiß denn niemand einen Rat
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: mit BitBlt Ausschnitt aus einem hBitmap in ein hDC bring

  Alt 18. Jan 2005, 21:11
hab noch nie mit Clipboard gearbeitet und bin dementsprechend jetzt stolz das der erste versuch gleich so erfolgreich ist. So sollte es gehen
Delphi-Quellcode:
var LHandle: Cardinal;
    LBitmap: TBitmap;
begin
  if OpenClipboard(handle) then
  begin
    LHandle := GetClipboardData(CF_BITMAP);
    if LHandle <> 0 then
    begin
      LBitmap := TBitmap.Create;
      LBitmap.Handle := LHandle;
      //Jetzt kann mit LBitmap das Bitmap aus der Zwischenablage genutzt werden
      //place the source here
      LBitmap.Handle := 0;
      LBitmap.Free;
    end;
    CloseClipboard;
  end;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Wusel
Wusel

Registriert seit: 27. Sep 2003
Ort: Riesa
54 Beiträge
 
Delphi 6 Personal
 
#4

Re: mit BitBlt Ausschnitt aus einem hBitmap in ein hDC bring

  Alt 18. Jan 2005, 21:53
Also danke, aber das ist nicht ganz das, was ich wollte Ich habs inzwischen selber hinbekommen, ich hab die ganze Zeit nur die falschen X und Y Werte verändert. Anstatt das zu kopierende 'Viereck' auf dem Source-DC zu verschieben, hab ich das kopierte Bild auf dem neuen DC verschoben


Problem doch noch nich ganz gelöst

Wenn ich

BitBlt(mybmp.Canvas.Handle, 0, 0, 6, 10, memDC, 145, 581, SRCCOPY);
benutze, bekomme ich das gewünschte Ergebnis

aber warum bringt

Delphi-Quellcode:
BitBlt(imgDC, 0, 0, 6, 10, memDC, 145, 581, SRCCOPY);
mybmp.Canvas.Handle := imgDC;

dann nur ein weißes Bitmap?? ich versteh das nicht
  Mit Zitat antworten Zitat
Thunderman

Registriert seit: 14. Jun 2002
Ort: Lüneburg
13 Beiträge
 
#5

Re: mit BitBlt Ausschnitt aus einem hBitmap in ein hDC bring

  Alt 20. Jan 2005, 19:47
Hallo!

Wie hast du denn den imgDC erstellt? Und warum nutzt du nicht die erste, funktionierende Variante?
Thunderman
Bei schwierigen Problemen entscheiden wir uns einfach für die richtige Lösung. Klar?
  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 21:41 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