我最近发现标志岛不错,专注于标志素材的网站,基本免费,不用积分,不用注册,直接下载,很方便,而且里面的标志很全面,如果免费的不合适,也有标志定制和标志售卖,你可以考虑一下,而且服务超好的,价格还是全网最低
1 摘要
验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越来越严峻。本文介绍了一套字符验证码识别的完整流程,对于验证码安全和OCR识别技术都有一定的借鉴意义。
然后经过了一年的时间,笔者又研究和get到了一种更强大的基于CNN卷积神经网络的直接端到端的验证识别技术(文章不是我的,然后我把源码整理了下,介绍和源码在这里面):
基于python语言的tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)
2 关键词
关键词:安全,字符,验证码识别,OCR,Python,SVM,PIL
3 免责声明
本文研究所用素材来自于某旧Web框架的网站 完全对外公开 的公共资源。
本文只做了该网站对外公开的公共资源进行了爬取, 并未越权 做任何多余操作。
本文在书写相关报告的时候已经 隐去 漏洞网站的身份信息。
本文作者 已经通知 网站相关人员此系统漏洞,并积极向新系统转移。
本报告的主要目的也仅是用于 OCR交流学习 和引起大家对 验证安全的警觉 。
4 引言
关于验证码的非技术部分的介绍,可以参考以前写的一篇科普类的文章:
互联网安全防火墙(1)--网络验证码的科普
里面对验证码的种类,使用场景,作用,主要的识别技术等等进行了讲解,然而并没有涉及到任何技术内容。本章内容则作为它的 技术补充 来给出相应的识别的解决方案,让读者对验证码的功能及安全性问题有更深刻的认识。
5 基本工具
要达到本文的目的,只需要简单的编程知识即可,因为现在的机器学习领域的蓬勃发展,已经有很多封装好的开源解决方案来进行机器学习。普通程序员已经不需要了解复杂的数学原理,即可以实现对这些工具的应用了。
主要开发环境:
python35
python SDK版本
PIL
处理库
libsvm
开源的svm机器学习库
关于环境的安装,不是本文的重点,故略去。
6 基本流程
一般情况下,对于字符型验证码的识别流程如下:
准备原始素材
预处理
字符切割
尺寸归一化
字符标记
字符特征提取
生成特征和标记对应的训练数据集
训练特征标记数据生成识别模型
使用识别模型预测新的未知集
达到根据“”就能返回识别正确的字符集的目标
7 素材准备
71 素材选择
由于本文是以初级的学习研究目的为主,要求 “有代表性,但又不会太难” ,所以就直接在网上找个比较有代表性的简单的字符型验证码(感觉像在找漏洞一样)。
最后在一个比较旧的网站(估计是几十年前的网站框架)找到了这个验证码。
原始图:
放大清晰图:
此能满足要求,仔细观察其具有如下特点。
有利识别的特点 :
由纯阿拉伯数字组成
字数为4位
字符排列有规律
字体是用的统一字体
以上就是本文所说的此验证码简单的重要原因,后续代码实现中会用到
不利识别的特点 :
背景有干扰噪点
这虽然是不利特点,但是这个干扰门槛太低,只需要简单的方法就可以除去
72 素材获取
由于在做训练的时候,需要大量的素材,所以不可能用手工的方式一张张在浏览器中保存,故建议写个自动化下载的程序。
主要步骤如下:
通过浏览器的抓包功能获取随机验证码生成接口
批量请求接口以获取
将保存到本地磁盘目录中
这些都是一些IT基本技能,本文就不再详细展开了。
关于网络请求和文件保存的代码,如下:
def downloads_pic(kwargs):pic_name = kwargsget('pic_name', None)
url = 'httand_code_captcha/'
res = requestsget(url, stream=True)
with open(pic_path + pic_name+'bmp', 'wb') as f: for chunk in resiter_content(chunk_size=1024): if chunk: # filter out keep-alive new chunks fwrite(chunk)
fflush()
fclose()
循环执行N次,即可保存N张验证素材了。
下面是收集的几十张素材库保存到本地文件的效果图:
8 预处理
虽然目前的机器学习算法已经相当先进了,但是为了减少后面训练时的复杂度,同时增加识别率,很有必要对进行预处理,使其对机器识别更友好。
针对以上原始素材的处理步骤如下:
读取原始素材
将彩色二值化为黑白
去除背景噪点
81 二值化
主要步骤如下:
将RGB彩图转为灰度图
将灰度图按照设定阈值转化为二值图
image = Imageopen(img_path)imgry = imageconvert('L') # 转化为灰度图table = get_bin_table()
out = imgrypoint(table, '1')
上面引用到的二值函数的定义如下:
1234567891011121314 def get_bin_table(threshold=140): """ 获取灰度转二值的映射table :param threshold: :return: """ table = [] for i in range(256): if i < threshold: tableappend(0) else: tableappend(1) return table由PIL转化后变成二值:0表示黑色,1表示白色。二值化后带噪点的 6937 的像素点输出后如下图:
11110001111110001111111000011111000000111110111011110111011111011110111100110111
1001110011110111101011011010101101110111
1101111111110110101111110101111111101111
1101000111110111001111110011111111101111
1100111011111000001111111001011111011111
1101110001111111101011010110111111011111
1101111011111111101111011110111111011111
1101111011110111001111011110111111011100
1110000111111000011101100001110111011111
如果你是近视眼,然后离屏幕远一点,可以隐约看到 6937 的骨架了。
82 去除噪点
在转化为二值后,就需要清除噪点。本文选择的素材比较简单,大部分噪点也是最简单的那种 孤立点,所以可以通过检测这些孤立点就能移除大量的噪点。
关于如何去除更复杂的噪点甚至干扰线和色块,有比较成熟的算法: 洪水填充法 Flood Fill ,后面有兴趣的时间可以继续研究一下。
本文为了问题简单化,干脆就用一种简单的自己想的 简单办法 来解决掉这个问题:
对某个 黑点 周边的九宫格里面的黑色点计数
如果黑色点少于2个则证明此点为孤立点,然后得到所有的孤立点
对所有孤立点一次批量移除。
下面将详细介绍关于具体的算法原理。
将所有的像素点如下图分成三大类
顶点A
非顶点的边界点B
内部点C
种类点示意图如下:
其中:
A类点计算周边相邻的3个点(如上图红框所示)
B类点计算周边相邻的5个点(如上图红框所示)
C类点计算周边相邻的8个点(如上图红框所示)
当然,由于基准点在计算区域的方向不同,A类点和B类点还会有细分:
A类点继续细分为:左上,左下,右上,右下
B类点继续细分为:上,下,左,右
C类点不用细分
然后这些细分点将成为后续坐标获取的准则。
主要算法的python实现如下:
def sum_9_region(img, x, y): """9邻域框,以当前点为中心的田字框,黑点个数
:param x:
:param y:
:return: """
# todo 判断的长宽度下限
cur_pixel = imggetpixel((x, y)) # 当前像素点的值
width = imgwidth
height = imgheight if cur_pixel == 1: # 如果当前点为白色区域,则不统计邻域值
return 0 if y == 0: # 第一行
if x == 0: # 左上顶点,4邻域
# 中心点旁边3个点
sum = cur_pixel \ + imggetpixel((x, y + 1)) \ + imggetpixel((x + 1, y)) \ + imggetpixel((x + 1, y + 1)) return 4 - sum elif x == width - 1: # 右上顶点
sum = cur_pixel \ + imggetpixel((x, y + 1)) \ + imggetpixel((x - 1, y)) \ + imggetpixel((x - 1, y + 1)) return 4 - sum else: # 最上非顶点,6邻域
sum = imggetpixel((x - 1, y)) \ + imggetpixel((x - 1, y + 1)) \ + cur_pixel \ + imggetpixel((x, y + 1)) \ + imggetpixel((x + 1, y)) \ + imggetpixel((x + 1, y + 1)) return 6 - sum elif y == height - 1: # 最下面一行
if x == 0: # 左下顶点
# 中心点旁边3个点
sum = cur_pixel \ + imggetpixel((x + 1, y)) \ + imggetpixel((x + 1, y - 1)) \ + imggetpixel((x, y - 1)) return 4 - sum elif x == width - 1: # 右下顶点
sum = cur_pixel \ + imggetpixel((x, y - 1)) \ + imggetpixel((x - 1, y)) \ + imggetpixel((x - 1, y - 1)) return 4 - sum else: # 最下非顶点,6邻域
sum = cur_pixel \ + imggetpixel((x - 1, y)) \ + imggetpixel((x + 1, y)) \ + imggetpixel((x, y - 1)) \ + imggetpixel((x - 1, y - 1)) \ + imggetpixel((x + 1, y - 1)) return 6 - sum else: # y不在边界
if x == 0: # 左边非顶点
sum = imggetpixel((x, y - 1)) \ + cur_pixel \ + imggetpixel((x, y + 1)) \ + imggetpixel((x + 1, y - 1)) \ + imggetpixel((x + 1, y)) \ + imggetpixel((x + 1, y + 1)) return 6 - sum elif x == width - 1: # 右边非顶点
# print('%s,%s' % (x, y))
sum = imggetpixel((x, y - 1)) \ + cur_pixel \ + imggetpixel((x, y + 1)) \ + imggetpixel((x - 1, y - 1)) \ + imggetpixel((x - 1, y)) \ + imggetpixel((x - 1, y + 1)) return 6 - sum else: # 具备9领域条件的
sum = imggetpixel((x - 1, y - 1)) \ + imggetpixel((x - 1, y)) \ + imggetpixel((x - 1, y + 1)) \ + imggetpixel((x, y - 1)) \ + cur_pixel \ + imggetpixel((x, y + 1)) \ + imggetpixel((x + 1, y - 1)) \ + imggetpixel((x + 1, y)) \ + imggetpixel((x + 1, y + 1)) return 9 - sum
Tips:这个地方是相当考验人的细心和耐心程度了,这个地方的工作量还是蛮大的,花了半个晚上的时间才完成的。
计算好每个像素点的周边像素黑点(注意:PIL转化的黑点的值为0)个数后,只需要筛选出个数为 1或者2 的点的坐标即为 孤立点 。这个判断方法可能不太准确,但是基本上能够满足本文的需求了。
经过预处理后的如下所示:
对比文章开头的原始,那些 孤立点 都被移除掉,相对比较 干净 的验证码已经生成。
9 字符切割
由于字符型 验证码 本质就可以看着是由一系列的 单个字符 拼接而成,为了简化研究对象,我们也可以将这些分解到 原子级 ,即: 只包含单个字符的。
于是,我们的研究对象由 “N种字串的组合对象” 变成 “10种阿拉伯数字” 的处理,极大的简化和减少了处理对象。
91 分割算法
现实生活中的字符验证码的产生千奇百怪,有各种扭曲和变形。关于字符分割的算法,也没有很通用的方式。这个算法也是需要开发人员仔细研究所要识别的字符的特点来制定的。
当然,本文所选的研究对象尽量简化了这个步骤的难度,下文将慢慢进行介绍。
使用图像编辑软件(PhoneShop或者其它)打开验证码,放大到像素级别,观察其它一些参数特点:
可以得到如下参数:
整个尺寸是 4010
单个字符尺寸是 610
左右字符和左右边缘相距2个像素
字符上下紧挨边缘(即相距0个像素)
这样就可以很容易就定位到每个字符在整个中占据的像素区域,然后就可以进行分割了,具体代码如下:
def get_crop_imgs(img): """按照的特点,进行切割,这个要根据具体的验证码来进行工作 # 见原理图
:param img:
:return: """
child_img_list = [] for i in range(4):
x = 2 + i (6 + 4) # 见原理图
y = 0
child_img = imgcrop((x, y, x + 6, y + 10))
child_img_listappend(child_img) return child_img_list
然后就能得到被切割的 原子级 的元素了:
92 内容小结
基于本部分的内容的讨论,相信大家已经了解到了,如果验证码的干扰(扭曲,噪点,干扰色块,干扰线……)做得不够强的话,可以得到如下两个结论:
4位字符和40000位字符的验证码区别不大
纯字母
不区分大小写。分类数为26
区分大小写。分类数为52
纯数字。分类数为10
数字和区分大小写的字母组合。分类数为62
纯数字 和 数字及字母组合 的验证码区别不大
在没有形成 指数级或者几何级 的难度增加,而只是 线性有限级 增加计算量时,意义不太大。
10 尺寸归一
本文所选择的研究对象本身尺寸就是统一状态:610的规格,所以此部分不需要额外处理。但是一些进行了扭曲和缩放的验证码,则此部分也会是一个图像处理的难点。
11 模型训练步骤
在前面的环节,已经完成了对单个的处理和分割了。后面就开始进行 识别模型 的训练了。
整个训练过程如下:
大量完成预处理并切割到原子级的素材准备
对素材进行人为分类,即:打标签
定义单张的识别特征
使用SVM训练模型对打了标签的特征文件进行训练,得到模型文件
12 素材准备
本文在训练阶段重新下载了同一模式的4数字的验证总计:3000张。然后对这3000张进行处理和切割,得到12000张原子级。
在这12000张中删除一些会影响训练和识别的强干扰的干扰素材,切割后的效果图如下:
13 素材标记
由于本文使用的这种识别方法中,机器在最开始是不具备任何 数字的观念的。所以需要人为的对素材进行标识,告诉 机器什么样的的内容是 1……。
这个过程叫做 “标记”。
具体打标签的方法是:
为0~9每个数字建立一个目录,目录名称为相应数字(相当于标签)
人为判定 内容,并将拖到指定数字目录中
每个目录中存放100张左右的素材
一般情况下,标记的素材越多,那么训练出的模型的分辨能力和预测能力越强。例如本文中,标记素材为十多张的时候,对新的测试识别率基本为零,但是到达100张时,则可以达到近乎100%的识别率
14 特征选择
对于切割后的单个字符,像素级放大图如下:
从宏观上看,不同的数字的本质就是将黑色按照一定规则填充在相应的像素点上,所以这些特征都是最后围绕像素点进行。
字符 宽6个像素,高10个像素 ,理论上可以最简单粗暴地可以定义出60个特征:60个像素点上面的像素值。但是显然这样高维度必然会造成过大的计算量,可以适当的降维。
通过查阅相应的文献 [2],给出另外一种简单粗暴的特征定义:
每行上黑色像素的个数,可以得到10个特征
每列上黑色像素的个数,可以得到6个特征
最后得到16维的一组特征,实现代码如下:
def get_feature(img): """获取指定的特征值,
1 按照每排的像素点,高度为10,则有10个维度,然后为6列,总共16个维度
:param img_path:
:return:一个维度为10(高度)的列表 """
width, height = imgsize
pixel_cnt_list = []
height = 10 for y in range(height):
pix_cnt_x = 0 for x in range(width): if imggetpixel((x, y)) == 0: # 黑色点
pix_cnt_x += 1
pixel_cnt_listappend(pix_cnt_x) for x in range(width):
pix_cnt_y = 0 for y in range(height): if imggetpixel((x, y)) == 0: # 黑色点
pix_cnt_y += 1
pixel_cnt_listappend(pix_cnt_y) return pixel_cnt_list
然后就将素材特征化,按照 libSVM 指定的格式生成一组带特征值和标记值的向量文
现在推荐你两款NOKIA的手机,NOKIA6131价格1900~2190元之间,NOKIA6125价格1480~1680元之间,两者都是06年生产。两款机子都是130万象素的摄像头、8倍变焦,支持蓝牙、支持USB,支持视频播放,内置MP3播放器,内置收音机,支持 MicroSD 扩展卡 ( 最大 2G )。
6131加一个2G的扩展卡需要2400元以内,6125加一个2G的扩展卡需要1900元以内,如果你的资金比较多我建议你买6131,如果你非要限制在2000元以内,那就买6125也可以,你最好到卖场看看这两款机子。
现在我把两者的区别与共同点说一下,好让你做个参考。
外观: 6131 更人性化
6131 轻触( soft-touch )涂层,一触即开打开翻盖
6125 无特殊点
屏幕: 6131 全面胜出
6131 内屏 320x240(22 寸, 1670 万 “ 真彩色 ”) 外屏 128x160(136 寸, 26万色 )
6125 内屏 128x160(18 寸, 26万色 ) 外屏 96x65(14 寸 CSTN , 65536 色 )
照相机:两者完全相同,均为130万象素
连接: 6136、6125相同,支持蓝牙、支持USB
内存: 6125 略好 ,不过两者都支持microSD 存储卡
6131 8M
6125 11M
录音、录影方面6131较好。
两者的共同特点:
增强的 S40 第 3 版用户界面
MP3/MP4/WMA/AAC 后台播放
MP3/AAC/MIDI 铃声
支持 Nokia Xpress 声音消息
QCIF (176 x 144) 视频拍摄能力
支持 Flash 播放
支持飞行模式(航班情景模式)和演示模式(无需 SIM 卡)
支持来电及视频
支持 SyncML 远程同步
支持 SIND (非特定语者人名拨号)
支持 MicroSD 扩展卡 ( 最大 2G )
视频 FM 广播
电子邮件 (POP3, SMTP, IMAP4)
XHTML 浏览
支持智能内容下载 OMA DRM 10
支持 AMR 格式(视频和铃声)
再说一下两款机子各自的参数和功能,以便你较全面的了解一下,以便你进一步的比较
6131的功能及参数如下:
网络频率: GSM/GPRS/EDGE;850/900/1800/1900MHz
可选颜色: 黑色、白色、红色、**
尺寸/体积: 92×48×20mm
重 量 : 112 克
内屏参数: 1600万色TFT彩色屏幕;240×320像素,22英寸;
外屏参数: 26万色TFT彩色屏幕;128×160像素,14英寸;
通话时间: 200 分钟
待机时间: 240 小时
WAP上网: 支持飞笺
上市时间: 2006年06月
标准配置: 锂电池(BL-4C 820mAh),AC-3旅行充电器,HS-23耳机,用户手册(随机光盘)
基本功能
可选铃声: 来电铃声、短信提示音以及其他多种提示音均能够自行设定
和弦铃声: 64 和弦;视频铃声、原音铃声和 MIDI 铃声,提示音和游戏音最高支持 64 和弦;支持MP3、MP4、AAC、AAC+、eAAC+、H263、H264、WMA格式
动画屏保: 屏幕保护图案
待机: Gif动画壁纸,能够将视频片段设为待机画面
图形菜单: 九宫格菜单
主题模式: 用户界面(User Interface, UI)主题元素,内置了多达7个不同风格的主题,同时其兼容6280等QVGA S40机型的主题元素,用户可以通过网络下载更多的主题元素来更新手机
通信功能
中文输入: 预想输入法:支持简体中文,英文
中文短信: 支持连锁信息、信息和短信息收信人列表
多媒体短信: 支持附件 (Java 版本)Xpress 声音信息:录制自己的语音信息并发送至兼容的设备,彩信 OMA 12:将图像、视频短片、文字和声音片段组合在一起并通过彩信发送至兼容的手机或 PC;创建包含多张幻灯片的彩信演示文稿以讲述自己的心情故事。彩信 OMA 12 规范允许收发最大为 300 kB 的彩信
PTT手机对讲: Push to talk一键对讲,一键通:选择您想与之交谈的联系人或通话组,然后按一键通键(按住音量提高键)以进行通信
语音拨号: 支持 SIND 的增强型声控拨号功能:按住音量降低键,实现非特定语者人名拨号(Speaker-Independent Name Dialing)
免提通话: 内置免提扬声器,采用全新的高品质扬声器,可提供更为出色的音频体验
多媒体娱乐
内置游戏: 2 个;3D足球、3D贪吃蛇
内存容量: 32MB;可储存大约8MB用户数据
多媒体卡扩展: 热插拔 microSD 存储卡插槽,最高支持 2GB microSD 存储卡(作为配件提供)
Java扩展: Java™ MIDP 20,支持通过“空中传送”下载基于Java 的应用软件和游戏
下载图铃游戏: 可通过“空中传送”下载:主题元素、原音铃声、MP3 铃声、MIDI 铃声、屏幕保护图案、壁纸、3GPP 流媒体、图像和视频、40 系列 Java 游戏和应用软件
摄像头: 内置
摄像头像素: 130万像素
传感器类型: CMOS
变焦模式: 8倍数码变焦
照片分辨率: 最大可拍摄1280×1024分辨率的
拍摄模式: 内屏和外屏均可用作全屏幕取景窗口
照片特效: 在拍摄特效方面提供了默认、灰阶、深褐色、底片等几种选择
视频拍摄: 有声视频拍摄
视频分辨率: 最大支持拍摄分辨率为176×144像素的视频片段,视频的录制时间可设为默认以及受容量空间的限制
图像编辑器: 在编辑的功能中能够添加相框以及剪贴画
视频播放: 支持播放符合 3GPP 标准的影音流媒体,支持全屏的视频播放
Flash播放: 支持Macromedia Flash Lite 11,内置了3个用于屏幕保护的Flash动画
MP3播放器: 内置 ;MP3 播放器支持诸多格式,包括 MP3、MP4、AAC、AAC+、eAAC+、WMA、H263、H264(eAAC+ 仅支持播放,而不支持流媒体),支持播放列表以及播放模式的调整,提供了六种的EQ选择,其中有两组是用户自定义的EQ,用户还可以开启虚拟的环绕声支持
收音机: 内置;支持可视收音机功能的调频立体声收音机
网络与数据传输
蓝牙接口: 内置;蓝牙V12无线连接(SIM 卡接入模式、耳机模式和免提模式),包括支持耳机的立体声效果
数据线接口: 支持USB数据线,支持 SyncML 技术,可进行本地/远程数据同步
E-Mail: 电子邮件:访问您的工作和私人电子邮件帐号;支持 SMTP、POP3 和 IMAP4 协议
个人助理
日历: 万年历
定时器: 定时器 (普通和间隔定时器)
更多信息
采用精美的“轻触”(soft-touch)涂层,也就是在塑料外壳上涂上一层软胶,柔软的手感握上去非常的舒适,不过美中不足的便是该种材质的添加让其十分的容易沾染上指纹和油污
电池后盖仿皮革设计
采用了一键翻盖的设计,翻盖的触发按键位于机身右侧的转轴部分,按下翻盖键后,伴随着清脆的开关声,翻盖应声弹
白色的按键背景灯
采用一个独立扬声器以提升音质,全新的扬声器标准,相比以往的机型来说在音质部分有着很大的提高
GPRS级别:Class 10(4+1/3+2),32—48Kbps
EDGE级别:Class 10,2368Kbps
单键拨号
声控命令
语音备忘
外屏可通过灯光提示未接来电/短信息/日历备忘
各按键彼此之间清晰分隔,拨号和编写信息更为方便
演示模式(无需插入 SIM 卡即可演示手机功能)
自动接听(只能与兼容的耳机或车载套件配合使用)
呼叫等待、通话保留、呼叫转接、通话计时
Series40 III平台
软件版本:372
6125的功能及参数如下:
网络频率: GSM/GPRS/EDGE;850/900/1800/1900MHz
可选颜色: 银白色、金**
尺寸/体积: 90×46×236mm
重 量 : 98 克
内屏参数: 26万色TFT彩色屏幕;128×160像素,18英寸;
外屏参数: 65536色CSTN彩色屏幕;96×65像素,14英寸;
通话时间: 300 分钟
待机时间: 280 小时
WAP上网: 支持飞笺
上市时间: 2006年07月
标准配置: 锂电池(BL-4C,820mA)、充电器、HS23线控耳机、pc套件光盘
基本功能
和弦铃声: 铃声:MIDI、MP3、AAC 和 AMR 格式
来电视频识别: 将视频短片或指定为铃声
动画屏保: 动画壁纸和屏幕保护图案
图形菜单: 全新40 系列用户界面,可配置用户界面快捷操作,列表和图标功能表显示格式
主题模式: 对图案、图标、动画和标志进行个性化设置
通信功能
中文短信: 短信息和彩信的通用收件箱,即时信息(包括支持显示状态信息的增强型动态通讯录)
多媒体短信: 第 12 版彩信标准及 SMIL 播放器,可创建、接收、编辑和发送彩信(彩信最大可为 300 kB)
电话会议: 会议通话(最多包括 5 位与会者)
PTT手机对讲: 支持 PTT(Push to Talk)功能
语音拨号: 增强的声控拨号功能(SIND)
语音菜单: 增强的声控命令/声控拨号功能(SIND)
免提通话: 内置免提扬声器
多媒体娱乐
内存容量: 11MB;内部共享存储空间,可用于储存通讯录、文字信息、彩信、铃声、图像、视频短片、日历备忘、待办事项和应用软件
多媒体卡扩展: 支持热插拔的 microSD 存储卡读卡器
Java扩展: Java™ MIDP 20 ,预装游戏和应用软件 ,支持通过“空中传送”下载基于 Java™ 的应用软件和游戏
摄像头: 内置
摄像头像素: 130万像素
变焦模式: 8倍数码变焦
照片分辨率: 拍摄1280x1024分辨率的
连拍: 支持
拍摄模式: 以手机屏幕作为取景窗口:使用大屏幕可拍摄普通图像;使用外部小屏幕可进行自拍;标准、夜间和连拍模式
照片质量: 高、中、一般
视频拍摄: 有声视频拍摄;3GPP 标准(以 3gp 格式压缩的 H263 视频和 AMR 音频),视频拍摄时间:上限约为 5 分钟
视频分辨率: QCIF(176 x 144 像素),每秒 15 帧
视频播放: 3GPP 标准(以 3gp 格式压缩的 H263 视频、MPEG-4 和 AMR 音频),播放符合 3GPP 标准的视频流媒体
Flash播放: 内置第 11 版 Macromedia Flash Player,嵌入了手机版的Macromedia Flash Player,用户可以随时随地移动欣赏自己喜欢的FLASH动画
MP3播放器: 内置 ;内置音乐播放器,支持 MP3、MP4、AAC、AAC+、eAAC+ 和 WMA(Windows Media 音频)
收音机: 内置;调频立体声收音机和可视收音机
飞行模式: 航班情景模式及演示模式
网络与数据传输
WWW浏览器: 内置 XHTML 浏览器,以通过 TCP/IP 协议连接网络
蓝牙接口: 内置;支持A2DP蓝牙立体声,第 20 版蓝牙无线技术:支持广泛的模式和 API(应用编程接口),可实现无缝连接和 EDR(Enhanced Data Rate,增强型数据速率)
数据线接口: Pop-Port™ 接口,支持第 11 版 USB 连接,与 PC 或其他兼容设备轻松进行远程或本地同步
E-Mail: 支持附件的电子邮件客户端(基于 IMAP4、POP3、SMTP – TCP/IP 协议)
更多信息
平台环境:Series 40
五方向导航键和中选择键
舒适易用的数字键盘
照相机键
音量键
单键拨号:最多支持 9 个姓名(按键 2 至 9)
自动重拨(最多可尝试 10 次)
自动接听(只能与兼容的耳机或车载套件配合使用)
EDGE:移动宽带接入,支持 EGPRS 多时隙等级 Class 10,最高下载速率为 2368 kbps
GPRS(General Packet Radio Service,通用分组无线业务):多时隙等级 Class 10,最高下载速率为 536 kbps
HSCSD(高速电路交换数据),在 HSCSD 网络中的最高数据传输速率为 432 kbps
软件版本:371
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)