RAH-GEN.PAS 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. Uses Graph;
  2. const
  3. table :array [0..15] of byte = (0,1,2,3,4,5,6,7,8,9,Brown,11,Blue,13,14,15);
  4. Procedure EGAVGADriver;external;
  5. var
  6. inp,outp : file;
  7. p : pointer;
  8. Name : string[10];
  9. Size : word;
  10. k,i,j : word;
  11. x,y : word;
  12. val : byte;
  13. gD,gM : Integer;
  14. begin
  15. gD:=Detect;
  16. {$L EGAVGA.OBJ}
  17. RegisterBGIDriver(@EGAVGADriver);
  18. InitGraph(gD,gM,'');
  19. Assign(outp,'rah-66-2.dat');
  20. ReWrite(outp,1);
  21. k:=7;
  22. BlockWrite(OUTP,k,2);
  23. Name:='1_1.tga';
  24. for k := 1 to 7 do
  25. begin
  26. Name[1] := chr(k+$30);
  27. OutTextXY(300,200,Name);
  28. Assign(inp,Name);
  29. Reset(inp,1);
  30. Seek(INP,12);
  31. BlockRead(inp,x,2);
  32. BlockRead(inp,y,2);
  33. Seek(Inp,$42);
  34. for i := 1 to y do
  35. for j := 1 to x do
  36. begin
  37. BlockRead(INP,val,1);
  38. if (val and $F)=0 then
  39. PutPixel(j,i,Green)
  40. else
  41. if (val and $F) <> $F then
  42. PutPixel(j,i,table[val and $F])
  43. else
  44. PutPixel(j,i,0);
  45. if (val and $F) <> $F then
  46. PutPixel(j,i+y, 0)
  47. else
  48. PutPixel(j,i+y,White);
  49. end;
  50. Close(INP);
  51. Size := ImageSize(1,1,x,y);
  52. BlockWrite(OUTP,Size,2);
  53. GetMem(P,Size);
  54. GetImage(1,1,x,y,P^);
  55. BlockWrite(OUTP,P^,Size);
  56. GetImage(1,1+y,x,2*y,P^);
  57. BlockWrite(OUTP,P^,Size);
  58. FreeMem(P,Size);
  59. ReadLn;
  60. ClearDevice;
  61. end;
  62. CloseGraph;
  63. Close(OUTP);
  64. end.