AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Handle von Image für Bmp im Speicher
Thema durchsuchen
Ansicht
Themen-Optionen

Handle von Image für Bmp im Speicher

Ein Thema von BAMatze · begonnen am 20. Nov 2008 · letzter Beitrag vom 21. Nov 2008
Antwort Antwort
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#1

Handle von Image für Bmp im Speicher

  Alt 20. Nov 2008, 07:06
Also eine Funktion aus einer DLL die ich verwende läd ein Bmp in den Speicher. Eine weitere arbeitet dies dann auf und kann es in einem Handle eines Objektes darstellen (laut Aussage Hersteller). Ich habe schon viele versucht aber keinen Erfolg gehabt. Mit Image.Canvas.Handle wurde das Image wenigstens weiß. Habe auch folgende Handles schon probiert Panel.handle, Form1.handle, Image.Picture.Bitmap.handle.
Meine Frage ist, vieleicht stand jemand ja auch schon vor dem Problem, gibt es weitere Handles im Image, die man testen kann? Oder sieht vieleicht jemand einen Fehler in meinem Vorgehen.

Vielen Dank
BAMatze

Ps.: Vieleicht kennt einer eine Möglichkeit das Bild aus dem Speicher zu laden, Zeiger auf den Speicherplatz und Größe habe ich.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: Handle von Image für Bmp im Speicher

  Alt 20. Nov 2008, 08:10
Zitat:
Eine weitere arbeitet dies dann auf und kann es in einem Handle eines Objektes darstellen
Wird sich wohl um ein Bitmaphandle handeln.

Zitat:
Mit Image.Canvas.Handle wurde das Image wenigstens weiß. Habe auch folgende Handles schon probiert Panel.handle, Form1.handle, Image.Picture.Bitmap.handle.
Bitmaphandle !

Um was für eine DLL handelt es sich denn ?
Welche Spezifikationen der DLL sind gegeben ?

Mehr Informationen bitte.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Handle von Image für Bmp im Speicher

  Alt 20. Nov 2008, 08:22
Also das mit dem Bitmap.Handle hab ich auch schon probiert. Leider noch mit eingeschränktem Erfolg, weiß wird sowohl Paintbox, als auch die Datei in die ich es speichere. Kannst du bitte mal schauen, ob ich da einen Fehler gemacht hab?

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var iIndex: integer;
    Tempbmp: TBitmap;
begin
  Tempbmp := TBitmap.Create;
  Tempbmp.SetSize(2560,1920);
  iss_InitCamera(HHCAM,0);

  iss_LoadParameters(HHCAM,'Text.ini');

  for iIndex := 0 to Bildzahl do
    begin
      iss_AllocImageMem(HHCAM, 2560, 1920, 24, Speicher[0].sSpeicherAdresse, Speicher[0].iSpeicherAdresse);
      Speicher[iIndex].iSpeicherNummer := iIndex;
      iss_AddtoSequence(HHCAM, Speicher[iIndex].sSpeicherAdresse, Speicher[iIndex].iSpeicherAdresse);
    end;

  iss_SetImageMem(HHCAM, Speicher[0].sSpeicherAdresse, Speicher[0].iSpeicherAdresse);
  iss_SetImageSize(HHCAM, 2560, 1920);
  iss_SetImagePos(HHCAM, 20,20);

  iss_SetColorMode(HHCAM, 1);
  iss_FreezeVideo(HHCAM,1);
  
  iss_RenderBitmap(HHCAM,Speicher[0].iSpeicherAdresse,Tempbmp.Handle,1);

  Tempbmp.SaveToFile('d:\Versuch1.bmp');

  PaintBox1.Canvas.Draw(0,0,Tempbmp);

  Image1.Picture.Bitmap := Tempbmp;

  for iIndex := 0 to 0 do
    begin
      iss_SaveImageMem(HHCAM,PAnsiChar('d:\Versuch' + inttostr(iIndex)+ '.bmp'), Speicher[iIndex].sSpeicherAdresse, Speicher[iIndex].iSpeicherAdresse);
    end;

end;
kurze Erklärung: die "iss_"-Funktionen kommen aus der DLL.

Hier die Spezifikationen für die beiden Funktionen, in denen die Handles übergeben werden sollen:

Delphi-Quellcode:
4.73 is_RenderBitmap

Syntax

INT is_RenderBitmap (HIDS hf, INT nMemID, HWND hwnd, INT nMode)


Beschreibung

Mit is_RenderBitmap() kann ein Bild aus einem Bildspeicher in einem angegebenen Fenster
ausgegeben werden. Zur Darstellung werden Win32 Bitmapfunktionen verwendet. Die Darstellung
erfolgt generell in dem Format, das beim Allokieren des Bildspeichers festgelegt wurde.
In der Funktion is_AllocImageMem() legt der Parameter bitspixel die Farbtiefe und die Darstellungsart
fest.

Übergabeparameter

hf Handle auf Kamera
nMemID ID des Bildspeichers der angezeigt werden soll
hwnd Fenster Handle des Ausgabefensters
nMode Ausgabeformat
und die 2.

Delphi-Quellcode:
INT is_InitCamera (HIDS* phf, HWND hWnd)

Beschreibung

is_InitCamera() öffnet den Treiber und stellt den Kontakt zur Hardware her. In dieser Funktion
wird nach erfolgreicher Initialisierung das Handle auf die Kamera vergeben. Alle nachfolgenden
Funktionen benötigen diesen Handle als ersten Parameter. Wenn kein DirectDraw zur Bildausgabe
verwendet wird, kann hWnd=NULL übergeben werden.


Übergabeparameter

phf Zeiger auf den Handle der Kamera. Der Inhalt des Zeigers hat beim Aufruf der Funktion folgende Bedeutung:
         0: verwende die erste freie Kamera
         1-254: Öffne die Kamera mit dieser ID
hWnd Handle auf das Fenster, in dem das Bild dargestellt werden soll (kann NULL sein)
Was ich nicht verstehe, ich gebe den Proceduren doch schon alle möglichen Handles, warum hat bisher nicht eins ein Bild auf der Form erzeugt???
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: Handle von Image für Bmp im Speicher

  Alt 20. Nov 2008, 08:57
Aslo dfas Bild soll anscheinend auf ein Window-Handle gerendert (gezeichnet) werden. Möglicherweise Overlay ?
Das speichern über Paintbox, Bitmap usw. kann man vermutlich vergessen.

Da es sich Anscheinend um uEye handelt solltest du mal im iNet via Google suchen.
http://groups.google.com/group/comp....a84ba10294ddd8

Hinweis:
VCL-GR32-Bitmaps sind etwas anders als Windows-Bitmaps, werwende Windows-Bitmaps.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Handle von Image für Bmp im Speicher

  Alt 20. Nov 2008, 09:22
Gibt es vieleicht eine Möglichkeit an das Bild über den Zeiger auf den Speicher und die Größe des Bildes zuzugreifen? Ich möchte nämlich verhindern, dass ich das Bild speichern muss (dies funktioniert wunderbar) um es dann hochzuladen und wieder zu löschen, wenn ich es nicht brauche. Glaube das wäre auch nicht so gut für die Festplatte. Problem dabei ist, ich weiß nicht, wie ich im Speicher nach meinem Bild suchen kann. Vieleicht hast du da nochmal einen Tip oder Link für mich.

Danke
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Handle von Image für Bmp im Speicher

  Alt 21. Nov 2008, 06:38
Hat niemand mal was ähnliches gemacht und kann mir einen Tipp geben?
  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 23:03 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