wechat-emojis 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/API.md +228 -0
  2. package/REACT_USAGE.md +456 -0
  3. package/README.md +251 -0
  4. package/assets/animal//345/217/221/346/212/226.png +0 -0
  5. package/assets/animal//347/214/252/345/244/264.png +0 -0
  6. package/assets/animal//350/267/263/350/267/263.png +0 -0
  7. package/assets/animal//350/275/254/345/234/210.png +0 -0
  8. package/assets/blessing//345/272/206/347/245/235.png +0 -0
  9. package/assets/blessing//347/203/237/350/212/261.png +0 -0
  10. package/assets/blessing//347/210/206/347/253/271.png +0 -0
  11. package/assets/blessing//347/231/274.png +0 -0
  12. package/assets/blessing//347/244/274/347/211/251.png +0 -0
  13. package/assets/blessing//347/246/217.png +0 -0
  14. package/assets/blessing//347/272/242/345/214/205.png +0 -0
  15. package/assets/face/666.png +0 -0
  16. package/assets/face/Emm.png +0 -0
  17. package/assets/face//344/272/262/344/272/262.png +0 -0
  18. package/assets/face//345/201/267/347/254/221.png +0 -0
  19. package/assets/face//345/202/262/346/205/242.png +0 -0
  20. package/assets/face//345/206/215/350/247/201.png +0 -0
  21. package/assets/face//345/212/240/346/262/271.png +0 -0
  22. package/assets/face//345/217/221/345/221/206.png +0 -0
  23. package/assets/face//345/217/221/346/200/222.png +0 -0
  24. package/assets/face//345/217/257/346/200/234.png +0 -0
  25. package/assets/face//345/217/263/345/223/274/345/223/274.png +0 -0
  26. package/assets/face//345/217/271/346/260/224.png +0 -0
  27. package/assets/face//345/220/203/347/223/234.png +0 -0
  28. package/assets/face//345/220/220.png +0 -0
  29. package/assets/face//345/221/262/347/211/231.png +0 -0
  30. package/assets/face//345/222/222/351/252/202.png +0 -0
  31. package/assets/face//345/223/207.png +0 -0
  32. package/assets/face//345/230/230.png +0 -0
  33. package/assets/face//345/230/277/345/223/210.png +0 -0
  34. package/assets/face//345/233/247.png +0 -0
  35. package/assets/face//345/233/260.png +0 -0
  36. package/assets/face//345/235/217/347/254/221.png +0 -0
  37. package/assets/face//345/244/247/345/223/255.png +0 -0
  38. package/assets/face//345/244/251/345/225/212.png +0 -0
  39. package/assets/face//345/244/261/346/234/233.png +0 -0
  40. package/assets/face//345/245/270/347/254/221.png +0 -0
  41. package/assets/face//345/245/275/347/232/204.png +0 -0
  42. package/assets/face//345/247/224/345/261/210.png +0 -0
  43. package/assets/face//345/256/263/347/276/236.png +0 -0
  44. package/assets/face//345/260/264/345/260/254.png +0 -0
  45. package/assets/face//345/276/227/346/204/217.png +0 -0
  46. package/assets/face//345/276/256/347/254/221.png +0 -0
  47. package/assets/face//345/277/253/345/223/255/344/272/206.png +0 -0
  48. package/assets/face//346/201/220/346/203/247.png +0 -0
  49. package/assets/face//346/202/240/351/227/262.png +0 -0
  50. package/assets/face//346/203/212/346/201/220.png +0 -0
  51. package/assets/face//346/203/212/350/256/266.png +0 -0
  52. package/assets/face//346/204/211/345/277/253.png +0 -0
  53. package/assets/face//346/206/250/347/254/221.png +0 -0
  54. package/assets/face//346/211/223/350/204/270.png +0 -0
  55. package/assets/face//346/212/223/347/213/202.png +0 -0
  56. package/assets/face//346/212/240/351/274/273.png +0 -0
  57. package/assets/face//346/215/202/350/204/270.png +0 -0
  58. package/assets/face//346/222/207/345/230/264.png +0 -0
  59. package/assets/face//346/223/246/346/261/227.png +0 -0
  60. package/assets/face//346/225/262/346/211/223.png +0 -0
  61. package/assets/face//346/227/240/350/257/255.png +0 -0
  62. package/assets/face//346/227/272/346/237/264.png +0 -0
  63. package/assets/face//346/231/225.png +0 -0
  64. package/assets/face//346/234/272/346/231/272.png +0 -0
  65. package/assets/face//346/261/227.png +0 -0
  66. package/assets/face//346/265/201/346/263/252.png +0 -0
  67. package/assets/face//347/224/237/347/227/205.png +0 -0
  68. package/assets/face//347/226/221/351/227/256.png +0 -0
  69. package/assets/face//347/231/275/347/234/274.png +0 -0
  70. package/assets/face//347/232/261/347/234/211.png +0 -0
  71. package/assets/face//347/235/241.png +0 -0
  72. package/assets/face//347/240/264/346/266/225/344/270/272/347/254/221.png +0 -0
  73. package/assets/face//347/244/276/344/274/232.png +0 -0
  74. package/assets/face//347/254/221/350/204/270.png +0 -0
  75. package/assets/face//347/277/273/347/231/275/347/234/274.png +0 -0
  76. package/assets/face//350/200/266.png +0 -0
  77. package/assets/face//350/204/270/347/272/242.png +0 -0
  78. package/assets/face//350/211/262.png +0 -0
  79. package/assets/face//350/213/246/346/266/251.png +0 -0
  80. package/assets/face//350/241/260.png +0 -0
  81. package/assets/face//350/243/202/345/274/200.png +0 -0
  82. package/assets/face//350/256/251/346/210/221/347/234/213/347/234/213.png +0 -0
  83. package/assets/face//350/260/203/347/232/256.png +0 -0
  84. package/assets/face//351/204/231/350/247/206.png +0 -0
  85. package/assets/face//351/227/255/345/230/264.png +0 -0
  86. package/assets/face//351/230/264/351/231/251.png +0 -0
  87. package/assets/face//351/232/276/350/277/207.png +0 -0
  88. package/assets/face//351/252/267/351/253/205.png +0 -0
  89. package/assets/face//351/274/223/346/216/214.png +0 -0
  90. package/assets/gesture/OK.png +0 -0
  91. package/assets/gesture//345/213/276/345/274/225.png +0 -0
  92. package/assets/gesture//345/220/210/345/215/201.png +0 -0
  93. package/assets/gesture//345/274/261.png +0 -0
  94. package/assets/gesture//345/274/272.png +0 -0
  95. package/assets/gesture//345/276/227/346/204/217.png +0 -0
  96. package/assets/gesture//346/212/261/346/213/263.png +0 -0
  97. package/assets/gesture//346/213/245/346/212/261.png +0 -0
  98. package/assets/gesture//346/213/263/345/244/264.png +0 -0
  99. package/assets/gesture//346/217/241/346/211/213.png +0 -0
  100. package/assets/gesture//350/200/266.png +0 -0
  101. package/assets/gesture//350/203/234/345/210/251.png +0 -0
  102. package/assets/other//344/276/277/344/276/277.png +0 -0
  103. package/assets/other//345/207/213/350/260/242.png +0 -0
  104. package/assets/other//345/222/226/345/225/241.png +0 -0
  105. package/assets/other//345/225/244/351/205/222.png +0 -0
  106. package/assets/other//345/230/264/345/224/207.png +0 -0
  107. package/assets/other//345/244/252/351/230/263.png +0 -0
  108. package/assets/other//345/245/213/346/226/227.png +0 -0
  109. package/assets/other//345/277/203/347/242/216.png +0 -0
  110. package/assets/other//346/231/232/345/256/211.png +0 -0
  111. package/assets/other//347/202/270/345/274/271.png +0 -0
  112. package/assets/other//347/210/206/347/217/240.png +0 -0
  113. package/assets/other//347/210/206/347/253/271.png +0 -0
  114. package/assets/other//347/210/261/345/277/203.png +0 -0
  115. package/assets/other//350/217/234/345/210/200.png +0 -0
  116. package/assets/other//350/233/213/347/263/225.png +0 -0
  117. package/assets/other//351/262/234/350/212/261.png +0 -0
  118. package/package.json +49 -0
  119. package/wechatEmoji.js +314 -0
  120. package/wechatEmoji.ts +364 -0
package/README.md ADDED
@@ -0,0 +1,251 @@
1
+ # 微信表情包
2
+
3
+ 完整的微信内置表情资源库,包含 109 个高清 PNG 图片和类型安全的 TypeScript API。
4
+
5
+ ## 功能特性
6
+
7
+ - 🎯 **完整收录** - 109 个微信内置表情,按类别组织
8
+ - 🔧 **TypeScript 支持** - 完整类型定义,编译时错误检查
9
+ - 🚀 **即插即用** - 支持 React、Vue、Angular 等主流框架
10
+ - 📦 **多种导入方式** - ES6 模块、CommonJS、直接文件引用
11
+ - 🔍 **强大 API** - 搜索、分类、随机获取等功能
12
+ - 📱 **高质量图片** - PNG 格式,适合各种显示场景
13
+ - 📚 **详细文档** - 完整 API 文档和使用示例
14
+
15
+ ## 快速开始
16
+
17
+ ### 安装使用
18
+
19
+ #### 通过 NPM 安装(推荐)
20
+
21
+ ```bash
22
+ # 使用 npm 安装
23
+ npm install wechat-emojis
24
+
25
+ # 复制表情资源到项目的 public 目录(重要)
26
+ mkdir -p public/assets
27
+ cp -r node_modules/wechat-emojis/assets/* public/assets/
28
+ ```
29
+
30
+ ### 基础用法
31
+
32
+ ```typescript
33
+ // 使用 NPM 安装的情况
34
+ import { getEmojiPath, getEmojisByCategory, EmojiCategory, searchEmojis } from 'wechat-emojis';
35
+
36
+ // 或者从本地导入
37
+ // import { getEmojiPath, getEmojisByCategory, EmojiCategory, searchEmojis } from './wechatEmoji';
38
+
39
+ // 获取单个表情
40
+ const smilePath = getEmojiPath('微笑'); // 'assets/face/微笑.png'
41
+
42
+ // 获取分类表情
43
+ const faceEmojis = getEmojisByCategory(EmojiCategory.FACE); // 75个人脸表情
44
+
45
+ // 搜索表情
46
+ const laughEmojis = searchEmojis('笑'); // 包含"笑"的所有表情
47
+ ```
48
+
49
+ ## 项目结构
50
+
51
+ ```text
52
+ wechat-emojis/
53
+ ├── assets/ # 表情图片资源 (109个PNG文件)
54
+ │ ├── face/ # 人脸表情 (75个)
55
+ │ ├── gesture/ # 手势表情 (10个)
56
+ │ ├── animal/ # 动物表情 (4个)
57
+ │ ├── blessing/ # 祝福表情 (7个)
58
+ │ └── other/ # 其他表情 (13个)
59
+ ├── wechatEmoji.ts # TypeScript API模块
60
+ ├── wechatEmoji.js # 编译后的JavaScript文件
61
+ ├── data.js # 基础数据文件
62
+ ├── example.ts # 使用示例
63
+ ├── API.md # 详细API文档
64
+ └── tsconfig.json # TypeScript配置
65
+ ```
66
+
67
+ ## 使用指南
68
+
69
+ ### React 组件
70
+
71
+ ```tsx
72
+ import React from 'react';
73
+ import { getEmojiPath, getEmojisByCategory, EmojiCategory } from 'wechat-emojis';
74
+
75
+ const EmojiPicker: React.FC = () => {
76
+ const faceEmojis = getEmojisByCategory(EmojiCategory.FACE);
77
+
78
+ return (
79
+ <div className="emoji-grid">
80
+ {faceEmojis.map(emoji => (
81
+ <img
82
+ key={emoji.name}
83
+ src={getEmojiPath(emoji.name)}
84
+ alt={emoji.name}
85
+ className="emoji-item"
86
+ onClick={() => console.log(`选择: ${emoji.name}`)}
87
+ />
88
+ ))}
89
+ </div>
90
+ );
91
+ };
92
+ ```
93
+
94
+ ### Vue 组件
95
+
96
+ ```vue
97
+ <template>
98
+ <div class="emoji-picker">
99
+ <img
100
+ v-for="emoji in emojis"
101
+ :key="emoji.name"
102
+ :src="getEmojiPath(emoji.name)"
103
+ :alt="emoji.name"
104
+ @click="selectEmoji(emoji)"
105
+ />
106
+ </div>
107
+ </template>
108
+
109
+ <script setup lang="ts">
110
+ import { getEmojisByCategory, getEmojiPath, EmojiCategory } from 'wechat-emojis';
111
+
112
+ const emojis = getEmojisByCategory(EmojiCategory.FACE);
113
+ const selectEmoji = (emoji) => console.log(`选择: ${emoji.name}`);
114
+ </script>
115
+ ```
116
+
117
+ ### 原生 JavaScript
118
+
119
+ ```javascript
120
+ // NPM 包使用
121
+ const { getEmojiPath, EmojiCategory, searchEmojis } = require('wechat-emojis');
122
+
123
+ // 创建表情选择器
124
+ function createEmojiPicker(containerId) {
125
+ const container = document.getElementById(containerId);
126
+ const emojis = searchEmojis('笑');
127
+
128
+ emojis.forEach(emoji => {
129
+ const img = document.createElement('img');
130
+ img.src = getEmojiPath(emoji.name);
131
+ img.alt = emoji.name;
132
+ img.onclick = () => console.log(`选择: ${emoji.name}`);
133
+ container.appendChild(img);
134
+ });
135
+ }
136
+ ```
137
+
138
+ ### 直接使用图片
139
+
140
+ ```html
141
+ <!-- 直接引用图片文件 -->
142
+ <img src="assets/face/微笑.png" alt="微笑" />
143
+ <img src="assets/gesture/OK.png" alt="OK" />
144
+ <img src="assets/animal/猪头.png" alt="猪头" />
145
+ ```
146
+
147
+ ## API 参考
148
+
149
+ ### 核心函数
150
+
151
+ | 函数 | 参数 | 返回值 | 说明 |
152
+ |------|------|--------|------|
153
+ | `getEmojiPath(name)` | `EmojiName` | `string \| null` | 获取表情图片路径 |
154
+ | `getEmojiInfo(name)` | `EmojiName` | `EmojiInfo \| null` | 获取表情详细信息 |
155
+ | `getEmojisByCategory(category)` | `EmojiCategory` | `EmojiInfo[]` | 按类别获取表情列表 |
156
+ | `getAllEmojis()` | - | `EmojiInfo[]` | 获取所有表情 |
157
+ | `searchEmojis(keyword)` | `string` | `EmojiInfo[]` | 搜索包含关键词的表情 |
158
+ | `hasEmoji(name)` | `string` | `boolean` | 检查表情是否存在 |
159
+ | `getRandomEmoji(category?)` | `EmojiCategory?` | `EmojiInfo` | 随机获取表情 |
160
+
161
+ ### 类型定义
162
+
163
+ ```typescript
164
+ enum EmojiCategory {
165
+ FACE = 'face', // 人脸表情
166
+ GESTURE = 'gesture', // 手势表情
167
+ ANIMAL = 'animal', // 动物表情
168
+ BLESSING = 'blessing', // 祝福表情
169
+ OTHER = 'other' // 其他表情
170
+ }
171
+
172
+ interface EmojiInfo {
173
+ name: string; // 表情名称
174
+ category: EmojiCategory; // 表情类别
175
+ path: string; // 图片路径
176
+ }
177
+ ```
178
+
179
+ ## 数据统计
180
+
181
+ | 类别 | 数量 | 示例 |
182
+ |------|------|------|
183
+ | 人脸表情 | 75个 | 微笑、大哭、呲牙、捂脸、奸笑、加油 |
184
+ | 手势表情 | 10个 | OK、握手、胜利、抱拳、合十、强、弱 |
185
+ | 动物表情 | 4个 | 猪头、跳跳、发抖、转圈 |
186
+ | 祝福表情 | 7个 | 庆祝、红包、烟花、爆竹 |
187
+ | 其他表情 | 13个 | 爱心、啤酒、蛋糕、太阳、炸弹 |
188
+ | **总计** | **109个** | 完整覆盖微信内置表情 |
189
+
190
+ ## 技术要求
191
+
192
+ - **TypeScript**: 4.0+ (可选,用于类型检查)
193
+ - **Node.js**: 12+ (用于编译,可选)
194
+ - **浏览器**: 支持 ES2017+ 的现代浏览器
195
+ - **框架**: React 16+, Vue 3+, Angular 12+ 或原生 JavaScript
196
+
197
+ ## 编译和构建
198
+
199
+ ```bash
200
+ # 编译 TypeScript
201
+ npx tsc wechatEmoji.ts --target es2017 --module commonjs
202
+
203
+ # 或使用配置文件
204
+ npx tsc
205
+
206
+ # 生成类型声明文件
207
+ npx tsc --declaration
208
+ ```
209
+
210
+ ## 常见问题
211
+
212
+ **Q: 如何在 Webpack 项目中使用?**
213
+
214
+ ```javascript
215
+ // webpack.config.js
216
+ module.exports = {
217
+ resolve: {
218
+ extensions: ['.ts', '.js']
219
+ }
220
+ };
221
+ ```
222
+
223
+ **Q: 如何自定义表情路径?**
224
+
225
+ ```typescript
226
+ const customPath = getEmojiPath('微笑')?.replace('assets/', 'my-assets/');
227
+ ```
228
+
229
+ **Q: 支持哪些图片格式?**
230
+ 所有表情均为 PNG 格式,透明背景,适合各种使用场景。
231
+
232
+ ## 版权声明
233
+
234
+ - 本项目为非官方项目,与腾讯公司及微信团队无关
235
+ - 表情图片版权归腾讯公司所有
236
+ - 本项目仅供个人学习和非商业用途使用
237
+ - 任何商业用途请事先获得腾讯公司的授权
238
+ - 如有侵权问题,请联系作者删除
239
+
240
+ ## 贡献
241
+
242
+ 欢迎提交 Issue 和 Pull Request 来改进项目。
243
+
244
+ # wechat-emojis
245
+
246
+ # 请我喝杯茶 | buy me a cup of tea
247
+
248
+ <div style="display: flex; justify-content: center; gap: 20px;">
249
+ <img src="public/images/alipay.png" alt="支付宝" width="300" />
250
+ <img src="public/images/wechat.png" alt="微信" width="300" />
251
+ </div>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "wechat-emojis",
3
+ "version": "1.0.0",
4
+ "description": "完整的微信内置表情资源库,包含 109 个高清 PNG 图片和类型安全的 TypeScript API",
5
+ "main": "wechatEmoji.js",
6
+ "types": "wechatEmoji.d.ts",
7
+ "module": "wechatEmoji.js",
8
+ "files": [
9
+ "wechatEmoji.js",
10
+ "wechatEmoji.ts",
11
+ "wechatEmoji.d.ts",
12
+ "assets/**/*",
13
+ "README.md",
14
+ "API.md",
15
+ "REACT_USAGE.md"
16
+ ],
17
+ "scripts": {
18
+ "build": "tsc",
19
+ "prepublishOnly": "npm run build",
20
+ "test": "echo \"Error: no test specified\" && exit 1"
21
+ },
22
+ "keywords": [
23
+ "wechat",
24
+ "emoji",
25
+ "emojis",
26
+ "微信",
27
+ "表情包",
28
+ "typescript",
29
+ "react",
30
+ "vue",
31
+ "angular"
32
+ ],
33
+ "author": "xxk8",
34
+ "license": "MIT",
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "git+https://github.com/xxk8/wechat-emojis.git"
38
+ },
39
+ "bugs": {
40
+ "url": "https://github.com/xxk8/wechat-emojis/issues"
41
+ },
42
+ "homepage": "https://github.com/xxk8/wechat-emojis#readme",
43
+ "devDependencies": {
44
+ "typescript": "^5.0.0"
45
+ },
46
+ "engines": {
47
+ "node": ">=14.0.0"
48
+ }
49
+ }