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