xwdtobmp.pas 1.1 KB

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