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