Skip to content

Commit

Permalink
去除输入框高亮背景,集成图片
Browse files Browse the repository at this point in the history
  • Loading branch information
fkxxyz committed Aug 30, 2020
1 parent a500262 commit 0e12cf2
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 10 deletions.
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,10 @@ grep Name ~/.local/share/fcitx5/themes/【雨欣】蒲公英的思念/theme.conf
命令行参数

```shell
ssfconv <src> <dest> [-t type]
ssfconv <src> [dest] [-t type]
```

源文件和目标文件是必选参数,转换的目标类型 -t 是可选参数,type值是下面四个值之一:
源文件是必选参数,目标文件可选,转换的目标类型 -t 是可选参数,type值是下面四个值之一:

```
fcitx 可直接用于fcitx的文件夹
Expand All @@ -120,9 +120,15 @@ zip 未加密的ssf皮肤(zip)

## 已知缺陷

### fcitx

因为 fcitx 的限制,输入框里只能对文字的外边距进行设置,无法像搜狗拼音输入法一样任意调整坐标,导致部分皮肤只能在图片拉升和文件位置靠右来二选一的取舍。不过大多数皮肤都能挺不错的转换,只有少数皮肤实在是没办法了,只好用图片拉升代替(原作者是将文字调整到靠右,留了很多空白)。

fcitx5 能够完美地像搜狗输入法一样调整,但是主题中所设置的字体是无效的,需要手动设置字体,经过我反复的实验,将字体设置为 "Sans 10" 似乎是大多数皮肤的最佳体验。
### fcitx5

- fcitx5 能够完美地像搜狗输入法一样调整,但是主题中所设置的字体是无效的,需要手动设置字体,经过我反复的实验,将字体设置为 "Sans 10" 似乎是大多数皮肤的最佳体验。
- 菜单字体颜色无法通过主题调整,只能为黑色高亮白色,所以在背景比较黑或者比较白的皮肤下,菜单可能体验不理想。
- 部分皮肤可能转换效果不太好,需要寻找原因,欢迎提出 issues 帮助我改进,最好说明皮肤的下载链接便于排查。

## 致谢

Expand Down
Binary file removed menu.png
Binary file not shown.
Binary file removed radio.png
Binary file not shown.
15 changes: 8 additions & 7 deletions ssfconv
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ from Crypto.Cipher import AES
import zlib
import struct
import zipfile
import io
import os
import sys
import configparser
Expand Down Expand Up @@ -148,8 +149,8 @@ def rgbDistMax(color, *colors):
max_d_color = c
return max_d_color

default_menu_img_path = os.path.dirname(os.path.realpath(__file__)) + os.sep + 'menu.png'
default_radio_img_path = os.path.dirname(os.path.realpath(__file__)) + os.sep + 'radio.png'
default_menu_img_path = io.BytesIO(b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00<\x00\x00\x00<\x08\x06\x00\x00\x00:\xfc\xd9r\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\x00\tpHYs\x00\x00\x1b\xaf\x00\x00\x1b\xaf\x01^\x1a\x91\x1c\x00\x00\x00\x19tEXtSoftware\x00www.inkscape.org\x9b\xee<\x1a\x00\x00\x01\xdaIDATh\x81\xed\x9b\xc1N\xdb@\x10@\xdf\x80\x15R\x08R\x10\xa4\x12\xbd\x84\x037\xbe\xa0\x9f\xd2/\xec\'\xf0\t|\x04\x1c\xc8\t\t\x88\x9a\x127AHdz\x98\xdd\xd6\nI$\xa4\x10\xd8a\x9e\xb4\xb2\xec\xb5\xady\x1e{}\x99\x11U\xa5\x89\x88\xec\x02-@(\x1b\x05\x9eTu\xd2<(Y8\x89\x1e\x02\xfb@\x1b\x1f\xc2\x8f\xc0\x18\x18f\xf1\n\xfe\xc9\x1e\x03_\x81\x03\xe0\x0b>\x84\xa7\xc0/\xa0%"7\xaa:\xa9\xd2\xe4!&\xfb\r\xe8\x01\x1d`\xeb]\xc2\\\x1f3\xa0\xc6\x92\x07\xf0\x04L\xaa\x94\xdd},\xb3=L\xfa\x18\xf8\x0e\xf41\xf9\x92\xa8\x81\x01p\x01\xdc\xa4cS\xe0\xb7\x88\xecV\xd8\x02\xd5\xc6\x9eD\x07\x93\xfd\x01\xecm>\xd6\xb5\xd0\x01\xce\x80\x13\xe0\'\xf0\x80\xb9\xb5\x81V\x85}\xabyla\x99\xdd\x03\xae\x80.\xf6j\xe8\xfc]?(\xd9a\x04\x9cb.\x974\x1c\xab\x05\x17\xf5\xd3\xb6\x0b<o \xc8u\xa2X\xcc\xdd\xb4\xdf\x9f?a\xd1\xc2\x94\xbf\xd9\xd9\x1b\x05\xb5\tr\xec/\xd6\x9fU+q)\xaf\xf1"\x96\xc6^\xfa\xaf\xe7\xd5\x84\xb0wB\xd8;!\xec\x9d\x10\xf6N\x08{\'\x84\xbd\x13\xc2\xde\ta\xef\x84\xb0wB\xd8;!\xec\x9d\x10\xf6N\x08{\'\x84\xbd\x13\xc2\xde\ta\xef\x84\xb0wB\xd8;!\xec\x9d\x10\xf6\xce*\xe1\x92\x0b\xc4\x97\xc6\xbeH\xb8^1W\n9\xf6z\xd9D\x93A\xda\x8e\x80m\xca\xca\xb4`1\x8f\xd2\xfe`\xfe\x84\n+\xc4\xccc\x86U\x92\x9f`\xf5\xc6\xa5r\x04\xfc\xc1\\r\xbd\xb7\x02\xba\x8de\xb9\x93Fn\xee\xb8\x06v\x80\xdc\xd2S\x125V\x14~\x8e\xb5\x00\x0c\xd3\xb8\x07\x86\x95\xaaNDd\x8cu\x7f\xe4\x86\x88\x87tQ\xc9\xe4&\x8f;\xccm\xdc\xecj\x19\xf2?\x93S\xfc\xb5\xf1\xdcb\x8e\x9f\xafQK>[+\xde_\xdfNz_\xa1?jm\x00\x00\x00\x00IEND\xaeB`\x82')
default_radio_img_path = io.BytesIO(b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0w=\xf8\x00\x00\x00\tpHYs\x00\x00\r\xd7\x00\x00\r\xd7\x01B(\x9bx\x00\x00\x00\x19tEXtSoftware\x00www.inkscape.org\x9b\xee<\x1a\x00\x00\x00\x9dIDATH\x89\xed\x91\xc1\n\x830\x10Dg\x1a\xd0\x1f*\xbdfIoJ?\xb7-\xeda!G\xc1\x1fR\x88\xdb\x8b\xd2\x1e\x84\x08zk\xde1\xbb\x93\x07\xb3@\xa1P\xe0\xd6EUm\x9dsg\x00H)\xf5!\x84\xfba\x82\x18\xe3\xcb\xcc\x04@5?\r$\xd5{\xdf\xe4\xb2\xa7\xdc\x82\xaa\xb6f\xe6\x7f>\x07\x80\xda\xcc\xae1\xc6\xfd\x82\xb9\x96zeTM\xd3t\xd9-\xd8KV\x90R\xeaI\x8e+\xa3\x81d\x97\xcbo=\xf2\xc3\xcc\x02\xbeU\x8d\x00\xde"r;D0K\x9a\xa5s\x92\x9d\x88<\xb7f\x0b\x85\x7f\xe7\x03\xc2\x8b7\xa7\xab\xe8\x14\xb1\x00\x00\x00\x00IEND\xaeB`\x82')


# 获取图片大小的函数
Expand Down Expand Up @@ -933,8 +934,8 @@ def ssr2fcitx5(skin_dir):


# 绘制高亮的纯色图片
menu_highlight_color = rgbDistMax(first_color, input_color, other_color, back_color)
Image.new('RGBA', (38,23), menu_highlight_color).save(skin_dir + os.sep + 'highlight.png')
# menu_highlight_color = rgbDistMax(first_color, input_color, other_color, back_color)
Image.new('RGBA', (38,23), (0,0,0,0)).save(skin_dir + os.sep + 'highlight.png')

# 高亮背景
skin['InputPanel/Highlight'] = {
Expand Down Expand Up @@ -1080,9 +1081,9 @@ def ssr2fcitx5(skin_dir):
'Bottom': 8,
}

# 绘制高亮的纯色图片
menu_highlight_color = rgbDistMax((255,255,255), back_color, input_color, first_color, other_color)
Image.new('RGBA', (38,23), menu_highlight_color).save(skin_dir + os.sep + 'menu_highlight.png')
# 绘制高亮的透明图片
#menu_highlight_color = rgbDistMax((255,255,255), back_color, input_color, first_color, other_color)
Image.new('RGBA', (38,23), (0,0,0,0)).save(skin_dir + os.sep + 'menu_highlight.png')

# 高亮背景
skin['Menu/Highlight'] = {
Expand Down

0 comments on commit 0e12cf2

Please sign in to comment.