![]() |
Picture2Bitmap
Hallo,
ich habe ein Bild mit
Delphi-Quellcode:
in meine Eigenschaft Picture geladen.
SetOlePicture(Image1.Picture, MODIMiDocView1.ImageSelection.ExportToPicture(0, 0));
Ich muss auf das Bild aber jetzt als Bitmap zugreifen. Wie bekomme ich es jetzt hin, das ich in der Eigenschaft
Delphi-Quellcode:
auch das Bild habe?
Image1.Picutre.Bitmap
Falls ich darauf zugreife, sagt er mir, dass das Bitmap ungültig ist. Danke Oliver |
Re: Picture2Bitmap
Zitat:
Es könnte eine JPEG Datei sein, oder über OLE werden META Daten übertragen...?!? Frank :coder: |
Re: Picture2Bitmap
Zitat:
Über TGraphic kann ich drauf zugreifen. |
Re: Picture2Bitmap
Zitat:
|
Re: Picture2Bitmap
ääähm...
Delphi-Quellcode:
Ich glaube, das KÖNNTE funktionieren...
function GetBitmap(pic: TPicture): TBitmap;
begin Result := TBitmap.Create; Result.Assign(pic{.Graphic}); end; |
Re: Picture2Bitmap
möp... geht nicht...
Aber das:
Delphi-Quellcode:
Zumindest mit JPEG.
procedure GetBitmap(const Graphic: TGraphic; out Bitmap: TBitmap);
begin if Bitmap = nil then Bitmap := TBitmap.Create; Bitmap.SetSize(Graphic.Width,Graphic.Height); Bitmap.Canvas.Draw(0,0,Graphic); end; EDIT: tpicture->tgraphic |
Re: Picture2Bitmap
Jupp. Mit einer ungefähren Wahrscheinlichkeit von 2,3 * 10^-10, weshalb es mich wundert, dass es bei dir funktioniert hat :stupid: .
Aber anstatt die fehlerhafte erste Zeile zu entfernen, warum nicht gleich eine Funktion benutzen? Den ersten Parameter könnte man noch zu TGraphic vereinfachen, aber das wäre nur noch ein wenig Kosmetik. |
Re: Picture2Bitmap
ja wie jetzt? Geht es so oder nicht? Entweder es geht hundertprozentig oder gar nicht...
|
Re: Picture2Bitmap
Oder es geht nur, wenn der uninitialisierte Bitmap-Parameter zufällig nil beinhaltet. Wobei ich nicht beachtet habe, dass als Argument ein Feld übergeben werden könnte (das ja stets mit 0 initialisiert wird), aber eine immer funktionierende Funktion wäre trotzdem schöner ;) .
|
Re: Picture2Bitmap
Wenn der Anwender zu blöde ist, das Ding zu initialisieren, ist er selber schuld :roll:
Wenn ich das Bitmap als Rückgabeparameter nehme, gibts wieder Probleme mit Speicherlecks, weil der Anwender wiederum zu blöd ist, das Zeug freizugeben. Also entweder - oder. Da es in Delphi leider keine saubere (= zuverlässige und elegante) Möglichkeit gibt, ein Objekt auf seine Existenz hin zu überprüfen bzw. ob hinter einem Pointer eine Instanz oder Speichermüll (der berüchtigte "wilde zeiger") steht (es lebe .Net/Java :mrgreen: ), hab ich keine Chance, das ganze wasserdicht zu machen. Also was wäre deine "immer funktionierende Funktion" bitte? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:08 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