Merge "Emoji Compat 2019"
diff --git a/emoji/NotoColorEmoji.ttf b/emoji/NotoColorEmoji.ttf
index b7602e1..3c2688f 100644
--- a/emoji/NotoColorEmoji.ttf
+++ b/emoji/NotoColorEmoji.ttf
Binary files differ
diff --git a/fonts.mk b/fonts.mk
index fea0aef..1cccd97 100644
--- a/fonts.mk
+++ b/fonts.mk
@@ -25,24 +25,27 @@
NotoSansAdlam-Regular.ttf \
NotoSansAhom-Regular.otf \
NotoSansAnatolianHieroglyphs-Regular.otf \
- NotoSansArmenian-Bold.ttf \
- NotoSansArmenian-Regular.ttf \
+ NotoSansArmenian-Bold.otf \
+ NotoSansArmenian-Medium.otf \
+ NotoSansArmenian-Regular.otf \
NotoSansAvestan-Regular.ttf \
NotoSansBalinese-Regular.ttf \
NotoSansBamum-Regular.ttf \
NotoSansBassaVah-Regular.otf \
NotoSansBatak-Regular.ttf \
- NotoSansBengali-Bold.ttf \
- NotoSansBengali-Regular.ttf \
- NotoSansBengaliUI-Bold.ttf \
- NotoSansBengaliUI-Regular.ttf \
+ NotoSansBengali-Bold.otf \
+ NotoSansBengali-Medium.otf \
+ NotoSansBengali-Regular.otf \
+ NotoSansBengaliUI-Bold.otf \
+ NotoSansBengaliUI-Medium.otf \
+ NotoSansBengaliUI-Regular.otf \
NotoSansBhaiksuki-Regular.otf \
NotoSansBrahmi-Regular.ttf \
NotoSansBuginese-Regular.ttf \
NotoSansBuhid-Regular.ttf \
NotoSansCanadianAboriginal-Regular.ttf \
NotoSansCarian-Regular.ttf \
- NotoSansChakma-Regular.ttf \
+ NotoSansChakma-Regular.otf \
NotoSansCham-Bold.ttf \
NotoSansCham-Regular.ttf \
NotoSansCherokee-Regular.ttf \
@@ -51,16 +54,19 @@
NotoSansCuneiform-Regular.ttf \
NotoSansCypriot-Regular.ttf \
NotoSansDeseret-Regular.ttf \
- NotoSansDevanagari-Bold.ttf \
- NotoSansDevanagari-Regular.ttf \
- NotoSansDevanagariUI-Bold.ttf \
- NotoSansDevanagariUI-Regular.ttf \
+ NotoSansDevanagari-Bold.otf \
+ NotoSansDevanagari-Medium.otf \
+ NotoSansDevanagari-Regular.otf \
+ NotoSansDevanagariUI-Bold.otf \
+ NotoSansDevanagariUI-Medium.otf \
+ NotoSansDevanagariUI-Regular.otf \
NotoSansEgyptianHieroglyphs-Regular.ttf \
NotoSansElbasan-Regular.otf \
NotoSansEthiopic-Bold.ttf \
NotoSansEthiopic-Regular.ttf \
- NotoSansGeorgian-Bold.ttf \
- NotoSansGeorgian-Regular.ttf \
+ NotoSansGeorgian-Bold.otf \
+ NotoSansGeorgian-Medium.otf \
+ NotoSansGeorgian-Regular.otf \
NotoSansGlagolitic-Regular.ttf \
NotoSansGothic-Regular.ttf \
NotoSansGujarati-Bold.ttf \
@@ -100,10 +106,12 @@
NotoSansLisu-Regular.ttf \
NotoSansLycian-Regular.ttf \
NotoSansLydian-Regular.ttf \
- NotoSansMalayalam-Bold.ttf \
- NotoSansMalayalam-Regular.ttf \
- NotoSansMalayalamUI-Bold.ttf \
- NotoSansMalayalamUI-Regular.ttf \
+ NotoSansMalayalam-Bold.otf \
+ NotoSansMalayalam-Medium.otf \
+ NotoSansMalayalam-Regular.otf \
+ NotoSansMalayalamUI-Bold.otf \
+ NotoSansMalayalamUI-Medium.otf \
+ NotoSansMalayalamUI-Regular.otf \
NotoSansMandaic-Regular.ttf \
NotoSansManichaean-Regular.otf \
NotoSansMarchen-Regular.otf \
@@ -113,10 +121,10 @@
NotoSansMongolian-Regular.ttf \
NotoSansMro-Regular.otf \
NotoSansMultani-Regular.otf \
- NotoSansMyanmar-Bold.ttf \
- NotoSansMyanmar-Regular.ttf \
- NotoSansMyanmarUI-Bold.ttf \
- NotoSansMyanmarUI-Regular.ttf \
+ NotoSansMyanmar-Bold-ZawDecode.ttf \
+ NotoSansMyanmar-Regular-ZawDecode.ttf \
+ NotoSansMyanmarUI-Bold-ZawDecode.ttf \
+ NotoSansMyanmarUI-Regular-ZawDecode.ttf \
NotoSansNabataean-Regular.otf \
NotoSansNewa-Regular.otf \
NotoSansNewTaiLue-Regular.ttf \
@@ -146,9 +154,11 @@
NotoSansSaurashtra-Regular.ttf \
NotoSansSharada-Regular.otf \
NotoSansShavian-Regular.ttf \
- NotoSansSinhala-Bold.ttf \
- NotoSansSinhala-Regular.ttf \
+ NotoSansSinhala-Bold.otf \
+ NotoSansSinhala-Medium.otf \
+ NotoSansSinhala-Regular.otf \
NotoSansSinhalaUI-Bold.otf \
+ NotoSansSinhalaUI-Medium.otf \
NotoSansSinhalaUI-Regular.otf \
NotoSansSoraSompeng-Regular.otf \
NotoSansSundanese-Regular.ttf \
@@ -163,10 +173,12 @@
NotoSansTaiLe-Regular.ttf \
NotoSansTaiTham-Regular.ttf \
NotoSansTaiViet-Regular.ttf \
- NotoSansTamil-Bold.ttf \
- NotoSansTamil-Regular.ttf \
- NotoSansTamilUI-Bold.ttf \
- NotoSansTamilUI-Regular.ttf \
+ NotoSansTamil-Bold.otf \
+ NotoSansTamil-Medium.otf \
+ NotoSansTamil-Regular.otf \
+ NotoSansTamilUI-Bold.otf \
+ NotoSansTamilUI-Medium.otf \
+ NotoSansTamilUI-Regular.otf \
NotoSansTelugu-Bold.ttf \
NotoSansTelugu-Regular.ttf \
NotoSansTeluguUI-Bold.ttf \
@@ -187,8 +199,8 @@
NotoSerif-BoldItalic.ttf \
NotoSerif-Italic.ttf \
NotoSerif-Regular.ttf \
- NotoSerifArmenian-Bold.ttf \
- NotoSerifArmenian-Regular.ttf \
+ NotoSerifArmenian-Bold.otf \
+ NotoSerifArmenian-Regular.otf \
NotoSerifBengali-Bold.ttf \
NotoSerifBengali-Regular.ttf \
NotoSerifCJK-Regular.ttc \
@@ -196,8 +208,8 @@
NotoSerifDevanagari-Regular.ttf \
NotoSerifEthiopic-Bold.otf \
NotoSerifEthiopic-Regular.otf \
- NotoSerifGeorgian-Bold.ttf \
- NotoSerifGeorgian-Regular.ttf \
+ NotoSerifGeorgian-Bold.otf \
+ NotoSerifGeorgian-Regular.otf \
NotoSerifGujarati-Bold.ttf \
NotoSerifGujarati-Regular.ttf \
NotoSerifGurmukhi-Bold.otf \
@@ -216,8 +228,8 @@
NotoSerifMyanmar-Regular.otf \
NotoSerifSinhala-Bold.otf \
NotoSerifSinhala-Regular.otf \
- NotoSerifTamil-Bold.ttf \
- NotoSerifTamil-Regular.ttf \
+ NotoSerifTamil-Bold.otf \
+ NotoSerifTamil-Regular.otf \
NotoSerifTelugu-Bold.ttf \
NotoSerifTelugu-Regular.ttf \
NotoSerifThai-Bold.ttf \
diff --git a/other/Android.bp b/other/Android.bp
index 1b3a7d8..3a790e3 100644
--- a/other/Android.bp
+++ b/other/Android.bp
@@ -73,23 +73,33 @@
}
prebuilt_font {
- name: "NotoSansBengali-Bold.ttf",
- src: "NotoSansBengali-Bold.ttf",
+ name: "NotoSansBengali-Bold.otf",
+ src: "NotoSansBengali-Bold.otf",
}
prebuilt_font {
- name: "NotoSansBengali-Regular.ttf",
- src: "NotoSansBengali-Regular.ttf",
+ name: "NotoSansBengali-Medium.otf",
+ src: "NotoSansBengali-Medium.otf",
}
prebuilt_font {
- name: "NotoSansBengaliUI-Bold.ttf",
- src: "NotoSansBengaliUI-Bold.ttf",
+ name: "NotoSansBengali-Regular.otf",
+ src: "NotoSansBengali-Regular.otf",
}
prebuilt_font {
- name: "NotoSansBengaliUI-Regular.ttf",
- src: "NotoSansBengaliUI-Regular.ttf",
+ name: "NotoSansBengaliUI-Bold.otf",
+ src: "NotoSansBengaliUI-Bold.otf",
+}
+
+prebuilt_font {
+ name: "NotoSansBengaliUI-Medium.otf",
+ src: "NotoSansBengaliUI-Medium.otf",
+}
+
+prebuilt_font {
+ name: "NotoSansBengaliUI-Regular.otf",
+ src: "NotoSansBengaliUI-Regular.otf",
}
prebuilt_font {
@@ -123,8 +133,8 @@
}
prebuilt_font {
- name: "NotoSansChakma-Regular.ttf",
- src: "NotoSansChakma-Regular.ttf",
+ name: "NotoSansChakma-Regular.otf",
+ src: "NotoSansChakma-Regular.otf",
}
prebuilt_font {
@@ -363,23 +373,33 @@
}
prebuilt_font {
- name: "NotoSansMalayalam-Bold.ttf",
- src: "NotoSansMalayalam-Bold.ttf",
+ name: "NotoSansMalayalam-Bold.otf",
+ src: "NotoSansMalayalam-Bold.otf",
}
prebuilt_font {
- name: "NotoSansMalayalam-Regular.ttf",
- src: "NotoSansMalayalam-Regular.ttf",
+ name: "NotoSansMalayalam-Medium.otf",
+ src: "NotoSansMalayalam-Medium.otf",
}
prebuilt_font {
- name: "NotoSansMalayalamUI-Bold.ttf",
- src: "NotoSansMalayalamUI-Bold.ttf",
+ name: "NotoSansMalayalam-Regular.otf",
+ src: "NotoSansMalayalam-Regular.otf",
}
prebuilt_font {
- name: "NotoSansMalayalamUI-Regular.ttf",
- src: "NotoSansMalayalamUI-Regular.ttf",
+ name: "NotoSansMalayalamUI-Bold.otf",
+ src: "NotoSansMalayalamUI-Bold.otf",
+}
+
+prebuilt_font {
+ name: "NotoSansMalayalamUI-Medium.otf",
+ src: "NotoSansMalayalamUI-Medium.otf",
+}
+
+prebuilt_font {
+ name: "NotoSansMalayalamUI-Regular.otf",
+ src: "NotoSansMalayalamUI-Regular.otf",
}
prebuilt_font {
@@ -428,23 +448,23 @@
}
prebuilt_font {
- name: "NotoSansMyanmar-Bold.ttf",
- src: "NotoSansMyanmar-Bold.ttf",
+ name: "NotoSansMyanmar-Bold-ZawDecode.ttf",
+ src: "NotoSansMyanmar-Bold-ZawDecode.ttf",
}
prebuilt_font {
- name: "NotoSansMyanmar-Regular.ttf",
- src: "NotoSansMyanmar-Regular.ttf",
+ name: "NotoSansMyanmar-Regular-ZawDecode.ttf",
+ src: "NotoSansMyanmar-Regular-ZawDecode.ttf",
}
prebuilt_font {
- name: "NotoSansMyanmarUI-Bold.ttf",
- src: "NotoSansMyanmarUI-Bold.ttf",
+ name: "NotoSansMyanmarUI-Bold-ZawDecode.ttf",
+ src: "NotoSansMyanmarUI-Bold-ZawDecode.ttf",
}
prebuilt_font {
- name: "NotoSansMyanmarUI-Regular.ttf",
- src: "NotoSansMyanmarUI-Regular.ttf",
+ name: "NotoSansMyanmarUI-Regular-ZawDecode.ttf",
+ src: "NotoSansMyanmarUI-Regular-ZawDecode.ttf",
}
prebuilt_font {
@@ -593,13 +613,18 @@
}
prebuilt_font {
- name: "NotoSansSinhala-Bold.ttf",
- src: "NotoSansSinhala-Bold.ttf",
+ name: "NotoSansSinhala-Bold.otf",
+ src: "NotoSansSinhala-Bold.otf",
}
prebuilt_font {
- name: "NotoSansSinhala-Regular.ttf",
- src: "NotoSansSinhala-Regular.ttf",
+ name: "NotoSansSinhala-Regular.otf",
+ src: "NotoSansSinhala-Regular.otf",
+}
+
+prebuilt_font {
+ name: "NotoSansSinhala-Medium.otf",
+ src: "NotoSansSinhala-Medium.otf",
}
prebuilt_font {
@@ -608,6 +633,11 @@
}
prebuilt_font {
+ name: "NotoSansSinhalaUI-Medium.otf",
+ src: "NotoSansSinhalaUI-Medium.otf",
+}
+
+prebuilt_font {
name: "NotoSansSinhalaUI-Regular.otf",
src: "NotoSansSinhalaUI-Regular.otf",
}
@@ -668,23 +698,33 @@
}
prebuilt_font {
- name: "NotoSansTamil-Bold.ttf",
- src: "NotoSansTamil-Bold.ttf",
+ name: "NotoSansTamil-Bold.otf",
+ src: "NotoSansTamil-Bold.otf",
}
prebuilt_font {
- name: "NotoSansTamil-Regular.ttf",
- src: "NotoSansTamil-Regular.ttf",
+ name: "NotoSansTamil-Medium.otf",
+ src: "NotoSansTamil-Medium.otf",
}
prebuilt_font {
- name: "NotoSansTamilUI-Bold.ttf",
- src: "NotoSansTamilUI-Bold.ttf",
+ name: "NotoSansTamil-Regular.otf",
+ src: "NotoSansTamil-Regular.otf",
}
prebuilt_font {
- name: "NotoSansTamilUI-Regular.ttf",
- src: "NotoSansTamilUI-Regular.ttf",
+ name: "NotoSansTamilUI-Bold.otf",
+ src: "NotoSansTamilUI-Bold.otf",
+}
+
+prebuilt_font {
+ name: "NotoSansTamilUI-Medium.otf",
+ src: "NotoSansTamilUI-Medium.otf",
+}
+
+prebuilt_font {
+ name: "NotoSansTamilUI-Regular.otf",
+ src: "NotoSansTamilUI-Regular.otf",
}
prebuilt_font {
@@ -768,43 +808,63 @@
}
prebuilt_font {
- name: "NotoSansArmenian-Regular.ttf",
- src: "NotoSansArmenian-Regular.ttf",
+ name: "NotoSansArmenian-Regular.otf",
+ src: "NotoSansArmenian-Regular.otf",
}
prebuilt_font {
- name: "NotoSansArmenian-Bold.ttf",
- src: "NotoSansArmenian-Bold.ttf",
+ name: "NotoSansArmenian-Bold.otf",
+ src: "NotoSansArmenian-Bold.otf",
}
prebuilt_font {
- name: "NotoSansDevanagari-Regular.ttf",
- src: "NotoSansDevanagari-Regular.ttf",
+ name: "NotoSansArmenian-Medium.otf",
+ src: "NotoSansArmenian-Medium.otf",
}
prebuilt_font {
- name: "NotoSansDevanagari-Bold.ttf",
- src: "NotoSansDevanagari-Bold.ttf",
+ name: "NotoSansDevanagari-Regular.otf",
+ src: "NotoSansDevanagari-Regular.otf",
}
prebuilt_font {
- name: "NotoSansDevanagariUI-Regular.ttf",
- src: "NotoSansDevanagariUI-Regular.ttf",
+ name: "NotoSansDevanagari-Bold.otf",
+ src: "NotoSansDevanagari-Bold.otf",
}
prebuilt_font {
- name: "NotoSansDevanagariUI-Bold.ttf",
- src: "NotoSansDevanagariUI-Bold.ttf",
+ name: "NotoSansDevanagari-Medium.otf",
+ src: "NotoSansDevanagari-Medium.otf",
}
prebuilt_font {
- name: "NotoSansGeorgian-Regular.ttf",
- src: "NotoSansGeorgian-Regular.ttf",
+ name: "NotoSansDevanagariUI-Regular.otf",
+ src: "NotoSansDevanagariUI-Regular.otf",
}
prebuilt_font {
- name: "NotoSansGeorgian-Bold.ttf",
- src: "NotoSansGeorgian-Bold.ttf",
+ name: "NotoSansDevanagariUI-Bold.otf",
+ src: "NotoSansDevanagariUI-Bold.otf",
+}
+
+prebuilt_font {
+ name: "NotoSansDevanagariUI-Medium.otf",
+ src: "NotoSansDevanagariUI-Medium.otf",
+}
+
+prebuilt_font {
+ name: "NotoSansGeorgian-Regular.otf",
+ src: "NotoSansGeorgian-Regular.otf",
+}
+
+prebuilt_font {
+ name: "NotoSansGeorgian-Bold.otf",
+ src: "NotoSansGeorgian-Bold.otf",
+}
+
+prebuilt_font {
+ name: "NotoSansGeorgian-Medium.otf",
+ src: "NotoSansGeorgian-Medium.otf",
}
prebuilt_font {
@@ -848,13 +908,13 @@
}
prebuilt_font {
- name: "NotoSerifArmenian-Bold.ttf",
- src: "NotoSerifArmenian-Bold.ttf",
+ name: "NotoSerifArmenian-Bold.otf",
+ src: "NotoSerifArmenian-Bold.otf",
}
prebuilt_font {
- name: "NotoSerifArmenian-Regular.ttf",
- src: "NotoSerifArmenian-Regular.ttf",
+ name: "NotoSerifArmenian-Regular.otf",
+ src: "NotoSerifArmenian-Regular.otf",
}
prebuilt_font {
@@ -888,13 +948,13 @@
}
prebuilt_font {
- name: "NotoSerifGeorgian-Bold.ttf",
- src: "NotoSerifGeorgian-Bold.ttf",
+ name: "NotoSerifGeorgian-Bold.otf",
+ src: "NotoSerifGeorgian-Bold.otf",
}
prebuilt_font {
- name: "NotoSerifGeorgian-Regular.ttf",
- src: "NotoSerifGeorgian-Regular.ttf",
+ name: "NotoSerifGeorgian-Regular.otf",
+ src: "NotoSerifGeorgian-Regular.otf",
}
prebuilt_font {
@@ -988,13 +1048,13 @@
}
prebuilt_font {
- name: "NotoSerifTamil-Bold.ttf",
- src: "NotoSerifTamil-Bold.ttf",
+ name: "NotoSerifTamil-Bold.otf",
+ src: "NotoSerifTamil-Bold.otf",
}
prebuilt_font {
- name: "NotoSerifTamil-Regular.ttf",
- src: "NotoSerifTamil-Regular.ttf",
+ name: "NotoSerifTamil-Regular.otf",
+ src: "NotoSerifTamil-Regular.otf",
}
prebuilt_font {
diff --git a/other/NotoSansArmenian-Bold.otf b/other/NotoSansArmenian-Bold.otf
new file mode 100644
index 0000000..11700a9
--- /dev/null
+++ b/other/NotoSansArmenian-Bold.otf
Binary files differ
diff --git a/other/NotoSansArmenian-Bold.ttf b/other/NotoSansArmenian-Bold.ttf
deleted file mode 100644
index 109e34f..0000000
--- a/other/NotoSansArmenian-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansArmenian-Medium.otf b/other/NotoSansArmenian-Medium.otf
new file mode 100644
index 0000000..17dbffb
--- /dev/null
+++ b/other/NotoSansArmenian-Medium.otf
Binary files differ
diff --git a/other/NotoSansArmenian-Regular.otf b/other/NotoSansArmenian-Regular.otf
new file mode 100644
index 0000000..60bb53f
--- /dev/null
+++ b/other/NotoSansArmenian-Regular.otf
Binary files differ
diff --git a/other/NotoSansArmenian-Regular.ttf b/other/NotoSansArmenian-Regular.ttf
deleted file mode 100644
index 7f26da5..0000000
--- a/other/NotoSansArmenian-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansBengali-Bold.otf b/other/NotoSansBengali-Bold.otf
new file mode 100644
index 0000000..03fa2ce
--- /dev/null
+++ b/other/NotoSansBengali-Bold.otf
Binary files differ
diff --git a/other/NotoSansBengali-Bold.ttf b/other/NotoSansBengali-Bold.ttf
deleted file mode 100644
index 546a555..0000000
--- a/other/NotoSansBengali-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansBengali-Medium.otf b/other/NotoSansBengali-Medium.otf
new file mode 100644
index 0000000..fa98001
--- /dev/null
+++ b/other/NotoSansBengali-Medium.otf
Binary files differ
diff --git a/other/NotoSansBengali-Regular.otf b/other/NotoSansBengali-Regular.otf
new file mode 100644
index 0000000..be3fde0
--- /dev/null
+++ b/other/NotoSansBengali-Regular.otf
Binary files differ
diff --git a/other/NotoSansBengali-Regular.ttf b/other/NotoSansBengali-Regular.ttf
deleted file mode 100644
index 520d82f..0000000
--- a/other/NotoSansBengali-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansBengaliUI-Bold.otf b/other/NotoSansBengaliUI-Bold.otf
new file mode 100644
index 0000000..ea58c5a
--- /dev/null
+++ b/other/NotoSansBengaliUI-Bold.otf
Binary files differ
diff --git a/other/NotoSansBengaliUI-Bold.ttf b/other/NotoSansBengaliUI-Bold.ttf
deleted file mode 100644
index 923580c..0000000
--- a/other/NotoSansBengaliUI-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansBengaliUI-Medium.otf b/other/NotoSansBengaliUI-Medium.otf
new file mode 100644
index 0000000..ba35bab
--- /dev/null
+++ b/other/NotoSansBengaliUI-Medium.otf
Binary files differ
diff --git a/other/NotoSansBengaliUI-Regular.otf b/other/NotoSansBengaliUI-Regular.otf
new file mode 100644
index 0000000..491fd93
--- /dev/null
+++ b/other/NotoSansBengaliUI-Regular.otf
Binary files differ
diff --git a/other/NotoSansBengaliUI-Regular.ttf b/other/NotoSansBengaliUI-Regular.ttf
deleted file mode 100644
index 5373108..0000000
--- a/other/NotoSansBengaliUI-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansChakma-Regular.otf b/other/NotoSansChakma-Regular.otf
new file mode 100644
index 0000000..d9690ca
--- /dev/null
+++ b/other/NotoSansChakma-Regular.otf
Binary files differ
diff --git a/other/NotoSansChakma-Regular.ttf b/other/NotoSansChakma-Regular.ttf
deleted file mode 100644
index 43e5161..0000000
--- a/other/NotoSansChakma-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansDevanagari-Bold.otf b/other/NotoSansDevanagari-Bold.otf
new file mode 100644
index 0000000..383f279
--- /dev/null
+++ b/other/NotoSansDevanagari-Bold.otf
Binary files differ
diff --git a/other/NotoSansDevanagari-Bold.ttf b/other/NotoSansDevanagari-Bold.ttf
deleted file mode 100644
index 9fe0162..0000000
--- a/other/NotoSansDevanagari-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansDevanagari-Medium.otf b/other/NotoSansDevanagari-Medium.otf
new file mode 100644
index 0000000..c454f83
--- /dev/null
+++ b/other/NotoSansDevanagari-Medium.otf
Binary files differ
diff --git a/other/NotoSansDevanagari-Regular.otf b/other/NotoSansDevanagari-Regular.otf
new file mode 100644
index 0000000..68b2c13
--- /dev/null
+++ b/other/NotoSansDevanagari-Regular.otf
Binary files differ
diff --git a/other/NotoSansDevanagari-Regular.ttf b/other/NotoSansDevanagari-Regular.ttf
deleted file mode 100644
index 0a024df..0000000
--- a/other/NotoSansDevanagari-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansDevanagariUI-Bold.otf b/other/NotoSansDevanagariUI-Bold.otf
new file mode 100644
index 0000000..113ebb4
--- /dev/null
+++ b/other/NotoSansDevanagariUI-Bold.otf
Binary files differ
diff --git a/other/NotoSansDevanagariUI-Bold.ttf b/other/NotoSansDevanagariUI-Bold.ttf
deleted file mode 100644
index a0cc7dd..0000000
--- a/other/NotoSansDevanagariUI-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansDevanagariUI-Medium.otf b/other/NotoSansDevanagariUI-Medium.otf
new file mode 100644
index 0000000..48658e8
--- /dev/null
+++ b/other/NotoSansDevanagariUI-Medium.otf
Binary files differ
diff --git a/other/NotoSansDevanagariUI-Regular.otf b/other/NotoSansDevanagariUI-Regular.otf
new file mode 100644
index 0000000..eda9bef
--- /dev/null
+++ b/other/NotoSansDevanagariUI-Regular.otf
Binary files differ
diff --git a/other/NotoSansDevanagariUI-Regular.ttf b/other/NotoSansDevanagariUI-Regular.ttf
deleted file mode 100644
index d74aefd..0000000
--- a/other/NotoSansDevanagariUI-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansGeorgian-Bold.otf b/other/NotoSansGeorgian-Bold.otf
new file mode 100644
index 0000000..086bd40
--- /dev/null
+++ b/other/NotoSansGeorgian-Bold.otf
Binary files differ
diff --git a/other/NotoSansGeorgian-Bold.ttf b/other/NotoSansGeorgian-Bold.ttf
deleted file mode 100644
index 2e01965..0000000
--- a/other/NotoSansGeorgian-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansGeorgian-Medium.otf b/other/NotoSansGeorgian-Medium.otf
new file mode 100644
index 0000000..15e5eb6
--- /dev/null
+++ b/other/NotoSansGeorgian-Medium.otf
Binary files differ
diff --git a/other/NotoSansGeorgian-Regular.otf b/other/NotoSansGeorgian-Regular.otf
new file mode 100644
index 0000000..e59f368
--- /dev/null
+++ b/other/NotoSansGeorgian-Regular.otf
Binary files differ
diff --git a/other/NotoSansGeorgian-Regular.ttf b/other/NotoSansGeorgian-Regular.ttf
deleted file mode 100644
index b5a3847..0000000
--- a/other/NotoSansGeorgian-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMalayalam-Bold.otf b/other/NotoSansMalayalam-Bold.otf
new file mode 100644
index 0000000..f748b3b
--- /dev/null
+++ b/other/NotoSansMalayalam-Bold.otf
Binary files differ
diff --git a/other/NotoSansMalayalam-Bold.ttf b/other/NotoSansMalayalam-Bold.ttf
deleted file mode 100644
index 5f6ca0c..0000000
--- a/other/NotoSansMalayalam-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMalayalam-Medium.otf b/other/NotoSansMalayalam-Medium.otf
new file mode 100644
index 0000000..e8cd727
--- /dev/null
+++ b/other/NotoSansMalayalam-Medium.otf
Binary files differ
diff --git a/other/NotoSansMalayalam-Regular.otf b/other/NotoSansMalayalam-Regular.otf
new file mode 100644
index 0000000..1eaa950
--- /dev/null
+++ b/other/NotoSansMalayalam-Regular.otf
Binary files differ
diff --git a/other/NotoSansMalayalam-Regular.ttf b/other/NotoSansMalayalam-Regular.ttf
deleted file mode 100644
index be82967..0000000
--- a/other/NotoSansMalayalam-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMalayalamUI-Bold.otf b/other/NotoSansMalayalamUI-Bold.otf
new file mode 100644
index 0000000..669bf1f
--- /dev/null
+++ b/other/NotoSansMalayalamUI-Bold.otf
Binary files differ
diff --git a/other/NotoSansMalayalamUI-Bold.ttf b/other/NotoSansMalayalamUI-Bold.ttf
deleted file mode 100644
index 0919b8c..0000000
--- a/other/NotoSansMalayalamUI-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMalayalamUI-Medium.otf b/other/NotoSansMalayalamUI-Medium.otf
new file mode 100644
index 0000000..0468ce9
--- /dev/null
+++ b/other/NotoSansMalayalamUI-Medium.otf
Binary files differ
diff --git a/other/NotoSansMalayalamUI-Regular.otf b/other/NotoSansMalayalamUI-Regular.otf
new file mode 100644
index 0000000..3e22f89
--- /dev/null
+++ b/other/NotoSansMalayalamUI-Regular.otf
Binary files differ
diff --git a/other/NotoSansMalayalamUI-Regular.ttf b/other/NotoSansMalayalamUI-Regular.ttf
deleted file mode 100644
index 4f1b408..0000000
--- a/other/NotoSansMalayalamUI-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMyanmar-Bold-ZawDecode.ttf b/other/NotoSansMyanmar-Bold-ZawDecode.ttf
new file mode 100644
index 0000000..f2ac78b
--- /dev/null
+++ b/other/NotoSansMyanmar-Bold-ZawDecode.ttf
Binary files differ
diff --git a/other/NotoSansMyanmar-Bold.otf b/other/NotoSansMyanmar-Bold.otf
new file mode 100644
index 0000000..ddec241
--- /dev/null
+++ b/other/NotoSansMyanmar-Bold.otf
Binary files differ
diff --git a/other/NotoSansMyanmar-Bold.ttf b/other/NotoSansMyanmar-Bold.ttf
deleted file mode 100644
index 9f74c12..0000000
--- a/other/NotoSansMyanmar-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMyanmar-Medium.otf b/other/NotoSansMyanmar-Medium.otf
new file mode 100644
index 0000000..c6c03db
--- /dev/null
+++ b/other/NotoSansMyanmar-Medium.otf
Binary files differ
diff --git a/other/NotoSansMyanmar-Regular-ZawDecode.ttf b/other/NotoSansMyanmar-Regular-ZawDecode.ttf
new file mode 100644
index 0000000..c9d5dbc
--- /dev/null
+++ b/other/NotoSansMyanmar-Regular-ZawDecode.ttf
Binary files differ
diff --git a/other/NotoSansMyanmar-Regular.otf b/other/NotoSansMyanmar-Regular.otf
new file mode 100644
index 0000000..f2f7a67
--- /dev/null
+++ b/other/NotoSansMyanmar-Regular.otf
Binary files differ
diff --git a/other/NotoSansMyanmar-Regular.ttf b/other/NotoSansMyanmar-Regular.ttf
deleted file mode 100644
index 034660b..0000000
--- a/other/NotoSansMyanmar-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMyanmarUI-Bold-ZawDecode.ttf b/other/NotoSansMyanmarUI-Bold-ZawDecode.ttf
new file mode 100644
index 0000000..d27c526
--- /dev/null
+++ b/other/NotoSansMyanmarUI-Bold-ZawDecode.ttf
Binary files differ
diff --git a/other/NotoSansMyanmarUI-Bold.otf b/other/NotoSansMyanmarUI-Bold.otf
new file mode 100644
index 0000000..6742efd
--- /dev/null
+++ b/other/NotoSansMyanmarUI-Bold.otf
Binary files differ
diff --git a/other/NotoSansMyanmarUI-Bold.ttf b/other/NotoSansMyanmarUI-Bold.ttf
deleted file mode 100644
index 1c76aa7..0000000
--- a/other/NotoSansMyanmarUI-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMyanmarUI-Medium.otf b/other/NotoSansMyanmarUI-Medium.otf
new file mode 100644
index 0000000..af579de
--- /dev/null
+++ b/other/NotoSansMyanmarUI-Medium.otf
Binary files differ
diff --git a/other/NotoSansMyanmarUI-Regular-ZawDecode.ttf b/other/NotoSansMyanmarUI-Regular-ZawDecode.ttf
new file mode 100644
index 0000000..3dc93d5
--- /dev/null
+++ b/other/NotoSansMyanmarUI-Regular-ZawDecode.ttf
Binary files differ
diff --git a/other/NotoSansMyanmarUI-Regular.otf b/other/NotoSansMyanmarUI-Regular.otf
new file mode 100644
index 0000000..7d912b8
--- /dev/null
+++ b/other/NotoSansMyanmarUI-Regular.otf
Binary files differ
diff --git a/other/NotoSansMyanmarUI-Regular.ttf b/other/NotoSansMyanmarUI-Regular.ttf
deleted file mode 100644
index a435ba1..0000000
--- a/other/NotoSansMyanmarUI-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansSinhala-Bold.otf b/other/NotoSansSinhala-Bold.otf
new file mode 100644
index 0000000..1ccfb67
--- /dev/null
+++ b/other/NotoSansSinhala-Bold.otf
Binary files differ
diff --git a/other/NotoSansSinhala-Bold.ttf b/other/NotoSansSinhala-Bold.ttf
deleted file mode 100644
index 1ba5a1c..0000000
--- a/other/NotoSansSinhala-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansSinhala-Medium.otf b/other/NotoSansSinhala-Medium.otf
new file mode 100644
index 0000000..7b62820
--- /dev/null
+++ b/other/NotoSansSinhala-Medium.otf
Binary files differ
diff --git a/other/NotoSansSinhala-Regular.otf b/other/NotoSansSinhala-Regular.otf
new file mode 100644
index 0000000..027fd25
--- /dev/null
+++ b/other/NotoSansSinhala-Regular.otf
Binary files differ
diff --git a/other/NotoSansSinhala-Regular.ttf b/other/NotoSansSinhala-Regular.ttf
deleted file mode 100644
index 9f4de71..0000000
--- a/other/NotoSansSinhala-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansSinhalaUI-Bold.otf b/other/NotoSansSinhalaUI-Bold.otf
index d73a364..8d22bf2 100644
--- a/other/NotoSansSinhalaUI-Bold.otf
+++ b/other/NotoSansSinhalaUI-Bold.otf
Binary files differ
diff --git a/other/NotoSansSinhalaUI-Medium.otf b/other/NotoSansSinhalaUI-Medium.otf
new file mode 100644
index 0000000..8b5e701
--- /dev/null
+++ b/other/NotoSansSinhalaUI-Medium.otf
Binary files differ
diff --git a/other/NotoSansSinhalaUI-Regular.otf b/other/NotoSansSinhalaUI-Regular.otf
index 4902292..925536d 100644
--- a/other/NotoSansSinhalaUI-Regular.otf
+++ b/other/NotoSansSinhalaUI-Regular.otf
Binary files differ
diff --git a/other/NotoSansTamil-Bold.otf b/other/NotoSansTamil-Bold.otf
new file mode 100644
index 0000000..c9611a3
--- /dev/null
+++ b/other/NotoSansTamil-Bold.otf
Binary files differ
diff --git a/other/NotoSansTamil-Bold.ttf b/other/NotoSansTamil-Bold.ttf
deleted file mode 100644
index f15bfad..0000000
--- a/other/NotoSansTamil-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTamil-Medium.otf b/other/NotoSansTamil-Medium.otf
new file mode 100644
index 0000000..1e84a9b
--- /dev/null
+++ b/other/NotoSansTamil-Medium.otf
Binary files differ
diff --git a/other/NotoSansTamil-Regular.otf b/other/NotoSansTamil-Regular.otf
new file mode 100644
index 0000000..b77a33c
--- /dev/null
+++ b/other/NotoSansTamil-Regular.otf
Binary files differ
diff --git a/other/NotoSansTamil-Regular.ttf b/other/NotoSansTamil-Regular.ttf
deleted file mode 100644
index 635a238..0000000
--- a/other/NotoSansTamil-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTamilUI-Bold.otf b/other/NotoSansTamilUI-Bold.otf
new file mode 100644
index 0000000..665d6fd
--- /dev/null
+++ b/other/NotoSansTamilUI-Bold.otf
Binary files differ
diff --git a/other/NotoSansTamilUI-Bold.ttf b/other/NotoSansTamilUI-Bold.ttf
deleted file mode 100644
index 297f30b..0000000
--- a/other/NotoSansTamilUI-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTamilUI-Medium.otf b/other/NotoSansTamilUI-Medium.otf
new file mode 100644
index 0000000..64997d3
--- /dev/null
+++ b/other/NotoSansTamilUI-Medium.otf
Binary files differ
diff --git a/other/NotoSansTamilUI-Regular.otf b/other/NotoSansTamilUI-Regular.otf
new file mode 100644
index 0000000..7ee7d4f
--- /dev/null
+++ b/other/NotoSansTamilUI-Regular.otf
Binary files differ
diff --git a/other/NotoSansTamilUI-Regular.ttf b/other/NotoSansTamilUI-Regular.ttf
deleted file mode 100644
index 360bed8..0000000
--- a/other/NotoSansTamilUI-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifArmenian-Bold.otf b/other/NotoSerifArmenian-Bold.otf
new file mode 100644
index 0000000..7df98e3
--- /dev/null
+++ b/other/NotoSerifArmenian-Bold.otf
Binary files differ
diff --git a/other/NotoSerifArmenian-Bold.ttf b/other/NotoSerifArmenian-Bold.ttf
deleted file mode 100644
index 215a57f..0000000
--- a/other/NotoSerifArmenian-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifArmenian-Regular.otf b/other/NotoSerifArmenian-Regular.otf
new file mode 100644
index 0000000..05df944
--- /dev/null
+++ b/other/NotoSerifArmenian-Regular.otf
Binary files differ
diff --git a/other/NotoSerifArmenian-Regular.ttf b/other/NotoSerifArmenian-Regular.ttf
deleted file mode 100644
index d33f13d..0000000
--- a/other/NotoSerifArmenian-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifGeorgian-Bold.otf b/other/NotoSerifGeorgian-Bold.otf
new file mode 100644
index 0000000..1c2c01f
--- /dev/null
+++ b/other/NotoSerifGeorgian-Bold.otf
Binary files differ
diff --git a/other/NotoSerifGeorgian-Bold.ttf b/other/NotoSerifGeorgian-Bold.ttf
deleted file mode 100644
index 00709da..0000000
--- a/other/NotoSerifGeorgian-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifGeorgian-Regular.otf b/other/NotoSerifGeorgian-Regular.otf
new file mode 100644
index 0000000..f0186e6
--- /dev/null
+++ b/other/NotoSerifGeorgian-Regular.otf
Binary files differ
diff --git a/other/NotoSerifGeorgian-Regular.ttf b/other/NotoSerifGeorgian-Regular.ttf
deleted file mode 100644
index 814731d..0000000
--- a/other/NotoSerifGeorgian-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifKhmer-Bold.ttf b/other/NotoSerifKhmer-Bold.ttf
deleted file mode 100644
index 795c35c..0000000
--- a/other/NotoSerifKhmer-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifKhmer-Regular.ttf b/other/NotoSerifKhmer-Regular.ttf
deleted file mode 100644
index 22a3b22..0000000
--- a/other/NotoSerifKhmer-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifMyanmar-Bold.otf b/other/NotoSerifMyanmar-Bold.otf
index 9c2bba5..ba21a27 100644
--- a/other/NotoSerifMyanmar-Bold.otf
+++ b/other/NotoSerifMyanmar-Bold.otf
Binary files differ
diff --git a/other/NotoSerifMyanmar-Regular.otf b/other/NotoSerifMyanmar-Regular.otf
index 3149b2f..ec4ed44 100644
--- a/other/NotoSerifMyanmar-Regular.otf
+++ b/other/NotoSerifMyanmar-Regular.otf
Binary files differ
diff --git a/other/NotoSerifSinhala-Bold.otf b/other/NotoSerifSinhala-Bold.otf
index 59ebdf0..ec8a3f9 100644
--- a/other/NotoSerifSinhala-Bold.otf
+++ b/other/NotoSerifSinhala-Bold.otf
Binary files differ
diff --git a/other/NotoSerifSinhala-Regular.otf b/other/NotoSerifSinhala-Regular.otf
index 3d75615..876c153 100644
--- a/other/NotoSerifSinhala-Regular.otf
+++ b/other/NotoSerifSinhala-Regular.otf
Binary files differ
diff --git a/other/NotoSerifTamil-Bold.otf b/other/NotoSerifTamil-Bold.otf
new file mode 100644
index 0000000..d0d57cd
--- /dev/null
+++ b/other/NotoSerifTamil-Bold.otf
Binary files differ
diff --git a/other/NotoSerifTamil-Bold.ttf b/other/NotoSerifTamil-Bold.ttf
deleted file mode 100644
index 9154410..0000000
--- a/other/NotoSerifTamil-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifTamil-Regular.otf b/other/NotoSerifTamil-Regular.otf
new file mode 100644
index 0000000..33b2b13
--- /dev/null
+++ b/other/NotoSerifTamil-Regular.otf
Binary files differ
diff --git a/other/NotoSerifTamil-Regular.ttf b/other/NotoSerifTamil-Regular.ttf
deleted file mode 100644
index ae772a1..0000000
--- a/other/NotoSerifTamil-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/scripts/color_emoji_image_diff.py b/scripts/color_emoji_image_diff.py
new file mode 100755
index 0000000..6f4c87e
--- /dev/null
+++ b/scripts/color_emoji_image_diff.py
@@ -0,0 +1,183 @@
+#!/usr/bin/env python
+
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import contextlib
+import itertools
+import io
+import os
+import sys
+
+from fontTools import ttLib
+from PIL import Image
+
+def to_hex_str(value):
+ """Converts given int value to hex without the 0x prefix"""
+ return format(value, 'X')
+
+def codepoint_to_string(codepoints):
+ """Converts a list of codepoints into a string separated with space."""
+ return '_'.join([to_hex_str(x) for x in codepoints])
+
+def read_cmap12(ttf, glyph_to_codepoint_map, codepoint_map):
+ cmap = ttf['cmap']
+ for table in cmap.tables:
+ if table.format == 12 and table.platformID == 3 and table.platEncID == 10:
+ for codepoint, glyph_name in table.cmap.iteritems():
+ glyph_to_codepoint_map[glyph_name] = codepoint
+ codepoint_map[codepoint_to_string([codepoint])] = glyph_name
+ # self.update_emoji_data([codepoint], glyph_name)
+ return table
+ raise ValueError("Font doesn't contain cmap with format:12, platformID:3 and platEncID:10")
+
+def read_gsub(ttf, glyph_to_codepoint_map, codepoint_map):
+ gsub = ttf['GSUB']
+ ligature_subtables = []
+ context_subtables = []
+ # this code is font dependent, implementing all gsub rules is out of scope of EmojiCompat
+ # and would be expensive with little value
+ for lookup in gsub.table.LookupList.Lookup:
+ for subtable in lookup.SubTable:
+ if subtable.LookupType == 5:
+ context_subtables.append(subtable)
+ elif subtable.LookupType == 4:
+ ligature_subtables.append(subtable)
+
+ for subtable in context_subtables:
+ add_gsub_context_subtable(subtable, gsub.table.LookupList, glyph_to_codepoint_map, codepoint_map)
+
+ for subtable in ligature_subtables:
+ add_gsub_ligature_subtable(subtable, glyph_to_codepoint_map, codepoint_map)
+
+def add_gsub_context_subtable(subtable, lookup_list, glyph_to_codepoint_map, codepoint_map):
+ for sub_class_set in subtable.SubClassSet:
+ if sub_class_set:
+ for sub_class_rule in sub_class_set.SubClassRule:
+ subs_list = len(sub_class_rule.SubstLookupRecord) * [None]
+ for record in sub_class_rule.SubstLookupRecord:
+ subs_list[record.SequenceIndex] = get_substitutions(lookup_list,
+ record.LookupListIndex)
+ combinations = list(itertools.product(*subs_list))
+ for seq in combinations:
+ glyph_names = [x["input"] for x in seq]
+ codepoints = [glyph_to_codepoint_map[x] for x in glyph_names]
+ outputs = [x["output"] for x in seq if x["output"]]
+ nonempty_outputs = filter(lambda x: x.strip() , outputs)
+ if len(nonempty_outputs) == 0:
+ print("Warning: no output glyph is set for " + str(glyph_names))
+ continue
+ elif len(nonempty_outputs) > 1:
+ print(
+ "Warning: multiple glyph is set for "
+ + str(glyph_names) + ", will use the first one")
+
+ glyph = nonempty_outputs[0]
+ codepoint_map[codepoint_to_string(codepoints)] = glyph
+
+def get_substitutions(lookup_list, index):
+ result = []
+ for x in lookup_list.Lookup[index].SubTable:
+ for input, output in x.mapping.iteritems():
+ result.append({"input": input, "output": output})
+ return result
+
+def add_gsub_ligature_subtable(subtable, glyph_to_codepoint_map, codepoint_map):
+ for name, ligatures in subtable.ligatures.iteritems():
+ for ligature in ligatures:
+ glyph_names = [name] + ligature.Component
+ codepoints = [glyph_to_codepoint_map[x] for x in glyph_names]
+ codepoint_map[codepoint_to_string(codepoints)] = ligature.LigGlyph
+
+def read_cbdt(ttf):
+ cbdt = ttf['CBDT']
+ glyph_to_image = {}
+ for strike_data in cbdt.strikeData:
+ for key, data in strike_data.iteritems():
+ data.decompile
+ glyph_to_image[key] = Image.open(io.BytesIO(data.imageData))
+ return glyph_to_image
+
+
+rgba_map = {}
+
+def similar_img(img1, img2):
+ # return if images are the same with accepting some changes
+ if img1 is None and img2 is None: return True
+ if img1 is None or img2 is None: return False
+ if not img1.size == img2.size: return False
+
+ pixels1 = rgba_map.get(img1, img1.convert('L').getdata())
+ pixels2 = rgba_map.get(img2, img2.convert('L').getdata())
+ pixels = itertools.izip(pixels1, pixels2)
+ diff = 0
+ for px1, px2 in pixels:
+ diff = diff + abs(px1-px2)
+ pixel_count = 1.0 * img1.size[0] * img1.size[1]
+ normalized_diff = diff / pixel_count / 255.0 * 100.0
+ if normalized_diff <= 0.5: return True
+ return False
+
+def main(argv):
+ codepoint_map_1 = {}
+ codepoint_map_2 = {}
+ glyph_to_codepoint_map_1 = {}
+ glyph_to_codepoint_map_2 = {}
+
+ with contextlib.closing(ttLib.TTFont(argv[1])) as ttf:
+ font1_cbdt = read_cbdt(ttf)
+ read_cmap12(ttf, glyph_to_codepoint_map_1, codepoint_map_1)
+ read_gsub(ttf, glyph_to_codepoint_map_1, codepoint_map_1)
+ with contextlib.closing(ttLib.TTFont(argv[2])) as ttf:
+ font2_cbdt = read_cbdt(ttf)
+ read_cmap12(ttf, glyph_to_codepoint_map_2, codepoint_map_2)
+ read_gsub(ttf, glyph_to_codepoint_map_2, codepoint_map_2)
+
+ glyphs1 = set(font1_cbdt.keys())
+ glyphs2 = set(font2_cbdt.keys())
+
+ codepoints_set1 = set(codepoint_map_1.keys())
+ codepoints_set2 = set(codepoint_map_2.keys())
+
+ if codepoints_set1 != codepoints_set2:
+ print "Codepoints set has changed: : %s" % (codepoints_set1 ^ codepoints_set2)
+
+ all_codepoints = set(codepoint_map_1.keys()).union(codepoint_map_2.keys())
+
+ for key in all_codepoints:
+ glyph1 = codepoint_map_1[key] if key in codepoint_map_1 else None
+ glyph2 = codepoint_map_2[key] if key in codepoint_map_2 else None
+
+ image1 = font1_cbdt[glyph1] if glyph1 and glyph1 in font1_cbdt else None
+ image2 = font2_cbdt[glyph2] if glyph2 and glyph2 in font2_cbdt else None
+
+ if not similar_img(image1, image2):
+ print 'Glyph %s has different image' % key
+ if image1:
+ with open(os.path.join(argv[3], '%s_old.png' % key), 'w') as f:
+ image1.save(f)
+ if image2:
+ with open(os.path.join(argv[3], '%s_new.png' % key), 'w') as f:
+ image2.save(f)
+
+
+def print_usage():
+ """Prints how to use the script."""
+ print("usage: old_font new_font output_dir")
+
+if __name__ == '__main__':
+ if len(sys.argv) < 3:
+ print_usage()
+ sys.exit(1)
+ main(sys.argv)