![]() |
teil eines bitmaps in ein anderes kopieren
hy ther,
also ich möchte aus einem teil eines bitmaps, ein neues erstellen! ich habe als ausgangsbild, ein bitmap mit den maßen 8x464! ich möchte das bild in 58 teile aufteilen, also jedes entstandene bild soll dann 8x8 sein! dafür hab ich folgende funktion geschriebn bei der index das bild ist, was zurückgeliefert wird! edit: nach einigen berichtigungen, bin ich nun bei folgendem source angekommen, hab nochmal nachgeschlagen und brauche bei result und sourcebitmap ein devicekontext, wo aber nehm ich mir das her??
Delphi-Quellcode:
aber bitblt gibt mir immer 0 zurück, woran kann das liegen??
function GetBitmapFromTable(SourceBitmap: HBitmap; index: integer): HBitmap;
begin; if SourceBitmap <> 0 then begin Result := SourceBitmap; SetBitmapDimensionEx(Result, 8, 8, 0); BitBlt(Result, (index * 8), 8, 8, 8, SourceBitmap, 0, 0, SRCCOPY); end; end; edit: vom ganzen probieren haben sich paar fehler eingeschlichen^^ |
Re: teil eines bitmaps in ein anderes kopieren
Hi Martin,
Du gibst ein Bitmap mit, weist dem Result das übergebene Bitmap zu. Dann setzt du das Bitmap (auf das du jetzt mit SourceBitmapH und auch mit Result referenzierst) auf die Dimension 8*8. Anschließend kopierst du einen 8*8 Ausschnitt aus dem Bitmap auf sich selbst. Wenn Index > 0 ist, dann ist der Ausschnitt gar nicht mehr am Quellbitmap vorhanden. Du musst auf alle Fälle fürs Result ein eigenes Bitmap erzeugen. lg, daniel |
Re: teil eines bitmaps in ein anderes kopieren
Zitat:
wie würdest du das machen?? |
Re: teil eines bitmaps in ein anderes kopieren
BitBlt erwartet kein hBitmap, sondern ein hDC.
|
Re: teil eines bitmaps in ein anderes kopieren
...und sollte es nicht so sei...
Delphi-Quellcode:
...da das QuellBitmap 8x464 ist ??
BitBlt(Result, 0, (index * 8), 8, 8, SourceBitmap, 0, 0, SRCCOPY);
|
Re: teil eines bitmaps in ein anderes kopieren
Zitat:
Zitat:
ja genau, war schon spät.. ;-) |
Re: teil eines bitmaps in ein anderes kopieren
Ein hDC wäre z.B. Bitmap.Canvas.Handle.
|
Re: teil eines bitmaps in ein anderes kopieren
Zitat:
|
Re: teil eines bitmaps in ein anderes kopieren
Dann musst Du Dir den Devicecontext anders besorgen.
|
Re: teil eines bitmaps in ein anderes kopieren
ok aber wie genau denn, und vor allem von was/wo soll ich ein devicekontext erzeugen oder herholen??
|
Re: teil eines bitmaps in ein anderes kopieren
Da Du anscheinend nur ein Handle auf eine Bitmap hast und ich keine weitere Idee dazu (oder aktuell ein Brett vorm Kopf), muss ich leider passen :( .
|
Re: teil eines bitmaps in ein anderes kopieren
kann ich denn aus einem bitmaphandle irgendwie nen devicekontext erstellen??
|
Re: teil eines bitmaps in ein anderes kopieren
![]() ![]() |
Re: teil eines bitmaps in ein anderes kopieren
ansonsten sollte es auch so gehen:
Delphi-Quellcode:
var
lBitmap: TBitmap; begin lBitmap := TBitmap.Create(); try lBitmap.Handle := BitmapHandle; try //Now you can work with lBitmap.Canvas.Handle finally lBitmap.Handle := 0; end; finally lBitmap.Free; end; |
Re: teil eines bitmaps in ein anderes kopieren
Ist halt die Frage ob er direkt mit dem GDI arbeiten möchte/muss, oder sich das Polster von Delphi gönnen kann :)
|
Re: teil eines bitmaps in ein anderes kopieren
Zur Not in die Sourcen von TBitmap schauen, falls man daraus schlau wird.
|
Re: teil eines bitmaps in ein anderes kopieren
nee alles ohne tbitmap, nur winapi...
mit tbitmap, hab ichs schon ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz