Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Prism TObject zu System.Byte[] casten und Bitmap zuweisen ??? (https://www.delphipraxis.net/65904-tobject-zu-system-byte%5B%5D-casten-und-bitmap-zuweisen.html)

semo 5. Apr 2006 11:26

Re: TObject zu System.Byte[] casten und Bitmap zuweisen ???
 
Zitat:

Wenn nur die Pixeldaten enthalten sind, könntest P/Invoke nutzen oder eben zu Fuß die Sache erledigen Wink .
C-Quellcode: ...
wie würde das denn in delphi aussehen?

winx 6. Apr 2006 07:25

Re: TObject zu System.Byte[] casten und Bitmap zuweisen ???
 
ich habs folgendermaßen gelöst:

Delphi-Quellcode:
function TRemoteController.ConvertObjecttoBitmap(data : TObject):Bitmap;
var
  ms : MemoryStream;
  preview : Bitmap;
  byteArray : TBytes;
  i: Integer;
begin

  try
    byteArray := TBytes(Data);
    ms:= MemoryStream.Create(byteArray);
    ms.set_Position(0);
    preview:=Bitmap.Create(ms);
    ms.Free;
    result := preview;
  except
    raise EBitmapConvertionException.Create();
  end;

end;

semo 6. Apr 2006 07:32

Re: TObject zu System.Byte[] casten und Bitmap zuweisen ???
 
und wenn nun nur die reinen bilddaten vorhanden sind und nicht die headerdaten für das bild?
bei mir kommt es zu einer zugriffsverletzung, da wie gesagt die header infos fehlen.

xaromz 6. Apr 2006 07:49

Re: TObject zu System.Byte[] casten und Bitmap zuweisen ???
 
Hallo,
Zitat:

Zitat von computer-glossar.de
und wenn nun nur die reinen bilddaten vorhanden sind und nicht die headerdaten für das bild?
bei mir kommt es zu einer zugriffsverletzung, da wie gesagt die header infos fehlen.

entweder Du nutzt die Funktion, die Khabarakh vorgeschlagen hat, oder Du erstellst Dir einen Bitmap-Header und schreibst ihn mit in den Stream. Der Bitmap-Header ist gut dokumentiert und einfach zu erstellen (im Grunde nur Kennung, Bildgröße, Farbtiefe und evtl. Palette).

Gruß
xaromz


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:00 Uhr.
Seite 2 von 2     12   

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