MTK Android recovery/logo图片资源制作

一、文字图片转换
png 图片生成源码:development/tools/recovery_l10n/
recovery_l10n 在 o上已经没有源码了,需要从kk上移植过来
原生的源代码有个bug,导致读取出来的Locale[]数组值全部为空,无法完成图片的制作。

diff --git a/tools/recovery_l10n/src/com/android/recovery_l10n/Main.java b/tools/recovery_l10n/src/com/android/recovery_l10n/Main.java
index 3f2bebe..5da5592 100755
--- a/tools/recovery_l10n/src/com/android/recovery_l10n/Main.java
+++ b/tools/recovery_l10n/src/com/android/recovery_l10n/Main.java
@@ -150,7 +150,7 @@ public class Main extends Activity {
         Arrays.sort(localeNames);
         ArrayList<Locale> locales = new ArrayList<Locale>();
         for (String ln : localeNames) {
-            int u = ln.indexOf('_');
+            int u = ln.indexOf('-');
             if (u >= 0) {
                 Log.i(TAG, "locale = " + ln);
                 locales.add(new Locale(ln.substring(0, u), ln.substring(u+1)));

1、res\values-zh-rCN\strings.xml用于显示中文文字,可以修改里面的中文文字为您所需要的。
2、res\layout\main.xml用于改变文字格式,如大小、字体等。
3、然后使用mm编译出out\target\product…\system\app\RecoveryLocalizer.apk
4、安装打开后选择需要的文字图片后点击go按钮。
5、取出图片:adb pull data/data/com.android.recovery_l10n/files/text-out.png
6、生成的图片还不能直接替换系统图片,需要在Ubuntu环境下作进一步处理
(如未安装 pngcrush,请先安装 :sudo apt-get install pngcrush)
pngcrush -c 0 text-out.png output.png

二、android5.1 logo动画
android5.1的logo动画是单张多帧PNG图片
1、安装python、pip、PIL 图形库
2、python interlace-frames.py .\src1.png .\src2.png .\src3.png .\src4.png .\src5.png .\src6.png .\src7.png .\src8.png .\dst.png

三、android8.1 logo动画
android8.1的logo动画是多张8位深度png的图片
用 imagemagick 工具的 convert 命令转换 sudo apt-get install imagemagick
//convert src.png -colorspace gray dst.png
convert image.png -define png:color-type=2 result.png

bit_depth(8)channels(3)color_type(2)

// 批量转换图片的脚本

#!/bin/bash
# get all filename in specified path

path=$1
files=$(ls $path)
for filename in `find . -name "*.png"`;
do
    echo "convert"$filename
    convert $filename -define png:color-type=2 $filename
done

查看png图片信息

sudo apt-get install pngtools
pnginfo bootable/recovery/res-mdpi/images/error_text.png

显示结果如下:

error_text.png...
  Image Width: 163 Image Length: 2582
  Bitdepth (Bits/Sample): 8
  Channels (Samples/Pixel): 1
  Pixel depth (Pixel Depth): 8
  Colour Type (Photometric Interpretation): GRAYSCALE 
  Image filter: Single row per byte filter 
  Interlacing: No interlacing 
  Compression Scheme: Deflate method 8, 32k window
  Resolution: 0, 0 (unit unknown)
  FillOrder: msb-to-lsb
  Byte Order: Network (Big Endian)
  Number of text strings: 0

使用 convert 命令转换之后查看图片信息显示结果如下:

error_text.png...
  Image Width: 163 Image Length: 2582
  Bitdepth (Bits/Sample): 8
  Channels (Samples/Pixel): 3
  Pixel depth (Pixel Depth): 24
  Colour Type (Photometric Interpretation): RGB 
  Image filter: Single row per byte filter 
  Interlacing: No interlacing 
  Compression Scheme: Deflate method 8, 32k window
  Resolution: 0, 0 (unit unknown)
  FillOrder: msb-to-lsb
  Byte Order: Network (Big Endian)
  Number of text strings: 0

转换之后的 channels 和 pixel depth 和 Colour Type 都已经发生了变化

猜你喜欢

转载自blog.csdn.net/zhangqi6627/article/details/107952838
MTK