1 {
2   Converts a xwd image to a bpm image
3 
4   Usage: xwdtobmp [source] [dest]
5 
6   Author: Felipe Monteiro de Carvalho
7 
8   License: Public domain
9 }
10 program xwdtobmp;
11 
12 {$ifdef fpc}
13   {$mode objfpc}{$H+}
14 {$endif}
15 
16 {$ifndef fpc}
17   {$define win32}
18 {$endif}
19 
20 
21 {$ifdef win32}
22   {$apptype console}
23 {$endif}
24 
25 uses FPWriteBMP, FPReadXWD, classes, FPImage, sysutils;
26 
27 var
28   img : TFPMemoryImage;
29   reader : TFPCustomImageReader;
30   Writer : TFPCustomimageWriter;
31   ReadFile, WriteFile, WriteOptions : string;
32 begin
33   if ParamCount <> 2 then
34   begin
35     WriteLn('Usage: xwdtobmp [source] [dest]');
36     Exit;
37   end;
38 
39   try
40     writeln ('Initing');
41     Reader := TFPReaderXWD.Create;
42     Writer := TFPWriterBMP.Create;
43     TFPWriterBMP(Writer).BitsPerPixel:=32;
44     img := TFPMemoryImage.Create(0,0);
45     img.UsePalette:=false;
46     ReadFile := ParamStr(1);
47     WriteFile := ParamStr(2);
48 
49     writeln ('Reading image');
50     img.LoadFromFile (ReadFile, Reader);
51 
52     writeln ('Writing image');
53     img.SaveToFile (WriteFile, Writer);
54 
55     writeln ('Clean up');
56     Reader.Free;
57     Writer.Free;
58     Img.Free;
59   except
60     on e : exception do
61       writeln ('Error: ',e.message);
62   end;
63 end.
64 
65