AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Prism image in bytearray umwandeln ?
Thema durchsuchen
Ansicht
Themen-Optionen

image in bytearray umwandeln ?

Ein Thema von wabux · begonnen am 21. Jun 2005 · letzter Beitrag vom 21. Jun 2005
Antwort Antwort
wabux

Registriert seit: 16. Jun 2005
6 Beiträge
 
#1

image in bytearray umwandeln ?

  Alt 21. Jun 2005, 14:40
Hallo,

ich möchte ein image in ein array of byte umwandeln nach dieser Vorlage in VB

Private Overloads Function ImageToBytes( ByVal Img As System.Drawing.Image ) As Byte()
' Konvertiert ein Image-Objekt in ein Byte-Array
Dim IC As New ImageConverter
' Mithilfe des ImageConverter-Objekts ein Image
' in ein Byte-Array überführen
ImageToBytes = CType(IC.ConvertTo( Img, GetType(Byte()) ), Byte())
End Function
-------------------------------------------------------

Delphi-Quellcode:
was mache ich hier falsch?

var bmp : image;
    btmp : bitmap;
    pic : array of byte;
    ic : imageConverter;
begin
   btmp := bitmap.Create('F:\image.gif');

   ic := imageConverter.Create;
   result := byte(ic.Convertto(bmp, pic.GetType ) );
end



Danke f. die Hilfe

[edit=Luckie]Das nächste mal bitte selber die Delphi-Tags setzen. Danke. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat
21. Jun 2005, 14:48
Dieses Thema wurde von "Luckie" von "Tutorials und Kurse" nach "Multimedia" verschoben.
Das ist wohl eher kein Tutorial.
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#3

Re: image in bytearray umwandeln ?

  Alt 21. Jun 2005, 15:19
Ich weis natürlich nicht, in welcher Anordnung VB die Bytes des Bildes schreibt und ob in 24 bit, 32 bit oder sonstiger Farbtiefe, aber dies hier wäre ein Ansatz (geht eventuell auch einfacher):
Delphi-Quellcode:
procedure Graphic2Bmp(AGraphic : TGraphic; var ABmp: TBitmap);
begin
  ABmp.PixelFormat := pf24bit;
  ABmp.Height := AGraphic.Height;
  ABmp.Width := AGraphic.Width;

  AGraphic.Transparent := true;
  ABmp.Canvas.Draw(0, 0, AGraphic);
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  APic: TPicture;
  ABmp: TBitmap;
  BPic: array of byte;
  PicStream: TMemoryStream;
begin
  APic := TPicture.Create;
  ABmp := TBitmap.Create;
  PicStream := TMemoryStream.Create;
  try
    APic.LoadFromFile('F:\image.gif');

    If APic.Graphic is TBitmap then
      ABmp.Assign(APic.Bitmap)
    else
      Graphic2Bmp(APic.Graphic, ABmp);

    // Byte-Array initialisieren
    SetLength(BPic, ABmp.Width * ABmp.Height * (24 div 8));
    // Z.B. ABmp.ScanLine, ABmp.Canvas.Pixels oder ABmp.SaveToStream()
    // für Bytes verwenden
    ABmp.SaveToStream(PicStream);
    PicStream.Read(BPic[0], length(BPic));
  finally
    ABmp.Free;
    APic.Free;
    PicStream.Free;
  end;
end;
Delphi hat für Bilder unter anderem folgenede Klassen:
- TImage ist für die Darstellung auf dem Bildschirm zuständig
- TPicture ist eine "Oberklasse", mit der man z.B. ein Bild aus einer beliebigen Datei über LoadFromFile() laden kann.
- TGraphic ist die Klasse, von der alle Bildsubklassen abstammen.
- TBitmap ist eine Klasse, wie der Name schon sagt, um ausschliesslich Bitmaps zu verarbeiten.

Es gibt für jedes Bildformat noch weitere Klassen (z.B. TJPEGImage, TGIFImage, TPNGImage), deren Units (z.B. JPEGImage, GIFImage, PNGImage) müssen meist noch extra in die uses eingetragen werden, damit solche Bilder per LoadFromFile() geladen werden können. JPEGImage ist bei neueren Delphi-Versionen dabei, GIFImage und PNGImage musst du dir im Internet raussuchen.
  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 00:11 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