blob: 4b9fbd8be8780a4bc9937b859ec4449098e1ac89 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
#include <Image_Image.hxx>
#include <AlienImage_XAlienImage.hxx>
#include <OSD_Process.hxx>
#include <OSD_File.hxx>
#include <ImageUtility_XWD.ixx>
ImageUtility_XWD::ImageUtility_XWD()
{ myXAlienImage = NULL ;
myImage = NULL ;
}
Handle(Image_Image) ImageUtility_XWD::Image() const
{ return myImage ; }
Handle(AlienImage_XAlienImage) ImageUtility_XWD::XAlienImage() const
{ return myXAlienImage; }
Standard_Boolean ImageUtility_XWD::XWD( const Standard_CString xwdOptions )
{ Standard_Boolean RetStatus ;
OSD_File File = OSD_File::BuildTemporary() ;
TCollection_AsciiString s, Name ;
OSD_Path Path ;
OSD_Process Process ;
File.Path( Path ) ;
Path.SystemName( Name, OSD_Default ) ;
#ifdef TRACE
cout << "BuildTemporaryFile :" << Name << endl << flush ;
#endif
s = TCollection_AsciiString("xwd ")
+ TCollection_AsciiString(xwdOptions)
+ TCollection_AsciiString(" -out ")
+ Name ;
Process.Spawn( s ) ;
myXAlienImage = new AlienImage_XAlienImage() ;
if (( RetStatus = myXAlienImage->Read( File ) )) {
myImage = myXAlienImage->ToImage() ;
}
else {
myImage = NULL ;
myXAlienImage = NULL ;
}
return RetStatus ;
}
|