从流中加载TGLImage或TGLTexture

从流中加载TGLImage或TGLTexture,image,delphi,stream,glscene,Image,Delphi,Stream,Glscene,我正在使用Delphi XE2的GLScene SVN Snapshot 6432,似乎无法从流中加载纹理图像 我已经浏览了文件,搜索了互联网,但我能找到的都是 是LoadFromFile声明,任何地方都不存在LoadFromStream 我也查看了源代码,但我找不到或不理解处理的代码 文件加载过程 是否可以以某种方式将图像文件从TMemoryStream加载到TGLTexture或TGLImage 编辑: 我做了更多的研究: 确实有LoadFromStream声明可用,它们似乎指向文件 App

我正在使用Delphi XE2的GLScene SVN Snapshot 6432,似乎无法从流中加载纹理图像

我已经浏览了文件,搜索了互联网,但我能找到的都是 是LoadFromFile声明,任何地方都不存在LoadFromStream

我也查看了源代码,但我找不到或不理解处理的代码 文件加载过程

是否可以以某种方式将图像文件从TMemoryStream加载到TGLTexture或TGLImage

编辑:

我做了更多的研究:

确实有LoadFromStream声明可用,它们似乎指向文件 ApplicationFileIO.pas位于GLScene源目录中

例如,当从TGLImage调用LoadFromStream时,我会收到错误消息 “将TGLImage导入TMemoryStream不可用。(C:\GLSeneLibraryPath\Source\ApplicationFileIO.pas,第348行)”

在收到上述消息时,我尝试了以下代码:

procedure TtestForm.Button1Click(Sender: TObject);
  var ms: tmemorystream;
      img: tglimage;
begin
  ms:=TMemoryStream.Create;
  img:=TGLImage.Create;

  opd.Execute(Self.Handle);

  ms.LoadFromFile(opd.FileName);
  img.LoadFromStream(ms);

  ms.Free;
  img.Free;
end;
我是否可能需要使用applicationpleio.pas单元来实现这一点


我已尝试将该文件包含在uses子句中,但没有任何区别。

您能否更详细地介绍一下,因为在GLGraphics.pas
TGLImage=class(TGLBaseImage)
中有一个公共
过程LoadFromStream(stream:TStream);覆盖
在我刚下载的文件的
目录中有63个名为
LoadFromStream
的过程。对不起,我将编辑这个问题。您使用的是什么版本?只有在您的版本中不应实现LoadFromStream,或者在您的路径中有另一个名为GLImage的类时,才会出现此错误。顺便说一句,你可能尝试实现的(BMP/PNG)不会以这种方式工作,方法是
img.Assign(BMP)
img.Assign(PNG)
,对象当然可以从流中加载。对不起,我从来没有写过什么版本。我使用的是Delphi XE2和GLScene SVN快照6432