index.d.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import { GenericCallback, ImageCallback } from '@jimp/core';
  2. export interface FontChar {
  3. id: number;
  4. x: number;
  5. y: number;
  6. width: number;
  7. height: number;
  8. xoffset: number;
  9. yoffset: number;
  10. xadvance: number;
  11. page: number;
  12. chnl: number;
  13. }
  14. export interface FontInfo {
  15. face: string;
  16. size: number;
  17. bold: number;
  18. italic: number;
  19. charset: string;
  20. unicode: number;
  21. stretchH: number;
  22. smooth: number;
  23. aa: number;
  24. padding: [number, number, number, number];
  25. spacing: [number, number];
  26. }
  27. export interface FontCommon {
  28. lineHeight: number;
  29. base: number;
  30. scaleW: number;
  31. scaleH: number;
  32. pages: number;
  33. packed: number;
  34. alphaChnl: number;
  35. redChnl: number;
  36. greenChnl: number;
  37. blueChnl: number;
  38. }
  39. export interface Font {
  40. chars: {
  41. [char: string]: FontChar;
  42. };
  43. kernings: {
  44. [firstString: string]: {
  45. [secondString: string]: number;
  46. };
  47. };
  48. pages: string[];
  49. common: FontCommon;
  50. info: FontInfo;
  51. }
  52. type PrintableText =
  53. | any
  54. | {
  55. text: string;
  56. alignmentX: number;
  57. alignmentY: number;
  58. };
  59. interface PrintClass {
  60. // Text methods
  61. print(
  62. font: Font,
  63. x: number,
  64. y: number,
  65. text: PrintableText,
  66. cb?: ImageCallback<this>
  67. ): this;
  68. print(
  69. font: Font,
  70. x: number,
  71. y: number,
  72. text: PrintableText,
  73. maxWidth?: number,
  74. cb?: ImageCallback<this>
  75. ): this;
  76. print(
  77. font: Font,
  78. x: number,
  79. y: number,
  80. text: PrintableText,
  81. maxWidth?: number,
  82. maxHeight?: number,
  83. cb?: ImageCallback<this>
  84. ): this;
  85. }
  86. interface Print {
  87. constants: {
  88. measureText(font: Font, text: PrintableText): number;
  89. measureTextHeight(font: Font, text: PrintableText, maxWidth: number): number;
  90. // Font locations
  91. FONT_SANS_8_BLACK: string;
  92. FONT_SANS_10_BLACK: string;
  93. FONT_SANS_12_BLACK: string;
  94. FONT_SANS_14_BLACK: string;
  95. FONT_SANS_16_BLACK: string;
  96. FONT_SANS_32_BLACK: string;
  97. FONT_SANS_64_BLACK: string;
  98. FONT_SANS_128_BLACK: string;
  99. FONT_SANS_8_WHITE: string;
  100. FONT_SANS_16_WHITE: string;
  101. FONT_SANS_32_WHITE: string;
  102. FONT_SANS_64_WHITE: string;
  103. FONT_SANS_128_WHITE: string;
  104. loadFont(file: string): Promise<Font>;
  105. loadFont(file: string, cb: GenericCallback<Font, any, any>): Promise<never>;
  106. }
  107. class: PrintClass
  108. }
  109. export default function(): Print;