Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 04, 2025 04:14

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Problem mit DIBs
BeitragVerfasst: Di Nov 26, 2002 09:37 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
tach ich habe nen prob,

bin dabei meinen mediaplayer ne funktion reinzubauen um screens zu erstellen, aber ich kann als ergebnis nur nen DIBimage übergeben, ich kenne aber dieses format nicht... TBitmap ist mir bekannt, aber DIB nicht :(

<a href='http://www.microsoft.com/Developer/PRODINFO/directx/dxm/help/ds/Appendixes/IBasicVideo_Object.htm#IBasicVideo_GetCurrentImage' target='_blank'>http://www.microsoft.com/Developer/PRODINF...GetCurrentImage</a>

wie könnte man die funktion parameter übergeben so das es in nen DIBImage gespeichert wird und dann in nen BMP Kopiert ???

so raucht delphi total ab :(:

Code:
  1.  
  2.  
  3.  
  4.  
  5. uses Windows, ActiveX, DirectShow, Graphics;
  6.  
  7.  
  8.  
  9.  &nbsp;// DirectShow Media Player.
  10.  
  11.  &nbsp;TDSMP = record
  12.  
  13.  &nbsp; &nbsp;Initialized &nbsp;: boolean;
  14.  
  15.  
  16.  
  17.  &nbsp; &nbsp;// DirectShow stuff.
  18.  
  19.  &nbsp; &nbsp;GraphBuilder : IGraphBuilder;
  20.  
  21.  &nbsp; &nbsp;MediaControl : IMediaControl;
  22.  
  23.  &nbsp; &nbsp;MediaSeeking : IMediaSeeking;
  24.  
  25.  &nbsp; &nbsp;MediaEventEx : IMediaEvent;
  26.  
  27.  &nbsp; &nbsp;BasicAudio &nbsp; : IBasicAudio;
  28.  
  29.  &nbsp; &nbsp;BasicVideo &nbsp; : IBasicVideo;
  30.  
  31.  &nbsp; &nbsp;VideoWindow &nbsp;: IVideoWindow;
  32.  
  33.  &nbsp; &nbsp;Dvd &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;: IDVDControl;
  34.  
  35.  &nbsp; &nbsp;DvdInfo &nbsp; &nbsp; &nbsp;: IDvdInfo;
  36.  
  37.  &nbsp; &nbsp;// Video info.
  38.  
  39.  &nbsp; &nbsp;VideoAvail &nbsp; : boolean;
  40.  
  41.  &nbsp; &nbsp;VideoWidth &nbsp; : integer;
  42.  
  43.  &nbsp; &nbsp;VideoHeight &nbsp;: integer;
  44.  
  45.  &nbsp; &nbsp;VideoBitRate : integer;
  46.  
  47.  &nbsp; &nbsp;VideoFPS &nbsp; &nbsp; : single;
  48.  
  49.  &nbsp;end;
  50.  
  51.  
  52.  
  53. function dsmpGetVideoImage(_dsmp: TDSMP) : TBitmap;
  54.  
  55. var
  56.  
  57.  &nbsp;Buffersize : Longint;
  58.  
  59.  &nbsp;bmp: TBitmap;
  60.  
  61. begin
  62.  
  63.  &nbsp;bmp := TBitmap.Create;
  64.  
  65.  &nbsp;bmp.width := _dsmp.VideoWidth;
  66.  
  67.  &nbsp;bmp.height := _dsmp.VideoHeight;
  68.  
  69.  
  70.  
  71.  &nbsp;buffersize := ( _dsmp.VideoWidth * _dsmp.VideoHeight )* 3;
  72.  
  73.  &nbsp;_dsmp.BasicVideo.GetCurrentImage(buffersize, bmp);
  74.  
  75.  
  76.  
  77.  &nbsp;result.Assign(bmp);
  78.  
  79.  
  80.  
  81.  &nbsp;bmp.free;
  82.  
  83. end;
  84.  
  85.  
  86.  
  87.  


stimmt die buffersize ??? kenn sich da einer aus ?? ich raffs nich, bitte HELP !!!!
Ich weiss ist DirectShow, hat ja nix mit Ogl zu tun, deswegen ja allgemein.

ich hab nen code gefunden, aber den kann ich ums verrecken nicht übersetzen :(

<a href='http://www.codeguru.com/mfc/faq/comments/1369.shtml' target='_blank'>http://www.codeguru.com/mfc/faq/comments/1369.shtml</a>


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 26, 2002 10:24 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Warum das nicht funzt, weiss ich leider auf die Schnelle nicht, aber was DIB ist, kann ich Dir sagen. Ein Blick in die Paltform-SDK verrät: DIB = Device-Independent Bitmaps. Also IMHO letztlich ein BMP, wenn es als File gespeichert wird. Ich muss mal daheim nachschaun. Hab' mal irgendwo sowas ähniches geshreiben, allerdings meines wissens nach NICHT mit Direct Show sondern mit ActiveMedia Player... Mal schaun.

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 27, 2002 09:58 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
also eigentlich will ich ja keine übersetzung vom code, da dieses unnötig ist....

ist müsste einfach nur so aussehen, ich wills am ende in nem TBitmap haben, mehr nicht.

Code:
  1.  
  2.  
  3.  
  4.  
  5. procedure TXaleratePLayer.GetImage;
  6.  
  7. var
  8.  
  9.  &nbsp;Buffersize : Integer;
  10.  
  11.  &nbsp;Size &nbsp; &nbsp; &nbsp; : TRect;
  12.  
  13.  &nbsp;Bmp &nbsp; &nbsp; &nbsp; &nbsp;: TBitmap;
  14.  
  15. begin
  16.  
  17.  &nbsp;// BIld erstellen und grösse festlegen
  18.  
  19.  &nbsp;Bmp := TBitmap.Create;
  20.  
  21.  &nbsp;Size := GetVideoSize;
  22.  
  23.  &nbsp;Bmp.Width := Size.Right;
  24.  
  25.  &nbsp;Bmp.Height := Size.Bottom;
  26.  
  27.  
  28.  
  29.  &nbsp;// Bild holen (raucht hier ab)
  30.  
  31.  &nbsp;Player.BasicVideo.GetCurrentImage(BufferSize, Bmp);
  32.  
  33.  
  34.  
  35.  &nbsp;// Bild speichern und danach freigeben
  36.  
  37.  &nbsp;Bmp.SaveToFile(PrgPath+'screen.bmp');
  38.  
  39.  &nbsp;Bmp.Free;
  40.  
  41. end;
  42.  
  43.  
  44.  
  45.  


GetCurrentImage(var BufferSize : Integer; var pDIBImage);

so geht es aber nicht, da raucht es ab :(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Erledigt.
BeitragVerfasst: Do Nov 28, 2002 17:06 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Das Problem hat sich nun endlich erledigt, ich habe ein Package gefunden mit der man DirectShow total ansteuern kann.
Muss aber deswegen mein player komplett neuprogrammieren.
Aber dafür wird das teil Mediaplayer und co danach um längen übertrumpfen :))))
Freut euch auf einen Sackschnellen Player der massig neue sachen kann.
Wie auch die Screenshot funktion. =) Checkt bei interesse einfach mal www.xalerate.de.vu ab.

Danke aber trotzdem für anworten,
@Admins: Thread kann gelöscht werden.

matane,
Finalspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Erledigt.
BeitragVerfasst: Do Nov 28, 2002 22:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Zitat:
@Admins: Thread kann gelöscht werden.

So was würde ich für die Nachwelt aufrechterhalten, gib am Besten noch 'n Link zum Package an... dann weiß auch die Nachwelt, was man da tun kann. Zumindest finde ich das Löschen eines Threads nicht angebracht.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]