diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cd6ad26 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.otf +*.sfd +afdko_env/ +*.ttx diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..4816970 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Adobe-GB1"] + path = Adobe-GB1 + url = https://github.com/adobe-type-tools/Adobe-GB1 diff --git a/Adobe-GB1 b/Adobe-GB1 new file mode 160000 index 0000000..4633182 --- /dev/null +++ b/Adobe-GB1 @@ -0,0 +1 @@ +Subproject commit 463318291007e231fd9a11d0e70d657455a9a586 diff --git a/CMapLatin.xlsx b/CMapLatin.xlsx new file mode 100644 index 0000000..99e449f Binary files /dev/null and b/CMapLatin.xlsx differ diff --git a/ClearImageFiles.bat b/ClearImageFiles.bat new file mode 100644 index 0000000..2317f77 --- /dev/null +++ b/ClearImageFiles.bat @@ -0,0 +1 @@ +del *.png diff --git a/Divide.lua b/Divide.lua new file mode 100644 index 0000000..be74424 --- /dev/null +++ b/Divide.lua @@ -0,0 +1,131 @@ +nx=20 +ny=25 + +require("alien") + +alien.user32.SetProcessDPIAware:types{ret="int",abi="stdcall"} +alien.user32.SetProcessDPIAware() + +local strpath +local noclip=false +if arg[1]==nil then + require("wx") + strpath=wx.wxFileSelector("选择文件",".","","png","便携式网络图像文件|*.png|所有文件|*",wx.wxFD_OPEN+wx.wxFD_FILE_MUST_EXIST) +else + strpath=arg[1] +end +if strpath==nil or strpath=='' then + os.exit() +end + +if arg[2]==nil then + noclip=wx.wxMessageBox("是否需要裁切空白?","裁切",wx.wxYES_NO)==wx.wxNO +else + noclip=arg[2]=='noclip' +end + +local _,sppos=strpath:reverse():find('%.') +local dpn=strpath:sub(1,#strpath-sppos) + +require("gd") + +function clipToChar(imgTable,x,y,w,h,clipBlankPx) + local clipX,clipY,clipW,clipH=x,y,w,h + if not noclip then + local blankColor=imgTable:colorAllocate(255,255,255) + if clipBlankPx~=-1 then + --Clip left border + for ix=x,x+w-1,1 do + local nbFound=false + for iy=y,y+h-1,1 do + if blankColor~=imgTable:getPixel(ix,iy) then + nbFound=true + break + end + end + if nbFound then + clipX=math.max(x,ix-clipBlankPx) + break + end + if ix==x+w-1 then + return 0,0,0,0 + end + end + --Clip top border + for iy=y,y+h-1,1 do + local nbFound=false + for ix=x,x+w-1,1 do + if blankColor~=imgTable:getPixel(ix,iy) then + nbFound=true + break + end + end + if nbFound then + clipY=math.max(y,iy-clipBlankPx) + break + end + end + --Clip right border + for ix=x+w-1,x,-1 do + local nbFound=false + for iy=y,y+h-1,1 do + if blankColor~=imgTable:getPixel(ix,iy) then + nbFound=true + break + end + end + if nbFound then + clipW=math.min(x+w-clipX,ix-clipX+clipBlankPx) + break + end + end + --Clip bottom border + for iy=y+h-1,y,-1 do + local nbFound=false + for ix=x,x+w-1,1 do + if blankColor~=imgTable:getPixel(ix,iy) then + nbFound=true + break + end + end + if nbFound then + clipH=math.min(y+h-clipY,iy-clipY+clipBlankPx) + break + end + end + --调整尺寸以符合原图比例w/h + local ratio=w/h + local clipRatio=clipW/clipH + if clipRatio>ratio then--补充高度 + local newH=h*clipW/w + clipY=clipY+(clipH-newH)/2 + clipH=newH + --看补充后是否出界 + clipY=math.max(clipY,y) + clipY=math.min(clipY,y+h-clipH) + elseif clipRatio + + + +3. 绗斿埛浣跨敤閿欒 +瀛楃CID428锝濩ID520锛堜笉鍖呮嫭429銆431锛夊洜閿欒浣跨敤绗斿埛瀵艰嚧鍦‵ontForge涓鍏ヨ繖浜涘瓧绗︽椂涓庡叾浠栧瓧绗︾浉姣斾細鍋忕粏锛岄渶瑕佹墜鍔ㄥ皢绮楃粏澧炲姞10%宸﹀彸鎵嶈兘鑾峰緱杈冨ソ鏁堟灉銆 + +4. 鍋囧悕鍙兘闇瑕佸鍏ュ悗缂╂斁鑷120% +鍥犲亣鍚嶉儴鍒嗗瓧绗﹂噸鍐欙紝鐩告瘮鍘熸潵鍙兘瀛楅潰鍋忓皬锛岄渶瑕佽皟澶у瓧绗︺ + +5. 瀛椾綋鍚嶇О闂 +ttx鏂囦欢涓璶ame鑺傜偣涓媔d涓4鐨勫悕绉伴渶瑕佸姞涓<绌烘牸>+瀛楅噸鍚嶇О銆傞儴鍒嗗叾浠栧悕绉颁害闇娣诲姞鎴栦慨鏀癸紝鍙傝冿細https://zhuanlan.zhihu.com/p/38679788 +Regular鐨刵ame鑺傜偣锛 + + + Copyright (C) 2019-2022, lxfly2000 (lxfly2000@outlook.com) + + + Acy + + + Regular + + + 1.6;UKWN;Acy-Regular;lxfly2000 + + + Acy Regular + + + Version 1.6;hotconv 1.1.0;makeotfexe 2.6.0 + + + Acy-Regular + + + Acy-Font + + + lxfly2000 + + + lxfly2000 + + + https://github.com/lxfly2000 + + + https://github.com/lxfly2000 + + + SIL Open Font License, Version 1.1 + + + https://github.com/lxfly2000/Acy-Font/blob/master/LICENSE.TXT + + + Acy + + + Regular + + + 1.6;UKWN;Acy-Regular;lxfly2000 + + + Acy Regular + + + Version 1.6;hotconv 1.1.0;makeotfexe 2.6.0 + + + Acy-Regular + + +Medium鐨刵ame鑺傜偣锛 + + + Copyright (C) 2019-2022, lxfly2000 (lxfly2000@outlook.com) + + + Acy Medium + + + Regular + + + 1.6;UKWN;Acy-Medium;lxfly2000 + + + Acy Medium + + + Version 1.6;hotconv 1.1.0;makeotfexe 2.6.0 + + + Acy-Medium + + + Acy-Font + + + lxfly2000 + + + lxfly2000 + + + https://github.com/lxfly2000 + + + https://github.com/lxfly2000 + + + SIL Open Font License, Version 1.1 + + + https://github.com/lxfly2000/Acy-Font/blob/master/LICENSE.TXT + + + Acy + + + Medium + + + Acy Medium + + + Regular + + + 1.6;UKWN;Acy-Medium;lxfly2000 + + + Acy Medium + + + Version 1.6;hotconv 1.1.0;makeotfexe 2.6.0 + + + Acy-Medium + + + Acy + + + Medium + + +Bold鐨刵ame鑺傜偣锛 + + + Copyright (C) 2019-2022, lxfly2000 (lxfly2000@outlook.com) + + + Acy Bold + + + Regular + + + 1.6;UKWN;Acy-Bold;lxfly2000 + + + Acy Bold + + + Version 1.6;hotconv 1.1.0;makeotfexe 2.6.0 + + + Acy-Bold + + + Acy-Font + + + lxfly2000 + + + lxfly2000 + + + https://github.com/lxfly2000 + + + https://github.com/lxfly2000 + + + SIL Open Font License, Version 1.1 + + + https://github.com/lxfly2000/Acy-Font/blob/master/LICENSE.TXT + + + Acy + + + Bold + + + Acy Bold + + + Regular + + + 1.6;UKWN;Acy-Bold;lxfly2000 + + + Acy Bold + + + Version 1.6;hotconv 1.1.0;makeotfexe 2.6.0 + + + Acy-Bold + + + Acy + + + Bold + + + +6. 鈥滆景鈥濆瓧(CID1250)杈圭晫鏈夐棶棰橀犳垚澶у皬閿欒銆 + +7. 鍔犲叆鎷変竵瀛楃鍚庯紝闇瑕佷慨鏀笴MAP琛 +鍦ㄦ渶鍚庝竴涓猚map鑺傜偣涓姞鍏MapLatin.xlsx涓殑XML鍐呭銆 diff --git a/bugs/bug1.docx b/bugs/bug1.docx new file mode 100644 index 0000000..1363c06 Binary files /dev/null and b/bugs/bug1.docx differ diff --git a/build-bold.bat b/build-bold.bat new file mode 100644 index 0000000..d41427a --- /dev/null +++ b/build-bold.bat @@ -0,0 +1,13 @@ +if not exist afdko_env ( + py -m venv afdko_env + call afdko_env\Scripts\activate.bat + py -m pip install afdko +) else ( + call afdko_env\Scripts\activate.bat +) +if exist Bold\Acy-Bold.otf del Bold\Acy-Bold.otf +if not exist Bold md Bold +makeotf -f Acy-Bold.otf -ff Adobe-GB1\GSUB\ag15-gsub.fea -fi fontinfo-bold.txt -r -nS -o Bold\Acy-Bold.otf +ttx -f Bold\Acy-Bold.otf +notepad Bold\Acy-Bold.ttx +ttx -f Bold\Acy-Bold.ttx diff --git a/build-medium.bat b/build-medium.bat new file mode 100644 index 0000000..34e1324 --- /dev/null +++ b/build-medium.bat @@ -0,0 +1,13 @@ +if not exist afdko_env ( + py -m venv afdko_env + call afdko_env\Scripts\activate.bat + py -m pip install afdko +) else ( + call afdko_env\Scripts\activate.bat +) +if exist Medium\Acy-Medium.otf del Medium\Acy-Medium.otf +if not exist Medium md Medium +makeotf -f Acy-Medium.otf -ff Adobe-GB1\GSUB\ag15-gsub.fea -fi fontinfo-medium.txt -r -nS -o Medium\Acy-Medium.otf +ttx -f Medium\Acy-Medium.otf +notepad Medium\Acy-Medium.ttx +ttx -f Medium\Acy-Medium.ttx diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..8c24204 --- /dev/null +++ b/build.bat @@ -0,0 +1,13 @@ +if not exist afdko_env ( + py -m venv afdko_env + call afdko_env\Scripts\activate.bat + py -m pip install afdko +) else ( + call afdko_env\Scripts\activate.bat +) +if exist Regular\Acy-Regular.otf del Regular\Acy-Regular.otf +if not exist Regular md Regular +makeotf -f Acy-Regular.otf -ff Adobe-GB1\GSUB\ag15-gsub.fea -fi fontinfo.txt -r -nS -o Regular\Acy-Regular.otf +ttx -f Regular\Acy-Regular.otf +notepad Regular\Acy-Regular.ttx +ttx -f Regular\Acy-Regular.ttx diff --git a/duplook.py b/duplook.py new file mode 100644 index 0000000..bb4f290 --- /dev/null +++ b/duplook.py @@ -0,0 +1,33 @@ +锘#python 3.9.2 +#encoding=utf-8 + +import sys + +if len(sys.argv)==1: + print("This tool is for finding duplicated encodings.\nduplook.py ") +else: + f=open(sys.argv[1]) + unicode_count=[0]*65536 + dup_count=0 + while True: + line=f.readline() + if line=="": + break + if line[:9]=="Encoding:": + sp=line.split() + try: + cid1=int(sp[1]) + unicode=int(sp[2]) + if unicode==-1: + continue + elif unicode>=65536: + print("Skip char: ["+chr(unicode)+"] "+hex(unicode)) + continue + cid2=int(sp[3]) + unicode_count[unicode]=unicode_count[unicode]+1 + if unicode_count[unicode]>1: + print("Duplicated char: ["+chr(unicode)+"] "+hex(unicode)) + dup_count=dup_count+1 + except ValueError: + continue + print("Total duplication: "+str(dup_count)) diff --git a/fontinfo-bold.txt b/fontinfo-bold.txt new file mode 100644 index 0000000..7bcf4f2 --- /dev/null +++ b/fontinfo-bold.txt @@ -0,0 +1,20 @@ +FontName (Acy-Bold) +FullName (Acy Bold) +FamilyName (Acy) +Weight (Bold) +Copyright (Copyright (c) 2019-2022, lxfly2000 (lxfly2000@outlook.com)) +Version (1.001) +Registry (Adobe) +Ordering (GB1) +Supplement 4 +FSType 0 +isFixedPitch false +UnderlinePosition -100 +Serif false +IsBoldStyle true +IsItalicStyle false +PreferOS/2TypoMetrics true +IsOS/2WidthWeigthSlopeOnly false +IsOS/2OBLIQUE false +UseOldNameID4 false +LicenseCode lxfly2000 \ No newline at end of file diff --git a/fontinfo-medium.txt b/fontinfo-medium.txt new file mode 100644 index 0000000..1c8a2fe --- /dev/null +++ b/fontinfo-medium.txt @@ -0,0 +1,20 @@ +FontName (Acy-Medium) +FullName (Acy Medium) +FamilyName (Acy) +Weight (Medium) +Copyright (Copyright (c) 2019-2022, lxfly2000 (lxfly2000@outlook.com)) +Version (1.001) +Registry (Adobe) +Ordering (GB1) +Supplement 4 +FSType 0 +isFixedPitch false +UnderlinePosition -100 +Serif false +IsBoldStyle false +IsItalicStyle false +PreferOS/2TypoMetrics true +IsOS/2WidthWeigthSlopeOnly false +IsOS/2OBLIQUE false +UseOldNameID4 false +LicenseCode lxfly2000 \ No newline at end of file diff --git a/fontinfo.txt b/fontinfo.txt new file mode 100644 index 0000000..8eadff1 --- /dev/null +++ b/fontinfo.txt @@ -0,0 +1,20 @@ +FontName (Acy-Regular) +FullName (Acy Regular) +FamilyName (Acy) +Weight (Regular) +Copyright (Copyright (c) 2019-2022, lxfly2000 (lxfly2000@outlook.com)) +Version (1.001) +Registry (Adobe) +Ordering (GB1) +Supplement 4 +FSType 0 +isFixedPitch false +UnderlinePosition -100 +Serif false +IsBoldStyle false +IsItalicStyle false +PreferOS/2TypoMetrics true +IsOS/2WidthWeigthSlopeOnly false +IsOS/2OBLIQUE false +UseOldNameID4 false +LicenseCode lxfly2000 \ No newline at end of file diff --git a/install.chm b/install.chm new file mode 100644 index 0000000..a4f8240 Binary files /dev/null and b/install.chm differ