您的位置:首页 > 其它

OTA图片短信格式介绍

2009-05-07 01:32 204 查看
前不久发表过替换运营商图标的帖子,蒙大家支持,再将该过程使用的技术从网上收录整理了一下,作为一个技术普及。

如何替换运营商标记请查看:
http://www.3g365.com/thread-393789-1-2.html

纯粹技术贴,有关Nokia的OTA文件格式详解。

介绍:

OTA(Over The Air)图片格式是Nokia为手机短信支持图片发送的一种特殊文件标准。该标准支持最大255×255像素格式的图片,该文件标准包含一个字节的数据用于将来可以支持彩色图像,但是随着多媒体彩信的实现而没有得到继续落实。





文件基本格式描述:

OTA图片格式是一种单色,非压缩格式,每像素占用1比特空间。 由于格式是专为手机设计而没有电脑标准格式。它通常存放为二进制文件或使用16进制的文本文件来表示。

格式版权

这种格式是Nokia公司的版权。

数据头(The Data Header)

在保存实际图片信息数据之前,数据包含一个标准的前导信息(Data Header)。下面采用一个典型的情况来说明这个数据头的具体含义。

实际数据(4字节 4 Byte):00 48 1C 01

00 :“infofield”,始终为00;

48 :图像的宽度,72个像素(16进制的48是10进制的72);

1C :图像的高度,28个像素(16进制的1C是10进制的28);

01 :图像的颜色数(?颜色的深度),始终为1。
(注:这个字节应该就是可以预留出来支持彩色的图像,但是可惜啊……)

图像编码段

一画千言,我们将开始编码的内容的方式,用一个画面为例,使用以下72x28像素图像。

从图中可以看出,前8个像素,从左上角往右,有一白点(0),其后依次是7个黑点(1111111)使用一个字节保存,二进制的数据为:01111111,16进制的数据则为(7F)。这样按照从左自右,从上到下的方式逐一进行编码则完成整个图像的编码。
注意:如果图片采用了非8的倍数的宽度的情况,某一字节的数据将可能纪录跨行的像素数据,这和某些格式的图片格式保存方式不太一直,当使用其他图片格式(如WBMP?)进行OTA格式转换的时候需要重点关注。

完整编码:

  00 48 1C 01  //数据头(Header)

  7F FF EF FF EF FF FB FF FE //第一行

  40 3F E8 38 2F FF FB FF FE //第二行

  48 3F A8 38 2F 9F FB FF FE //第三行

  4C FF A9 FF 2F 8F FA DA DA //第四行

  4E FF 29 01 2F 80 FA 52 52

  5E 7F 69 31 2F BF 7B 07 06

  4F FF 69 79 2F BE FB 77 76

  47 FF 69 79 2F BE 7B 07 06

  47 FE EF 7D EF BE 7B FF FE

  47 FC EF 7D E7 BC F1 FF FC

  40 F0 EF 7D E7 7C F1 ED BC

  21 E7 C9 79 27 98 F1 E5 3C

  21 E7 C9 39 27 C8 F1 F0 7C

  16 6F 89 39 23 E6 E0 F7 78

  15 2F 88 82 23 F3 E0 F0 78

  08 3F 04 44 43 D7 E0 FF F8

  04 3E 02 28 81 EF C0 7F F0

  02 3C 01 39 00 FF 80 3F E0

  01 38 00 BA 00 7F 00 1F C0

  00 F0 00 7C 00 3E 00 0F 80

  FF C0 00 38 00 1C 00 07 FF

  55 FF FF FF FF FF FF FF AA

  2A F3 87 87 3F 1E 67 0F 54

  15 F3 93 9F 3E 4E 27 27 A8

  2A F3 87 8F 3E 4E 07 27 54

  55 F3 93 9F 3E 0E 47 27 AA

  FF F3 9B 87 0E 4E 67 0F FF  //倒数第二行

  00 FF FF FF FF FF FF FF 00  //最后一行

上述讲解了有关OTA文件的格式,下面在讲解一下有关我们使用OTA文件替换运营商标记。

替换运营商标记是采用包含一个OTA图片的短信来进行替换的,该短信只是将一个OTA图片短信的前导明确说明为一个运营商的标志。

该数据包含总共5个字节的内容,比如前面我们替换的时候的数据为:30 64 F0 00 0A,

30 :表示这个短信是一个新的运营商标志图片;

64F0 :运营商的国家或地区代码,64F0就是中国大陆;

00 :运营商代码,就是同一个国家或地区的多个运营商的编号,比如在大陆这边中国移动就是00,中国联通应该就是01吧。

0A :换行标记。

图示:



所以通过上面的说明我们可以看出来,通过OTA这种方式替换运营上图标的方式应该来讲是不支持彩色的了。我曾经尝试把一个256色的图片塞进去尝试,结果是手机不能识别这个信息。

有关如何通过OTA短信发送自定义的图片,大家可以使用老式的Nokia手机发送一个图片到新的手机上,然后可以将收件箱中的OLP文件读取出来,应该只
需要将上述OTA文件内容部分的信息替换后就可以得到一个新的OTA图片信息短信,转发出去就可以是自己定义的OTA图片短信了。

上次替换运营商标志的帖子中有XD反映图片显示不完整,那是因为有的手机支持的运营商图片大小不一致所致。

参考信息:
http://en.wikipedia.org/wiki/OTA_Bitmap http://www.hearsay. 91c1
demon.co.uk/phone/Nokia8310/program.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息