index.d.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import { DrawPosterUseOpts } from '../../utils/interface';
  2. import { ImageFitOption } from '../draw-function/draw-image-fit';
  3. /** 矩形基本信息 */
  4. interface PainterItemSize {
  5. /** 容器的宽度,固定值 */
  6. width: number;
  7. /** 容器的高度,固定值 */
  8. height: number;
  9. }
  10. /** 元素位置信息 */
  11. interface PainterItemSite {
  12. /** 元素锚点距左边的距离; 默认: 0 */
  13. left?: number;
  14. /** 元素锚点距上边的距离; 默认: 0 */
  15. top?: number;
  16. }
  17. /** 绘制图片信息 */
  18. interface PainterImageInfo extends PainterItemSize, PainterItemSite {
  19. /** 绘制图片元素 */
  20. type: 'image';
  21. /** 图片地址 */
  22. src: string;
  23. /** 图片自适应, 可参考 css 属性 object-fit */
  24. objectFit?: ImageFitOption['objectFit'];
  25. /** 图片在元素容器中显示的位置,可参考 css 属性 object-position */
  26. position?: ImageFitOption['intrinsicPosition'];
  27. /** 圆角尺寸; 默认: 0 */
  28. radius?: number;
  29. }
  30. /** 绘制矩形信息 */
  31. interface PainterRectInfo extends PainterItemSize, PainterItemSite {
  32. /** 绘制矩形元素 */
  33. type: "rect";
  34. /** 矩形背景颜色; 默认: "#000" */
  35. background?: string;
  36. /** 圆角尺寸; 默认: 0 */
  37. radius?: number;
  38. }
  39. /** 绘制单行文字信息 */
  40. interface PainterTextInfo extends PainterItemSite {
  41. /** 绘制文本元素 */
  42. type: "text";
  43. /** 文本颜色; 默认: "#000" */
  44. color?: string;
  45. /** 字体; 默认: "serial" */
  46. fontFamily?: string;
  47. /** 字号(单位rpx); 默认: 30 rpx */
  48. fontSize?: number;
  49. /** 字重; 默认: "normal" 可选项: "bold" */
  50. fontWeight?: string;
  51. /** 字型 默认: "normal" 可选项: "italic" */
  52. fontStyle?: string;
  53. /** 元素的宽度(单位rpx), 水平排布时影响后一个元素的位置,为 null 时根据文字实际占用的宽度计算 */
  54. width?: number;
  55. /** 文本内容 */
  56. content: string;
  57. }
  58. /** 绘制多行文字信息 */
  59. interface PainterLineFeedTextInfo extends PainterItemSite {
  60. /** 绘制换行文本元素 */
  61. type: "line-feed-text";
  62. /** 文本颜色; 默认: "#000" */
  63. color?: string;
  64. /** 字体; 默认: "serial" */
  65. fontFamily?: string;
  66. /** 字号(单位rpx); 默认: 30 rpx */
  67. fontSize?: number;
  68. /** 字重; 默认: "normal" 可选项: "bold" */
  69. fontWeight?: string;
  70. /** 字型 默认: "normal" 可选项: "italic" */
  71. fontStyle?: string;
  72. /** 文本块的宽度,不能为空 */
  73. width: number;
  74. /** 行高; 默认取当前文字行高 */
  75. lineHeight?: number;
  76. /** 文本最大行数,超出即显示省略号; 默认3行 */
  77. lineClamp?: number;
  78. /** 文本内容 */
  79. content: string;
  80. }
  81. /** 绘制二维码信息 */
  82. interface PainterQrCodeInfo extends PainterItemSite {
  83. /** 绘制换行文本元素 */
  84. type: "qr-code";
  85. /** 二维码尺寸 */
  86. size: number;
  87. /** 二维码内容 */
  88. content: string;
  89. /** 边距,二维码实际尺寸会根据所设边距值进行缩放调整(默认:5) */
  90. margin?: number;
  91. /** 背景色(默认:'#ffffff')*/
  92. backgroundColor?: string;
  93. /** 前景色(默认:'#000000') */
  94. foregroundColor?: string;
  95. }
  96. export interface PainterContainerOption extends PainterItemSize {
  97. /** 绘制项的数组 */
  98. contents: Array<PainterImageInfo | PainterRectInfo | PainterTextInfo | PainterLineFeedTextInfo | PainterQrCodeInfo>;
  99. }
  100. declare const _default: DrawPosterUseOpts;
  101. export default _default;