1/5:介绍 —— 2/5:皮肤制作范例 —— 3/5:skin.ini 解析 —— 4/5:skin.ini 元素参考 —— 5/5:提示与技巧
介绍
在这组文章中,我要将这个话题深入,给你们提供更多的实例,详细制作skin.ini文件的过程,元素参考,制作更有效果的皮肤的提示和技巧。这篇文章也因为Opera 9.5更新。
你可以通过上面的链接访问所有的这5篇文章。对这里所有人都有用的,不管你对Opera皮肤的精通程度如何,你都可以自由的跳转到你感兴趣的部分,而不必非要按照顺序去阅读他们。
第一部分的内容包括:
- 定位皮肤文件
- 拆包和解包皮肤
- 皮肤结构
- Skin.ini的介绍
- 原版与非原版皮肤
- 补偿系统
- 标准皮肤文件夹 文件列表
- 图像格式
- 动画
- 图像载入
皮肤文件的定位
在你开始修改皮肤前,第一步需要在你的硬盘上找到对应的文件。具体的位置由你运行的操作系统和你想修改的皮肤文件所决定。默认皮肤的位置和你从my.opera.com上下载的皮肤的位置不同。下面的列表显示了不同皮肤文件在不同操作系统上的位置:
- Windows:
- 标准皮肤可以在Opera安装目录的Skin文件夹下找到,大多数情况应该在C:\Program files\Opera\Skin。
- 下载的皮肤存储在Profile\Skin中。想找到profile文件夹的位置,可以通过检查“Help>About Opera”。作为一种快速的方法,你也可以通过“开始>运行”,输入%APPDATA%\Opera\profile\Skin进入目录。
- 标准皮肤在/usr/share/opera/skin。
- 下载的皮肤存储在~/.opera/skin。注意,Opera是一个隐藏目录,所以你需要手动输入路径。
- 标准皮肤在应用程序包中,通常在/Applications/Opera.app/Contents/Resources/Skin(基本上,在应用程序文件夹内右键点击Opera的图标,Ctrl-click它,然后选择显示包中内容从而进入Opera应用程序的内部文件。)
- 下载皮肤存储在~/Library/Preferences/Opera Preferences/Skin中。
Linux/Unix:
Mac OS X:
Opera 预装了2个皮肤--standard_skin.zip,标准皮肤,和一个原版皮肤,叫做windows_skin.zip或这mac_skin.zip。原版皮肤不含任何的图片,而是使用标准皮肤里的图片代替。下载皮肤的文件名通常和皮肤的名称类似。
拆包/打包皮肤
在你开始修改皮肤前,你必须使用像WinZip或7zip这样的压缩软件对其进行拆包。不用把他们解压到特定的路径。因为不管怎么样以后还是会把它们重新打包的。现在就试试吧--找到标准Opera皮肤并且对它拆包。压缩包的文件夹结构(Opera 9.5x)将在下一部分讨论。
为了使Opera可以载入他们,在修改了皮肤后你必须把他们重新打包。操作包含skin.ini的文件夹和图像文件/文件夹,选择这个文件夹中的所有内容把他们添加到一个新的zip文件中。
在Opera中想要载入皮肤文件,你必须将这个打包好的zip文件放入下载皮肤的文件夹(上文以提及)中,然后打开Opera选择“工具>外观”,然后你就可以从出现的列表中选择你的皮肤。注意如果skin.ini没有在zip文件夹的根目录,Opera将给你一个错误的信息提示“不能继续。请选择一个为当前版本Opera制作的皮肤!”
皮肤结构
在解包皮肤文件后,你将找到一大堆包含图片的文件夹和一个叫做skin.ini的文件。这个ini文件可以用任何的文本编辑器编辑,同时可以设置像在Opera中显示的皮肤名,以及用户界面元素的图片、文本以及背景色这些项目。
包含图片的文件夹会被皮肤使用。而这些文件夹并不是一定是必须的,你完全可以把这些图片都放在zip文件的根目录,但是那么做可以帮助你辨认每一样东西。
标准Opera皮肤的内容会在“标准皮肤文件/文件夹”向导部分列出。
Skin.ini介绍
Skin.ini,作为皮肤的控制和设置文件,可以在每一个皮肤文件的根目录找到。它详细说明了元信息和一般设置,并且定义了皮肤用到的每一个元素的设置。
通常,你在文件的开始处可以找到元信息部分,标记为[Info]。这部分和下面的很相似:
- 皮肤名及作者:这前两项设置的目的是,当你下载或者在外观对话框时,将显示皮肤的名称及其作者。
- Version=:这里定义了skin.ini文件的版本,这不一定用来显示皮肤的版本。但是在Opera 9.5及以后的版本,这个项目被设置为3。
- Preview Image=:这个没有用,这行可以省略。
- 普通的皮肤具有很强的可定制性,包括按钮图片,背景,对话框按钮,滚动条和一切其它的元素。他们允许用户给Opera加入自己的样式,而不依赖与操作系统,从而和其它的应用程序看起来不一样。
- 原版皮肤使用了操作系统所提供的元素,仅仅只有按钮图片是皮肤提供的。其余的元素例如背景,对话框都通过操作系统绘制的。这就使得Opera看起来很像操作系统内的原生应用程序,可以很好的与系统的其它程序结合在一起。
所有Opera可以运行的操作系统都可以支持原生皮肤。在Windows环境下,原生皮肤的样子是通过所使用的系统皮肤决定的。在Linux下,Opera通过Qt toolkit绘制皮肤。
想要标记一个皮肤为原生皮肤你需要在skin.ini中写下如下的开头,这将自动对系统主题进行载入从而绘制Opera的皮肤。[Options]
Native Skin = 1
对于非原生皮肤只需要省略这行即可,Opera的默认情况是非原生皮肤。
[Info]
Name=Opera7 Standard Skin
Author=Opera Software
Version=3
Preview Image=原版与非原版皮肤
Opera提供了两种类型的皮肤,原版和非原版。两种皮肤基本的差别如下:
“补偿系统”
如果一个皮肤丢失了一个元素,Opera将会自动的载入“Opera标准皮肤”。如果没有行去定义它的话就认为是元素丢失,而不管图片元素是否存在于皮肤包内。
由于新的版本可能会增加一些按钮,丢失的图像的情况常常会出现在为较早版本制作的皮肤中。为避免显示空白,Opera将会检查标准皮肤是否存在这个元素并且正显示它。虽然这样会导致与样式图标不协调,但是却可以避免因丢失按钮而导致的功能缺失。
这个技术也用在Opera的原生皮肤上。这个皮肤不含有任何的按钮图像,而只是一些告诉Opera如何绘制皮肤的信息,按钮图像都是从标准皮肤中获取的。
补偿系统可以通过Fallback background 和 Fallback foreground的设置独立的关闭前景和背景的图像(像一些按钮图像,对话按钮等),在[Options]中的部分如下:
[Options]
Fallback foreground = 1
Fallback background = 1默认的情况改设置是允许的,所你当你不想使用该设置时,你必须加上上面那几行。
注意:由于它可以防止新版本对老版本皮肤的不兼容,不建议改变此设置。
上下兼容
Opera 可以使用任何 Opera 7 及之后的皮肤。所有存在于皮肤的图像都会被显示,由于上文提到的补偿措施,丢失的部分可以从“标准 Opera 皮肤”中获得。
多余的图像,比如从为新的版本的 Opera 制作的皮肤用在旧版本的 Opera 上时,这些图像都会被忽略。遇到这些图像时 Opera 也不会停止载入。
标准皮肤文件夹/文件列表
要想制作一个新的皮肤,你可以先简单地通过修改一个已存在的皮肤文件,比如标准皮肤来实现。
接下来的文件夹列表适用于 Opera 9.5x 的标准皮肤,虽然和大多数你从 MyOpera 上下载到的皮肤也很相似,但你并不能保证使用于所有。如果你修改的皮肤和标准皮肤的文件夹结构不同,通常你也可以通过文件夹名和预览这些图片找到这些文件。当然,这决定于皮肤的作者是否对文件和文件夹有逻辑的命名。
| 文件夹 | 描述 | 预览 |
|---|---|---|
| a/ | 绘制通过键盘导航的活动部件的边缘,不能定制! | ![]() |
| account/ | 在 Opera 9.5 中不使用。 | ![]() |
| anims/ | 包含了如快速拨号和 Opera Link 中的使用的动画。 | ![]() |
| backgrounds/ | 包含了所有工具栏的背景图片。 | ![]() |
| border/ | 包含了工具栏的边缘图像,分隔线和工具栏按钮的边缘。 | ![]() |
| buttons/ | 包含了所有工具栏按钮的图像,这部分可以参考 skin.ini 文件的 Boxes 和 Images 部分。 | ![]() |
| caption/ | 包含了右上角的最小化,还原和关闭按钮的图标,Mac 在左上角。 | ![]() |
| checkbox/ | 包含了检验框图标。 | ![]() |
| contacts/ | 包含了联系人中的图标。 | ![]() |
| dialog_images/ | 包含了各种信息的图标。 | ![]() |
| dialog_page/ | 包含了对话框内部背景的边缘和阴影。 | ![]() |
| drop_insert/ | 包含拖拽按钮时作为目标显示的图像。 | ![]() |
| dropdown/ | 包含下拉菜单的背景图像。 | ![]() |
| edit/ | 包含修改栏,地址栏,搜索栏,树形目录,列表框和多行编辑框图像。由于一些由操作系统决定的不可修改的部分,这部分很难修改。 | ![]() |
| expand_button/ | 包含了用于扩展面板的箭头图像。 | ![]() |
| header_button/ | 包含了头部的图像,这些东西可以在比如邮件或参数树形显示上方找到。 | ![]() |
| icons/ | 包含了所有的图标。 | |
| link/ | 包含了 Opera Link 的状态图标。 | ![]() |
| notifier/ | 包含弹出通知和搜索的背景图片。 | ![]() |
| pagebar_close_button/ | 包含关闭标签按钮。 | ![]() |
| panel_toggle/ | 包含面板开关图片。 | ![]() |
| progress/ | 包含许多进度指示图片。 | ![]() |
| radio_button/ | 包含许多单选按钮图片。 | ![]() |
| scrollbar/ | 包含滚动条背景,和控制上下滑动的箭头。 | ![]() |
| scrollbar_knob/ | 包含滚动条滑块。 | ![]() |
| selector_button/ | 工具栏按钮和面板折叠按钮的背景图片。 | ![]() |
| smilies/ | 包含所有的表情图标。 | ![]() |
| speeddial/ | 包含快速拨号的缩略图图标,搜索区的分隔部分,叠加阴影效果的和没有叠加阴影的快速拨号设置都不支持 Alpha 通道。 | ![]() |
| tab_button/ | 包含标签和对话框按钮。 | ![]() |
| trust_and_security_button/ | 包含在地址栏中的欺诈保护和安全按钮图标(v9.5 后为绿色)。 | ![]() |
图像格式
Opera 支持 PNG,JPEG,BMP 和 GIF 图像作为皮肤。由于 PNG 图像支持 Alpha 通道,可以让图像的部分区域透明(补充一点,GIF虽然也支持透明,但是和Alpha通道是有很大区别的。简单的讲就是透明的位数不同,GIF的透明只有一位,Alpha通道有8位。也就是说,GIF要么透明要么不透明,而Alpha通道则可以指定究竟有“多透明”,8位共256级,PS的初学者一般会易混淆这点。),大多数情况下你将会使用他们。很多情况下因为 JPEG 图像的压缩率高于 PNG 图像,更适合做为背景图片。
动画
Opera 支持 GIF 和由 PNG 组成的 APNG 格式的动画,APNG 格式比只有 256 色的 GIF 格式优秀很多。当载入后,这些动画将会显示在 Opera 的用户界面中。动画图像的使用和其它皮肤中的图像一样。
图像载入
Opera 对每个图像只进行一次载入,无论他们被 skin.ini 引用多么频繁,就像你在 HTML 文档中多次使用同一图片一样。同时可以节省由皮肤带来的内存占用问题。你不能对一个文件进行不同参数的多次使用,当你载入皮肤时,Opera 将会使用它找到的第一个文件,记下它以及它的参数。这样,如果你想使用统一图像的不同参数时,举例来说,对于一个图标,有时需要显示颜色,有时不需要,那你就需要使用不同地方的两份不同的文件。
收藏主题







































































































































































