Ich habe ein seltsames Problem:
Ich wollte die einzelnen Frames eines Videos als BitMap extrahieren und dann miteinander vergleichen (um eine Bewegunsanalyse durchzuführen, aber darum gehts jetzt erstmal nicht =D).
Um die Frames zu extrahieren hab ich diesen Ansatz hier genommen:
www.swissdelphicente...showcode.php?id=1180
Darin wird eine temporäres TBitMap verwendet um den Frame zu speichern:
Delphi-Quelltext
1:
| TmpBmp.SaveToFile(ToFileName); |
ich wollte das eigendlich weiter verwenden, also hab ich die Funktion ein TBitMap zurückgeben lassen und eben mit
Delphi-Quelltext
das BitMap zurückgeben lassen.
Jetzt kommt das komische:
Wenn ich in der Funktion selbst unter das
result:= TmpBmp result in einem TImage malen lassen will, geht dass. Wenn ich jezt aber die einem TBitMap diese Funktion zuordne und das eben dieses TBitMap zeichnen lassen will geht das aus irgend einem Grund nicht.
Also:
Delphi-Quelltext
1: 2:
| result:=TmpBmp; Image1.canvas.draw(1,1,result); |
geht, aber außerhalb der Funktion:
Delphi-Quelltext
1: 2:
| f1:=GrabAviFrame(Quelle,Position); Image1.canvas.draw(1,1,f1); |
geht nicht!
Da steht dann "class EAccessViolation with message 'Access violation at address 0041D677 in module 'Project1.exe'. Read of address 0000001C'."
Hat jemand ne Idee?
Moderiert von
Narses: Highlight- durch Delphi-Tags ersetzt