Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: 修复了linux上会出现字体乱码的bug和linux上ico加载会失败的bug #27

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added Helvetica.ttc
Binary file not shown.
174 changes: 174 additions & 0 deletions favicon.xbm
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
#define favicon_width 128
#define favicon_height 128
static char favicon_bits[] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7,
0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0x3F,
0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xF3, 0xFD,
0xFF, 0xFF, 0xFF, 0x1F, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0x00, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0x17,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD,
0xFF, 0xFF, 0xBF, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x01, 0x00, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF,
0xFE, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xEF, 0xFF, 0xBF, 0xFF, 0x2F, 0x00, 0x80, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x17, 0x00,
0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF,
0xFF, 0x7F, 0x0D, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF,
0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xF0, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF,
0xFF, 0xFF, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x80,
0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFD, 0xFF, 0xFF,
0xFF, 0x1F, 0x00, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0x00, 0xFE, 0xFF, 0x0F, 0x00, 0xB0,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xEF, 0x1F, 0x00, 0xF0,
0xFF, 0x0F, 0x00, 0xF8, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF,
0xFF, 0x07, 0x00, 0xC0, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0xDE,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00,
0xFE, 0x0F, 0x00, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFB, 0x00, 0x00, 0x00, 0xF8, 0x1F, 0x80, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xEF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xE0, 0x7F, 0xE0, 0xFF,
0xFE, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00,
0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF,
0x3F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFE, 0xBF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00,
0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF,
0x1F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xDF, 0x1F, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFE, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x1F, 0x00, 0x40, 0x07, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0xE0, 0x09, 0x00, 0x00, 0xE0, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0x1F, 0x00, 0xF0, 0x2F,
0x00, 0x00, 0xC0, 0xFF, 0xEF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x1F, 0x00, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFB, 0x1F, 0x00, 0xFC, 0x3F, 0x01, 0x00, 0x00, 0xFC,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xFF,
0x05, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF,
0x1F, 0x00, 0xFC, 0xFF, 0x17, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFB, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xFF, 0x77, 0x00, 0x00, 0xE0,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x1F, 0x00, 0xFC, 0xFF,
0xBF, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB,
0x1F, 0x00, 0xFC, 0xFF, 0xFF, 0x02, 0x00, 0xC0, 0xBF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xFF, 0xFF, 0x0E, 0x00, 0x80,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xFF,
0xFF, 0x13, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x1F, 0x00, 0xFC, 0xFF, 0xFF, 0x5F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xFF, 0xFF, 0xDF, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xFF,
0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF,
0x1F, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xDF, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xFF,
0xFF, 0xFF, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF,
0x1F, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xFF,
0xFF, 0xFF, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x1F, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xFF, 0xFF, 0x5F, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0x1F, 0x00, 0xFC, 0xFF,
0xFF, 0x1F, 0x00, 0x00, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD,
0x1F, 0x00, 0xFC, 0xFF, 0xFF, 0x0F, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xFF, 0xFF, 0x0A, 0x00, 0x80,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xFF,
0xFF, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x1F, 0x00, 0xFC, 0xFF, 0x7F, 0x00, 0x00, 0xE0, 0xDF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFB, 0x1F, 0x00, 0xFC, 0xFF, 0x1F, 0x00, 0x00, 0xF0,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0xFF,
0x07, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0xFF,
0x1F, 0x00, 0xFC, 0xFF, 0x03, 0x00, 0x00, 0xFC, 0xEF, 0xFF, 0xFD, 0xFF,
0xFF, 0xFF, 0xFF, 0xF7, 0x1F, 0x00, 0xFC, 0xBF, 0x00, 0x00, 0x80, 0xFE,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0xF8, 0x37,
0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xDF,
0x1F, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0xE0, 0xFF, 0xEF, 0xFF, 0xFE, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x06, 0x00, 0x00, 0xF0, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFD, 0xFF, 0xFB, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF,
0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0x3F, 0x00, 0x00, 0x00,
0x00, 0xE8, 0xFF, 0xFF, 0xFB, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x3F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7F, 0x00, 0x00, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0x1F, 0xF5, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xEF,
0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x1F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x01, 0x00,
0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00,
0xF8, 0x3F, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x01, 0x00, 0x00,
0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xE0,
0x3F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x5F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF,
0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF,
0xFF, 0xFF, 0x17, 0x00, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E,
0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xFC, 0x0F, 0x00, 0x00,
0x00, 0x00, 0xD0, 0x7F, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00,
0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x7F, 0x00, 0xE0, 0xFF, 0xFF,
0xFF, 0xFF, 0x07, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x80, 0x7E, 0x00,
0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x17, 0x00, 0x00, 0xFC, 0x0F, 0x00,
0x00, 0xC0, 0x1F, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00,
0x00, 0xF8, 0x7F, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0xE0, 0xFF, 0xFF,
0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xF0, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0x00,
0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0xF0, 0xFF, 0xFF,
0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00,
0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xF8, 0xFF, 0xFF,
0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00,
0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xF0, 0xFF, 0xFF,
0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03,
0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x80, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00,
0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0x7F, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF,
0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF,
0xFF, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1,
0xFB, 0xFD, 0xFC, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x3F, 0x67, 0xFE, 0x90, 0xCF, 0xFF, 0xFF, 0xAF, 0x3F,
0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xF2, 0xFF, 0xFC, 0xFF, 0xFF, 0xFB, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFC, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFC, 0xF7,
0xFF, 0xFF, 0xFE, 0xFF, 0xCF, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xF7, 0xF7, 0xFF, 0xFC, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF,
0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0xF7, 0xFF, 0xFC, 0x7F,
0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xF7, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFE, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF,
0xEF, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xF3, 0xFF, 0xFE, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFE, 0xFD, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xEF, 0xFF, 0xFF, 0xFE,
0xFB, 0xBD, 0xEF, 0xFF, 0x67, 0xBE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
16 changes: 11 additions & 5 deletions speech2text.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,22 @@
import platform
import whisper
import os
import torch

whisper_model = None

def is_cuda_available():
return whisper.torch.cuda.is_available()
def get_available_device():
if torch.cuda.is_available():
return 'cuda'
else:
return 'cpu'

def load_whisper(model="tiny"):
global whisper_model
whisper_model = whisper.load_model(model, device="cuda" if is_cuda_available() else "cpu")
print("Whisper模型:"+model)
device = get_available_device()
whisper_model = whisper.load_model(model, device=device)
print(f"Whisper模型:{model}")
print(f"使用了{device.upper()}计算单元提取,您的电脑{'可用显卡加速' if device != 'cpu' else '不支持显卡加速'}")

def run_analysis(filename, model="tiny", prompt="以下是普通话的句子。"):
global whisper_model
Expand All @@ -32,4 +39,3 @@ def run_analysis(filename, model="tiny", prompt="以下是普通话的句子。"
f.write("".join([i["text"] for i in result["segments"] if i is not None]))
f.write("\n")
i += 1

59 changes: 54 additions & 5 deletions window.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,17 @@
from downBili import download_video
from exAudio import *
import threading
import subprocess
import platform
s2t = None

def is_cuda_available(whisper):
return whisper.torch.cuda.is_available()

def is_gpu_available():
import torch
return torch.cuda.is_available() or (platform.system() == 'Darwin' and torch.backends.mps.is_available())

def open_popup(text, title="提示"):
# 在屏幕中央显示弹窗
# 创建一个弹窗
Expand Down Expand Up @@ -131,17 +138,57 @@ def load_whisper():
import speech2text
s2t = speech2text
s2t.load_whisper(model=model_var.get())
device = s2t.get_available_device()
print("加载Whisper成功!")
print("使用了"+ ("CUDA计算单元提取,您的电脑可用显卡加速" if is_cuda_available(s2t.whisper) else "CPU 计算,您的电脑不支持显卡加速"))


print(f"使用了{device.upper()}计算单元提取,您的电脑{'可用显卡加速' if device != 'cpu' else '不支持显卡加速'}")

def check_and_install_font(font_name, font_url):
from tkinter import font
if font_name not in font.families():
print(f"字体 {font_name} 不存在,正在安装...")
system = platform.system()
if system == "Windows":
font_path = os.path.join(os.environ['WINDIR'], 'Fonts', font_name + '.ttf')
if not os.path.exists(font_path):
os.system(f'powershell -Command "Invoke-WebRequest -Uri {font_url} -OutFile \'{font_path}\'"')
print(f"字体 {font_name} 已安装")
elif system == "Darwin":
font_path = os.path.expanduser("~/Library/Fonts/" + font_name + ".ttf")
if not os.path.exists(font_path):
os.system(f'curl -o "{font_path}" {font_url}')
print(f"字体 {font_name} 已安装")
elif system == "Linux":
font_path = os.path.expanduser("~/.local/share/fonts/" + font_name + ".ttf")
if not os.path.exists(font_path):
os.makedirs(os.path.dirname(font_path), exist_ok=True)
os.system(f'wget -O "{font_path}" {font_url}')
subprocess.run(["fc-cache", "-fv"])
print(f"字体 {font_name} 已安装")
else:
print("不支持的系统,无法安装字体")
else:
print(f"字体 {font_name} 已存在")

def check_font(font_name):
from tkinter import font
if font_name not in font.families():
print(f"字体 {font_name} 不存在,请安装该字体以获得最佳显示效果。")
else:
print(f"字体 {font_name} 已存在。")

def choose_ico():
system = platform.system()
if system == "Linux":
app.iconbitmap("@favicon.xbm")
else:
app.iconbitmap("favicon.ico")

# 创建窗口
app = ttk.Window("Bili2Text - By Lanbin | www.lanbin.top", themename="litera")
# 设置窗口大小820x540
app.geometry("820x540")
# 设置icon
app.iconbitmap("favicon.ico")

choose_ico()

# 应用名
ttk.Label(app, text="Bilibili To Text", font=("Helvetica", 16)).pack(pady=10)
Expand Down Expand Up @@ -221,5 +268,7 @@ def flush(self):
# 调用此函数以开始重定向输出
fn_SYSTEM_IO_REDIRECT()

# 调用检测字体的函数
check_and_install_font("Helvetica", "./Helvetica.ttc")

app.mainloop()